1 名前:デフォルトの名無しさん mailto:sageteoff [2015/10/07(水) 20:19:06.64 ID:c4LYwtKo.net] プログラミングのお題スレです。 前スレ プログラミングのお題スレ Part7 peace.2ch.net/test/read.cgi/tech/1429195275/ 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 【ソースコードが長くなったら】 (オンラインでコードを実行できる) ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode runnable.com/ code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。
110 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 22:53:02.41 ID:OJ9xT8J+.net] 位取りの数学だよな。例えば、二桁に限定すれば (10a+b)^2≡20ab+b^2(mod100) であり、 b≡b^2(mod10) であることがわかる。
111 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:02:28.06 ID:OJ9xT8J+.net] 10進数の位取りでは自然数nは、 n=Σ_{k=0}^m 10^k * a_k と表せる。任意の正の整数pに対して n≡n^p (mod 10) n≡n^p (mod 100) ... n≡n^p (mod 10^m)
112 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:12:11.82 ID:OJ9xT8J+.net] 1の位a_0は、明らかに0、1、5のいずれかである。 なぜなら0≡0^2かつ1≡1^2かつ5≡5^2 (mod 10)であり、それ以外は考えられないから。
113 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:15:35.02 ID:mg6U+sOG.net] >>107 n^2の結果の最後がnで終わっていれば何乗しても結果の最後がnで終わる 言い換えればn^2の場合についてのみ調べれば良い。 n^2の結果の最後がnで終わっていないようなnは題意にそぐわない 言語・ライブラリレベルで多倍長演算をサポートしてる言語を使うといいと思うよ
114 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:18:19.92 ID:2RvUZ1HO.net] >>111 6…
115 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:20:39.98 ID:OJ9xT8J+.net] n≡n^2ならばn≡n^3である。 なぜならn≡n^2の両側にnを掛ける
116 名前:ニn^2≡n^3が得られ、 これとn≡n^2の推移律より明らか。 数学的帰納法より、n≡n^2ならばn≡n^pである。 [] [ここ壊れてます]
117 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:21:12.97 ID:Tt5I2ZgM.net] 変数xに0〜360までの角度を保持したいんですが、場合によってはこの範囲外の値が入る事が有ります。例えば500や-100など。そういう場合はそれぞれ140、260にしたいんですが、ifで場合分けする方法以外にスマートなやり方有りますか?
118 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:40:32.15 ID:2RvUZ1HO.net] x=(x%360+360)%360; mod2回とかひどいコードw
119 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:54:26.23 ID:qVN3pWO7.net] math.a.la9.jp/ansinc.htm ↑ これの大学院生の証明を信用すると A<10^nなるAに対してA^2=K*10^n+AとなるようなAは 各nに対してA=p*2^n(=α[n]),r*5^n(=β[n])の ちょうど2つあり、α[n]+β[n]=10^n+1を満たすことになる よって、α[n]かβ[n]のどちらか一方を求めればもう一方も求まる β[n]の構成方法は>>103 で求まるので、これで全ての解が網羅される…はず (ただし、α[4]=α[5]=9376やβ[3]=β[4]=625のように異なるnで解が重複することはあり得る)
120 名前:100 mailto:sage [2015/11/13(金) 00:50:19.24 ID:lCbsoecE.net] ここまで数学の話になると自分は門外漢だな。参ったなぁ。 自分はC/C++しか使えないので、C++に多倍長が入るまで待ちますです。 自分の能力を疑う。。。Orz
121 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 00:51:09.68 ID:lCbsoecE.net] ホント、数学怖い。
122 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 01:48:47.99 ID:oAcUw9gl.net] >>96 Ruby 16桁で2秒くらい。 ideone.com/DzwaXc
123 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 01:56:56.44 ID:oAcUw9gl.net] >>115 Rubyで。 ideone.com/YK6n9K
124 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 03:44:01.38 ID:lCbsoecE.net] >>96 ideone.com/GDW8iY C++。>>109-112 の話を信じてコードにした。 だいたい>>102 の劣化版になった。 >>102 優秀!
125 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 03:44:43.48 ID:lCbsoecE.net] 1と5と6の倍数のどれかって結論になるんかねー。
126 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 17:25:00.01 ID:3TzLZ92T.net] >>116 >>121 ありがとうございました。 JavaScriptでやりたいので 115 さんの方式でやることにしました。 Rubyの文法は良く分からないのですが、整数剰余 % は常に正の値を 返すのでしょうか?
127 名前:デフォルトの名無しさん [2015/11/13(金) 21:39:51.30 ID:VcgxUV6t.net] お題:お財布軽算法 レジの買い物で財布の中身が最も軽くなるような支払い方を求めよ 条件: ・買い物の金額は999円以下 ・硬貨(一円玉〜五百円玉)の重さは1とし、千円札の重さは0とする ・財布の中には、各硬貨が20枚以下と、千円札がちょうど1枚入っている (法律により同一硬貨20枚を超える支払いは店側が拒否できるらしい) ・お釣りはできるだけ価値の高い硬貨にまとめて支払われる (例:お釣り17円→十円玉1枚、五円玉1枚、一円玉2枚) ・両替目的の余分な支払いは禁止(例えば、10円の買い物で 一円玉20枚支払ってお釣りとして十円玉1枚を受け取るのは禁止) 入力: 財布の中の各硬貨の枚数と買い物の金額が空欄区切りで順番に与えられる (千円札は必ず1枚入っているので入力には含めない) 出力: 各硬貨および千円札の支払い枚数を空欄区切りで順番に返す 例: 0 0 0 0 0 0 1 -> 0 0 0 0 0 0 1 5 5 5 5 5 5 176 -> 1 1 2 1 1 0 0 1 2 3 4 5 6 789 -> 0 2 3 3 1 1 0 20 20 10 10 0 0 999 -> ?
128 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:05:01.72 ID:lCbsoecE.net] >>125 ナップザック問題よく見るなー。
129 名前:126 mailto:sage [2015/11/14(土) 04:44:47.09 ID:ruukGtIx.net] お題ボツ案 次に示すbrainf*ck亜種用のプログラムコードcode.txtを生成するプログラムを作成せよ brainf*ck亜種の仕様 命令対応表table.txtに記載された文字列を命令ワードとしてcode.txtを解釈する 命令ワード以外の文字はコメント文字として無視して読み飛ばす 命令対応表table.txtの仕様 1行目に>に相当する命令を表す文字列がコロン区切りで並べられる 2行目に<に相当する命令を表す文字列がコロン区切りで並べられる 3行目に+、4行目に-、5行目に[、6行目に]、7行目に,、8行目に.、のが同様に示される 未定義の命令はないものとする(つまりどの命令にも必ず対応する命令ワードが与えられる) 命令ワードに使えるのは半角の英大文字・英小文字・スペースで構成される1文字以上の文字列 生成するプログラムコードcode.txtについて (1) こちらが提示するtable.txtを命令ワードとするbrainf*ck亜種でcode.txtを実行する この実行でcode.txtは新しい命令対応表を生成する(リダイレクトでtable2.txtに保存される) (2) 先ほど生成されたtable2.txtを命令ワードとするbrainf*ck亜種で先ほどのcode.txtを実行する この実行でcodetxtはこちらが指定した文字列を出力する ※つまりcode.txtは同一のファイルで2種類のbrainf*ck亜種用のプログラムコードとして解釈されるということである ※code.txtはどちらの実行でも必ず停止するようにする(無限ループさせてはならない) code.txtのフォーマット 1文字のスペース区切りで並べられた実在する2文字以上の英単語と改行で構成される 各行2文字以上65文字以下で構成する必要がある、行末にスペースが来てはならない ※つまり人がcode.txtを開いて見た場合は英単語がでたらめに並べられているだけの文書ファイルのように見える
130 名前:126 mailto:sage [2015/11/14(土) 04:45:20.39 ID:ruukGtIx.net] お題ボツ案 続き (1)で使うtable.txt ====table.txt ここから en:an:me ry:ly:to ea:ro:at ou:is:
131 名前:of ed:oo:we es:ee:he ff:qu ll:th ====table.txt ここまで (2)で出力する文字列 Hello の5文字 例えば road eat attacked meet seat early of he month は +++[>++<-]. と解釈される 評価ポイント ・code.txtの英大文字を英小文字に変換した状態において単語の平均出現頻度が3以下になるほど加点、逆は減点 ・code.txtに出現する単語のうち「最短の長さの単語」の長さが4以上になるほど加点、逆は減点 ・code.txtのファイルサイズ(ようは全体の文字数)が小さくなるほど加点、逆は減点 ボツになった理由 評価ポイントは俺自身が出した答えのcode.txtのファイルサイズを基準に点数付けする予定だったが 俺自身がこの課題を満足するコードを書けなかった [] [ここ壊れてます]
132 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 07:36:05.43 ID:HECTDRcm.net] >>125 2つ目の例間違ってました 5 2 5 2 5 2 176 -> 1 1 2 1 1 0 0
133 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 01:14:20.57 ID:iZq4VH3S.net] >>127 いくらチューリング完全とはいえ、こんな暗号何に使うんだよ。 IS関係かよ。
134 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 13:23:12.14 ID:qzaifS3v.net] キレイにあいにいこう
135 名前:デフォルトの名無しさん [2015/11/17(火) 22:19:23.76 ID:qSlbRl0V.net] 突っ込みどころが幾つもあるからそりゃ書けんだろ
136 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 10:07:53.97 ID:MW0MQlR6.net] お題:以下を出力する ABBACACBBA CBCBBBABC AAABBCCA AACBACB ABACBA CCBAC CACB BBA BC A
137 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 11:15:42.88 ID:4sFoEFSe.net] >>133 Squeak/Pharo Smalltalk | str | str := 'ABBACACBBA'. Transcript open. [str isEmpty] whileFalse: [ Transcript cr; show: str. str := str overlappingPairsCollect: [:a :b | a = b ifTrue: [a] ifFalse: [('ABC' copyWithoutAll: {a. b}) first]]]
138 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 16:23:59.84 ID:6s10vQob.net] >>133 C ideone.com/DJzS47
139 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 18:06:15.56 ID:D8fsp1uM.net] >>133 c #include <stdio.h> int main() { char buff[] =
140 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 18:23:26.04 ID:D8fsp1uM.net] >>133 c https://ideone.com/UAnRhr
141 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 21:29:20.89 ID:4nC9re2c.net] >>133 Emacs Lisp (require 'cl-lib) cl-lib (defun f (l) (while l (let (m) (cl-mapl (lambda (s) (princ (car s)) (let ((s (let ((x (nth 0 s)) (y (nth 1 s))) (and y (if (eq x y) x (car (remove x (remove y '(A B C))))))))) (and s (push s m)))) l) (terpri) (setq l (reverse m))))) f (f '(A B B A C A C B B A)) ABBACACBBA CBCBBBABC AAABBCCA AACBACB ABACBA CCBAC CACB BBA BC A nil
142 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 23:42:26.25 ID:YAZwGvpo.net] >>133 Haskell import Data.List main = putStr . unlines . takeWhile (/= []) $ iterate f "ABBACACBBA" f [_] = "" f (x:x':xs) = (if x == x' then x else head ("ABC" \\ [x, x'])) : f (x':xs)
143 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 03:34:56.68 ID:phHpIHjD.net] よく法則性わかったな。全く分からんぞ。
144 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 22:16:34.51 ID:uJ/1LVHK.net] 隣接した文字が同じならその文字、違うならそれ以外の文字 という法則性で書いてるようだけど問題中に指定はないから同じ出力ならなんでもいい この類の出題に対する簡単な解決法は出力例をそのままコピペすること
145 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 12:08:27.30 ID:GuOf3/Bz.net] >>141 だよねw それよりも長くなってしまうコードは冗長なのかも。
146 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 12:28:08.45 ID:FQy8dcw9.net] >>141-142 短いコード…つまりこうだな ideone.com/PrSnh2
147 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 01:49:25.12 ID:HxaRKQeG.net] >>133 Rubyで。 ideone.com/4sQ3ws
148 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 10:43:36.89 ID:jCDsTAiM.net] >>133 ruby 2.0.0 s = 'ABBACACBBA' s = s.tap {|s| puts s}.chars.each_cons(2).map() {|(a, b)| a == b ? a : 'ABC'.delete(a + b) }.join until s.empty?
149 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 21:57:54.41 ID:VKmO+9+0.net] JavaScriptスレで、以下の質問をしました。 1/3=0.33333 1/2=0.5 1/4=0.25 みたいに、実数値を文字列化する時に、割り切れない時は四捨五入で小数点以下5桁で、割り切れるならその全桁数をそのまま文字列化したいんですが、一発で出来る関数や手法は有りますか? と質問したら、曖昧で分かり辛いようだったので、もう少し詳しく、 では、桁数n (n<=30)を指定するとして、 割り切れない場合は小数点以下n+1桁目を四捨五入してn桁までを求める。 割り切れる場合は、その全部を文字列化する。ただしnを超える部分が有る場合は、四捨五入の方法を用いる。 これでいいかな? と質問したのですが、浮動小数演算の世界では割り切れるかどうか判定できないので無理だよ、という意見なのですが、 私としては、浮動小数点演算で割り切れるかどうか判定出来なくても、プログラムは書けると思います。 それが出力する結果が数学的な意味での正しい解答になっていればいいと思うので。 でも良く分からないので、レベルの高いここで質問します。よろしく。
150 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 23:57:27.64 ID:BzULhZcd.net] 適当に10^n倍して整数の範囲でやれ てかJavaScriptで簡単に30桁も扱いたいなら外部ライブラリでも使えよ
151 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 00:04:10.27 ID:O+sc6fcj.net] >>147 出来ないならレスしなくても良い
152 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 00:20:18.37 ID:B5r/QkfM.net] 俺は出来ないから禁止じゃなくてよかったわ
153 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 01:02:10.19 ID:DvsQmrmL.net] >>147 自分も10^N思いついたわ。 泥臭いけど、正しい数字がほしかったら急がば回れだと思うわな。
154 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 02:12:43.93 ID:DvsQmrmL.net] うーん。暇だからいじってたけど失敗した。改良案募集中。 ideone.com/kC2jUa C++。指数いじってるだけなのに明確に誤差が出る。 一番楽なのはsprintfのソース嫁。だと思う。
155 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 02:34:57.37 ID:WgXGKPIm.net] >>146 有理数が割り切れるかどうかという話なら、既約分数の形で分母に2と5以外の素因数が含まれると 循環小数になる 整数に乗る範囲なら>>147 で同じことができる
156 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 03:14:52.14 ID:DvsQmrmL.net] >>146 ideone.com/MJYOa4 C++。数学ムズイな。log10(0.1)が-inf返す。理屈は知らん。 基本的なことは、 okwave.jp/qa/q3050160.html からパクってきた。 これ以上は俺のキャパ超えてますわ。頑張ってー。
157 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 08:08:20.28 ID:DvsQmrmL.net] 寝ようとしたらバグ思いついたのでフィックス。 ideone.com/KEG8so
158 名前: [] [ここ壊れてます]
159 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 09:36:21.17 ID:O+sc6fcj.net] >>154 素晴らしい。完璧です。
160 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 21:34:13.25 ID:DvsQmrmL.net] 一応、最初に案だした>>147 にも言っとけー。 それと何も違わんからな。
161 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 06:44:11.07 ID:et7wKfDy.net] お題:2ビットバイナリのソートと復元。 ideone.com/aBSpRb こういうコードを書きました。 不完全ですが、実用化に至ればどんなファイルも1kb程度に収まるすさまじい圧縮規格の草案デス。(妄想です) さて、ソートと復元にパーミテーションを使っているのですがこれが超重たいです。困りました。 そこでこれを差し替えて、ソートと復元を軽くしたいと思っています。 さてなんかいい方法ありませんでしょうか。処理速度はあんまり重視していません。 その代わり序数などを用意する場合、64BIT整数の範囲に入ることが望ましいです。 自由な発想で何か思いついてください。お願いします。 ちなみに、このコードの弱点はメモリ使用量で、元バイナリの256倍メモリを消費します。
162 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 00:48:49.92 ID:KmrpGp6z.net] >>157 その文章はネタなのかマジなのか… ideone.com/4EkJzF
163 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 04:53:54.49 ID:6OpYz5rj.net] ideone.com/nFKJnK メモリ使用量を256倍から8倍に抑えた。 そしたら、>>158 のコードが動かなくなった。Orz っていうか、序数が簡単に64ビット突破してしまうなぁ。 N!をどうにかしないと。 >>158 乗ってくれてありがとう。
164 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 06:33:12.85 ID:6OpYz5rj.net] 序数なくしたい・・・。(^q^)
165 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 23:19:41.07 ID:Wkj8zlJv.net] >>146 [実数値]は2進数の浮動小数点数で受け取るの? それとも分母と分子の2個の整数で受け取る?
166 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 11:53:42.59 ID:2flNGmiy.net] お題:楕円の長径と短径が与えられたとき、円周の長さを求める
167 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:05:37.72 ID:OagebEri.net] >>162 それは楕円積分じゃね? セイガクのとき勉強してうろ覚えだけど。
168 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:09:09.73 ID:4dGrKabk.net] https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%86%E7%A9%8D%E5%88%86
169 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:17:32.62 ID:OagebEri.net] 楕円の外周の計算方法- 数学 | 教えて!goo oshiete.goo.ne.jp/qa/439398.html 楕円の周の長さの求め方と近似公式 | 高校数学の美しい物語 mathtrain.jp/daennagasa こういった近似解法の存在を知らないと、 自力でアルゴリズムを発見するのは天才級の頭脳がいる問題だぜょ セニョール
170 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 23:34:24.64 ID:4dGrKabk.net] 「天才級」は言い過ぎでしょ
171 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 04:57:10.08 ID:3EaU/rl6.net] >>162 ideone.com/cjVSmk 2分法かつモンテカルロ。 数学的に正しいかは知らんけど、一応近似はしてるんじゃないかと。 数学わかんねー。積分わかんねー。
172 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 05:22:43.49 ID:3EaU/rl6.net] あれ?各種計算サイトと数字があわね・・・。 >>165 の計算法あってる?
173 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 05:44:52.78 ID:3EaU/rl6.net] ideone.com/gtoI4q と、思ったら。 俺が計算パラメータ勘違いしてるだけだった。Orz うごごごご。すまん。
174 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 09:59:25.88 ID:/HebolMS.net] 天才現る
175 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 19:56:53.86 ID:3EaU/rl6.net] e!?
176 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:17:02.87 ID:3EaU/rl6.net] いやいやいやいやいやいや・・・・・。 式パクってきて2分法書いて、モンテカルロやっただけですぜ。 天才とかとは程遠い。っていうか無縁。 天才っていうのは式を作る人。
177 名前:164 mailto:sage [2015/12/08(火) 20:20:16.07 ID:a07369ql.net] おお、モンテカルロも手だな 解析的近似ばかりじゃなく 数値計算の力技もコンピューターならではの解法だ したがって天才はコンピューターである。 なんちゃって
178 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:40:17.60 ID:3EaU/rl6.net] 実際、叩かれるつもりで投稿したんだがなんか怒られる兆しがないな。 いやー、コンピュータはすごいよ。 俺がじまんしたいのはモンテカルロより綺麗にかけた2分法のほうなんだよな。 まぁそれもベースはパクってきたわけなんだけど。Orz
179 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:44:12.32 ID:3EaU/rl6.net] >>173 ちょうどいいから聞きたいんだけど、 一般的に積分に限らずデルタってどっから引っ張ってくるの? わからなかったからランダム適応したんだけど。勘で・・・。Orz 作法あるんだったら知りたい。
180 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:53:40.72 ID:k5FAaYPJ.net] モンテカルロよりはマシだろ #include <math.h> #include <stdio.h> #define DIV_NUM 16777216 #define PI 3.14159265358979323846 #define A 3 #define B 2 int main(){ double x0 = A; double y0 = 0.0; double length = 0.0; for (int i = 0; i < DIV_NUM; i++) { double ang = i * (PI / 2 / DIV_NUM); double x1 = A * cos(ang); double y1 = B * sin(ang); double dx = x1 - x0; double dy = y1 - y0; length += sqrt(dx * dx + dy * dy); x0 = x1; y0 = y1; } printf("%f", length*4); return 0; }
181 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:57:35.31 ID:k5FAaYPJ.net] なんか微妙に間違ったな 値は大体あってるけど for (int i = 1 ; i <= DIV_NUM ; i++){ こうだね
182 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 21:14:08.51 ID:3EaU/rl6.net] 俺の悩みは一体。もっといい理屈があるじゃないか!Orz
183 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 22:02:09.84 ID:k5FAaYPJ.net] 一番原始的な積分値の求め方だよ
184 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 22:08:33.54 ID:3EaU/rl6.net] なるほど。勉強になるわ。
185 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 02:46:42.95 ID:WkKrcfNI.net] >>162 ideone.com/Fpqwn1 C++。実はこれでよかったのか? ゲーム世代だから、こう、もっと複雑なものを想像してたんだけど。 こんな感じでいいの?シンプルね。 スペシャルサンクス >>179 @積分について教えてもらった。
186 名前:164 mailto:sage [2015/12/09(水) 21:24:48.15 ID:ZhIEYZLO.net] >>175 台形式による数値積分の積分幅に応じた誤差は関数の 二次微分値(曲率)に応じて変化するので、積分幅を調整することによって 誤差を抑制したければ関数の二次微分に相当する値に応じた 幅を使えばいいとおも あるいは区間の関数自体を非直線近似によって真の値からの乖離による 誤差を減らしかつ計算量を抑えるにはシンプソンとか二次曲線近似とか
187 名前:164 mailto:sage [2015/12/09(水) 22:44:23.10 ID:92NQQkZk.net] いや、でも円を等分割したときの誤差率は 完全に分割角依存で 曲率半径には依らないか なんか間違えちゃったかもwテヘペロ
188 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 22:53:48.61 ID:EF8HxpWM.net] >>182 なんか素人が痛いからそろそろ止めた方が 板違いだし
189 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 00:24:50.66 ID:FNI4SdQA.net] >>182-183 解説ありがと。 でも、数学わからんので数学用語がこんなに出てくると爆発しちゃうお。
190 名前:デフォルトの名無しさん [2015/12/10(木) 20:15:14.98 ID:qXWtOvvK.net] お題: 西暦が与えられるので その年の十月一日から翌年の二月末日までに 平日の月曜がいくつあるか求めよ
191 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:05:45.07 ID:1swodkqj.net] >>186 >>平日の月曜がいくつあるか求めよ 平日の月曜というのがよくわからないのですが、 たとえば、春分の日とか秋分の日が月曜日ならばそれを除く ということですか。 春分や秋分の日が日曜日のときは、月曜日が振り替え休日に なりますが、その場合も除くのでしょうか。
192 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:14:37.28 ID:qXWtOvvK.net] >>187 はい、祝日と振り替え休日を除いた日数です
193 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:26:01.14 ID:IEwdtYYT.net] 祝日って施行された年月日の表を持たないといけないね 決め方も途中で日にち固定じゃなくなった祝日もあるし
194 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 00:00:09.46 ID:QFhJl34b.net] 江戸時代には、祝日というものは正月ぐらいしかないだろうし、 祝日も明治5年の改歴以来いろいろと変わってきているので、 西暦をインプットして求めるといったって、そういう祝日が何年から 改訂されたかの表が必要でしょうし、第一天文学的に決める春分と 秋分の日が今日では、地球の自転を一定とした力学字で計算し、そして その力学時と世界時との差を予測して世界時に直して日にちを決めて いるわけだから、過去の世界時と力学時との差は判っているけれど 将来の差はあくまでも予測にしか過ぎないから、将来の春分や秋分の日 を求めて、それが月曜日にあたっていないと計算ではでても、その時の 世界時と力学時との差はその年にならなければ判らないから、将来 については、厳密にいうと計算できないことになります。 西暦を与えてということだから、たとえば西暦1000年については どのように計算すればいいのですか。その頃の祝日というのは、どうすれば わかりますか。
195 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 00:27:12.79 ID:eVuXsWSu.net] 日本国という縛りもありませんし。
196 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:26:06.24 ID:tt4EKsw8.net] これアルゴリズムとか関係なくね? DBに自分で登録するかそういうWebサービスを探して利用するしか
197 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:32:51.11 ID:tt4EKsw8.net] >>189 の言うように予め配列等に祝日のデータが入ってると仮定すれば答えようがあるかも 宿題や仕事で使うコードなら他人に投げるのは感心しない
198 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:40:36.76 ID:kB8+oJGq.net] どこかで見た問題に適当に制約付けただけじゃね? ちょっとでも考える能力あればこりゃ無理と分かるだろうし
199 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 09:08:34.35 ID:eVuXsWSu.net] 俺ニートだから、全部休日な。答えは0だ。
200 名前:デフォルトの名無しさん [2015/12/11(金) 13:06:30.20 ID:L6hqxofP.net] paiza、「プログラミングで彼女をつくる」オンラインハッカソンを開催 | マイナビニュース エムアウトグループのギノは12月8日、IT/Webエンジニアに特化したプログラミング転職サイト「paiza」にて、恋愛プログラミングゲーム「paiza オンラインハッカソンVol.7 プログラミングで彼女をつくる」を公開したことを発表した。 開催期間は、2015年12月8日12時00分から2016年1月13日23時59分まで。 news.mynavi.jp/photo/news/2015/12/09/611/images/001l.jpg news.mynavi.jp/photo/news/2015/12/09/611/images/002l.jpg news.mynavi.jp/news/2015/12/09/611/ 恋愛SLG: プログラミングで彼女をつくる|paizaオンラインハッカソン7 https://paiza.jp/poh/ando
201 名前:デフォルトの名無しさん mailto:sage [2015/12/12(土) 00:02:55.04 ID:epBUOQqG.net] ニッポンバンザーイ!!!
202 名前:デフォルトの名無しさん mailto:sage [2015/12/12(土) 01:49:09.61 ID:g+kFVlkS.net] >>196 全部解くのに70分、水着に30分かかってもーた
203 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 07:17:29.28 ID:O2iUJZml.net] >>162 ideone.com/gPjeg8 C++。意味も分からずパラメータをいじっていたらより模範解答に近づいたのでアップ。 なぜかGCCではコンパイルできない。 メルセンヌツイスタは優秀だな。さすがモンテカルロ用乱数。
204 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 07:23:54.61 ID:O2iUJZml.net] 今見て思ったんだけど、このコード乱数使ってるのにこの精度だと値がほとんど一意なんだな。 これどれくらいあってるんだろう??
205 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 14:41:46.73 ID:X4YbRsnm.net] お題:モンテカルロ法でドーナツから切り取った部分の体積と表面積を求めなさい uproda.2ch-library.com/909700o0Q/lib909700.bmp 参考: 3次元CADでは 体積 194#.##・・・ 表面積 99#.##・・・
206 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 16:48:49.04 ID:sP1yS+qf.net] >>201 C++ 体積だけ ideoneが調子悪くてせっかく書いたのが消えた 出力にはそれらしい数字が表示されてるでしょ ideone.com/NK8Obe
207 名前:201 mailto:sage [2015/12/13(日) 16:58:32.34 ID:sP1yS+qf.net] ついイライラしてクソ解答を書き込んでしまったが、コード書きなおした ideone.com/l7avA0
208 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 22:16:08.38 ID:O2iUJZml.net] ideone.com/9dojVw C++。謎の係数に轟け。
209 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 02:29:21.98 ID:eVz/xHue.net] >>201 ideone.com/jTXuFD ちょい、リファレンス間違ってねーか? 詳しくはウィキペディア見てくれ。 https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%BC%E3%83%A9%E3%82%B9
210 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 02:30:05.61 ID:eVz/xHue.net] あー切り取った部分だった。Orz