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/ 宿題は宿題スレがあるのでそちらへ。
2 名前:デフォルトの名無しさん mailto:sageteoff [2015/10/07(水) 20:19:59.95 ID:c4LYwtKo.net] 過去スレ 6 peace.2ch.net/test/read.cgi/tech/1418278634/ 5 peace.2ch.net/test/read.cgi/tech/1411227287/ 4 peace.2ch.net/test/read.cgi/tech/1402622093/ 3 peace.2ch.net/test/read.cgi/tech/1390525149/ 2 toro.2ch.net/test/read.cgi/tech/1357191974/ 出されたお題をコーディングして罵られるスレ toro.2ch.net/test/read.cgi/tech/1354393458/
3 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 20:27:26.50 ID:qc2rPE1F.net] 俺のチンコォ崇めてプログラミングスキルを磨け チンコォグイーン! imgur.com/TL0hKpS.jpg
4 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 20:53:39.49 ID:c4LYwtKo.net] 景気付けにどうぞ お題: (1)0〜9からなる文字列Sが与えられるので、Sの部分文字列の中で3の倍数が全部でいくつあるか求めよ。 (2)同様に、与えられたSの中に7の倍数が全部でいくつあるか求めよ。 例: (1)30123 -> 7 (3の倍数は3,3,12,30,123,3012,30123の7つ) (2)30123 -> 1 (7の倍数は301の1つ) 制約: 1≦Sの長さ≦5万
5 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 03:32:30.80 ID:OORjem1H.net] >>4 Ja
6 名前:va http://ideone.com/sPM7Ao 書いててよくわからんくなった… ローカルで1000桁計算した結果がBigInteger使った場合と同じになるから多分あっていると思う [] [ここ壊れてます]
7 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 19:59:21.41 ID:6/TT9nGb.net] >>4 C++ ideone.com/tZdCFL テストデータは>>5 さんのを頂きました。
8 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:37:13.10 ID:6YOPIK9g.net] 深谷優先探索の練習したいからだれか問題頂戴
9 名前:デフォルトの名無しさん [2015/10/08(木) 22:44:17.56 ID:7fMgdVUK.net] 深谷優先探索
10 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:44:50.73 ID:ODE72HFL.net] >>7 閉路の迷路を自動生成して、ゴールを深さ優先探索で求めよ。 っていうのは?
11 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:38:09.02 ID:/28lT51i.net] >>7 Prolog処理系の実装
12 名前:デフォルトの名無しさん [2015/10/09(金) 16:58:59.65 ID:Ei93KrvX.net] これの思考ルーチン マンカラ ( ボードゲーム ):無料Flashゲーム www.sousakuba.com/flash-games/mancala.html
13 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 22:10:18.75 ID:cypHo82J.net] >>4 Ruby 1000桁で10秒くらいかかるので5万桁は無理 ideone.com/ggVXBd
14 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 23:20:18.23 ID:cCGMMWjY.net] 前スレ >>971 Java ttp://codepad.org/Mhip6Mpt 結果 stdin read ******************** **K***************** **S***************** **R***************** **KK**************** **SS************K*** ***RR**S*******S**** ***K*K*K******RK**** ***SS*SR*****KS***** ***R***S***KSR****** **KK***K**S*K******* *S*S***KSRKS******** ********K*********** *******S*K********** *********S*********K ********SR*KSRKS**S* *********K*******R** *********SR*SKRSK*** ***********S***S**** ************K*******
15 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 12:15:41.56 ID:2ua4rw45.net] >>4 Java ttp://codepad.org/f0Rh8cj2
16 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 18:26:36.88 ID:oc4xuXaB.net] >>4 (2) Io f := method(s, b := list(1, 3, 2, 6, 4, 5) c := 0 n :=s size - 1 for(i, 0, n, if(s at(i) - 48 != 0, for(j, i, n, r := 0 for(k, 0, j - i, r = r + (s at(j - k) - 48) * b at(k % 6) ) if(r % 7 == 0, c = c + 1) ) ) ) c ) Io> f("20151012") ==> 1 Io> f("1234567890"repeated(10)) ==> 681
17 名前:デフォルトの名無しさん [2015/10/13(火) 14:13:50.33 ID:mv2XvxUt.net] Jewels 8*8の盤面のすべてのマスに、 7種類の内のいずれかの宝石を、ランダムに置く 縦・横・斜めに3つ以上、同じ種類の宝石が並ぶと、 並んだ宝石は、すべて同時に消えるとき、 何個の宝石が消えたか? 上級編 上の条件で、宝石が消えたら、上にある宝石が下に落ちてきて、 また消える条件を満たせば、宝石は同時に消えるのを、 再帰的に繰り返すとき、(消える宝石が無くなるまで、) 何個の宝石が消えたか? 参考までに、マス目のタイプ。 番兵:-1、宝石なし:0、宝石1〜7 番兵を使うのなら、盤面10*10で考えて
18 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/10/13(火) 20:35:49.75 ID:DtroG4QR.net] お題:与えられた未知の英単語から発音を推定して、発音記号を出力する。
19 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:41:13.94 ID:4/4DmQRL.net] >>17 www.babelbible.net/lang/lang.cgi?mode=right&noframe=1&doc=en_sndx&lang=en ヒントあげるので自作してください。
20 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:20:15.16 ID:9bQvUcqb.net] 冗長性の過分応分加減は絶妙
21 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 17:37:45.49 ID:G+M9VpQ5.net] お題:1から100までの整数を1回ずつすべて使い適当な順に連結して ひとつの大きな数とみなす。最小のものを求める。 1から10を使った場合は、10123456789が最小となる。
22 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 18:52:07.89 ID:Iqqc+OKD.net] 実用アプリの開発に熱がはいりだしたら お題が頭に入らなくなった 俺もまだまだだな
23 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/10/14(水) 18:59:41.69 ID:O5xSO2EX.net] >>20 >1から10を使った場合は、10123456789が最小となる。 10はどこ?
24 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 19:22:57.89 ID:tW8nHrv+.net] 先頭だろ
25 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 20:14:40.28 ID:ExdaGJT8.net] 最小:10010111213141516171819202122232425262728293031....99123456789 最大:99998979695949392919089888786...111087654321 ????
26 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 20:16:42.00 ID:ExdaGJT8.net] 最大は明らかに間違いだた 99999897969594939291908988878685....111087654321100 ぢゃないかと...
27 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 20:49:13.09 ID:c4eYG1dl.net] 87の前に8を持ってきたほうがいい 76の前に7を持ってきたほうがいい 逆に末尾は10100のほうがいい 最小も先頭は1001011112となる
28 名前:デフォルトの名無しさん [2015/10/14(水) 21:15:32.59 ID:guvBL9Z6.net] 下がっててみにくい
29 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 21:51:06.92 ID:dkvYFzw9.net] >>20 C++ ideone.com/1roFPZ
30 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 02:19:43.47 ID:MsEvcwqa.net] 最大 99998979695949392919089888878685848382818079787777675747372717069\ 68676665564636261605958575655554535251504948474645444434241403938\ 37363534333323130292827262524232222120191817161514131211110100 ???
31 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 03:16:29.70 ID:Tp1SkuaU.net] >>20 Ruby2.0 >>28 と同じロジック ideone.com/Qx4Yln
32 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 10:10:32.84 ID:/JO/MU8C.net] >>20 Io Range f : method(n, 1 to(n) map(v, v asString) sortBy(block(i, j, (i .. j) < j .. i)) join ) Io> f(20) ==> 1011112131415161718192023456789
33 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 16:17:59.88 ID:IAn5ASk+.net] >>28 アルゴリズムにちょっと感心した
34 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 22:50:50.56 ID:vLvoWUco.net] >>16 Java ttp://codepad.org/xR5aj5qb ちょっとアレンジw
35 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 13:39:40.63 ID:gWco8U62.net] 問題:たかし優先探索 スタートからゴールまで何通りのルートがあるか求めなさい たかし君は傷つきやすいので"たか4ね"を避けて進まなければいけません 同じルートを2回以上進んではいけません ["スタート", "たか4ね","たかし","たかし","たかし"], ["たかし","たかし","たかし"], ["たかし","たかし","たかし","たかし", "たかし"], ["たかし","たか4ね","たかし"], ["たかし","たかし","ゴール"],
36 名前:デフォルトの名無しさん [2015/10/17(土) 22:59:10.98 ID:CuP1bx6x.net] このスレなんで上げてもすぐに落ちるんだろ
37 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 13:35:05.15 ID:VWt3JxRU.net] C#で書くとこうなるかな>>20 無理矢理LINQを使った ideone.com/8FBn7W ここまでやるとアホみたいww
38 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 00:57:02.23 ID:L9hia2RL.net] お題 "3.1415926535"のような小数を表す文字列と小数点以下の桁数を指定する(0以上の)整数を入力し、2進数小数を表す文字列を出力 例えば "5.5",3 の場合は "101.100" を出力する 桁を丸めるときは切り捨てではなく0捨1入("5.5",0 の場合は"110"を出力する)
39 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 14:16:57.22 ID:PGvR7XY7.net] 例えば有効数字が3桁の場合、元の実数を8倍して整数に丸めれば、 ほとんどの場合それがバイナリの並びになってるはずだが、全ての場合それで問題がないかどうか自信が持てんな。
40 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 15:30:38.50 ID:3YrRpfpr.net] >>37 ideone.com/39GbxB C++。適当に実験してたらそれっぽくなった。 あってるかは保証しない。
41 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 16:11:00.46 ID:yLq/jjBd.net] // お題:電卓を実装する // 引数はボタン入力履歴で、戻り値は現在の表示 // ボタンは 0123456789-+*= のみ "5" => "5" "5+" => "5" "5+3" => "3" "5+3=" => "8" "5*-3=" => "2" // 最後に入力した演算子が有効 "5-3+" => "2" // 途中結果を表示する "5-3*2=" => "-1" // -+ よりも * が優先される // 初期値は 0 "" => "0" "-10=" => "-10" "*10=" => "0" "4+3=2=" => "2" // = の次に数値が入力された場合、途中結果は捨てる "4+3=*2=" => "14" // * よりも = が優先される // 実装例: https://ideone.com/h8Tjwc
42 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 16:21:09.13 ID:AVx5NpJt.net] お題 HelloWorldの10文字の組み合わせで生成できる文字列はいくつあるか求めよ HlleooWrld HerllodWol WelloorHd .... 条件 ・先頭は大文字のHかWではじめなければならない ・文字列の最後は小文字で終わらなければならない
43 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 17:05:47.08 ID:uI3C5IMU.net] >>41 ideone.com/xmC0Mq C++。こんな感じかな。
44 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 17:53:28.85 ID:A1vNd6F7.net] >>40 Python3 https://ideone.com/o0W21U 正規表現とeval()の力
45 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 18:10:16.38 ID:A1vNd6F7.net] ボタン式卓上電卓の想定なら"5-3*2="は"4"の方がメジャーかもね
46 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 19:26:01.78 ID:9ZHSOSPI.net] >>42 アウトHdrWl
47 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 19:27:34.86 ID:uI3C5IMU.net] >>45 それはイデオンがタイムアウトしたので切れました。
48 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 19:56:10.00 ID:8Z4zyZfA.net] >>41 Excel =(2*FACT(9))/(FACT(3)*FACT(2))-(2*FACT(8))/(FACT(3)*FACT(2))
49 名前:デフォルトの名無しさん [2015/10/23(金) 00:43:46.13 ID:kMcaPJUG.net] >>40 haskell ideone.com/AVRHl6
50 名前:デフォルトの名無しさん [2015/10/25(日) 15:42:30.99 ID:NSF+fqy+.net] 暇つぶしにどうぞ。 お題: nは2以上の整数とする。相異なるn個の文字から1文字選び順に並べ、n文字の文字列を作る。 このとき、出来た文字列が回文となる確率を求めよ。ただし、同じ文字は何度も選んでも良い。 例) n = 2のとき 相異なる2個の文字から2文字の文字列を作る作り方は2^2 = 4通り。この中で回文となるのは2通り。 従って答えは 2/4 = 1/2 n = 10 のときはいくらか? 同様にn = 11の場合はどうか?
51 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 21:26:04.46 ID:q9jqp7eP.net] 1/pow(n,floor(n/2))
52 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 02:51:13.95 ID:X1tUuUC+.net] >>49 ideone.com/sxblVg C++。モンテカルロ〜〜〜。なのか? あってるかは知りません。
53 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 02:52:48.94 ID:X1tUuUC+.net] どっちかっていうと分布確立の問題だからどういう分布を望んでるかで結果変わりそうかな? C++だったらディストリビュータ変えればいくらでもいじれる。
54 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 13:07:28.84 ID:C/77uVUj.net] >>51 n = 10 の場合は正しいようですがn = 11の場合が違うようです。 確率分布は良く知りませんが、単純な確率の問題ですよ。 ヒント: 約分できるので分子は必ず1になります
55 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:30:44.42 ID:X1tUuUC+.net] >>53 片方あってるんだったら、試行回数の問題だと思うのですが、 これ以上試行するとイデオンがタイムアウトするので無理です。 勇者の登場を待ちましょうか。
56 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 21:54:25.47 ID:zYgBhlkj.net] 回文なので前半が決まれば後半は1通りしか無い? 11^6 / 11^11 = 1 / 11^5 じゃね nが偶数なら 1 / n ^ (n / 2)
57 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 22:14:13.46 ID:fLaXb4KYb] なんで>>50 がスルーされているんだ…と.scの方に書いてみる
58 名前:デフォルトの名無しさん [2015/10/26(月) 22:16:43.98 ID:DXNKihF1.net] >>55 つまり>>50
59 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 02:10:42.88 ID:xGCQarhq.net] 方眼紙に均等に5×5=25個の点が打ってある。 ランダムに2点を決定して直線を複数作っていく。 (X=0〜4,Y=0〜4,のほうが解かりやすい?) しかし、3本の直線の端を頂点として三角形になった場合はその3本は 削除されるとする。いきなり三角形が複数できた場合は任意の 1個だけの三角形の3本の直線が削除されるだけでよい。 とにかく3角形ができた場合は、直線3本しか削除されなくて良い。 また、例えば3本の直線 直線(0,0)(4,0) 直線(0,0)(2,0) 直線(2,0)(4,0) は1本に見えるが、面積の無い3角形として3本の直線は削除されるとする。 (問題) この場合、残る直線はどんなに回数を多くしても収束してしまうか? またその数はどのくらいか? また10×10の場合など色々変えてどのくらいに収束してしまうのか確認せよ。
60 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 08:30:08.61 ID:4Bw9gOvg.net] >>58 2点を選んで(2,0)(2,0)を引いた場合、これを線分と認めるか無視するのか。 既に線分(0,0)(4,0)がある状態で(0,0)(4,0)を引いた場合、線分の重複を認めるのか無視するのか。
61 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 08:35:48.75 ID:D5hlxVUX.net] 消し方によって確率が変わりそうな気がするがそこらへんは大丈夫なん?
62 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 11:16:40.27 ID:nTHAaiUE.net] >>58 何度読んでも何言ってるのかさっぱり分からん。 「いきなり三角形が複数」とか「とにかく三角形ができた場合」って何のことよ。
63 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 12:30:53.45 ID:GiyDMn1h.net] >>59 それは長さが無いから線分としない。スキップ。 重複は認めるとしよう。 >>61 言い方が悪かった。同時に複数できたらってこと。 例えば、四角形ができていて、対角線が次にできたら 三角形は2個同時にできるけど、どちらか一方の三角形分の線分 3本を削除すればいいとういこと。また、例えばV字に何本も重複してて 1本追加で3角形が出来ても、重複分全部でなく、3本削除だけでいい。
64 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 19:12:54.11 ID:4Bw9gOvg.net] >>58 適当に回したらこれくらいになった 線分の重複を無視する場合 5x5 38.748293 10x10 315.085106 線分の重複を認める場合 5x5 54.334077 10x10 365.470484
65 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 00:20:15.77 ID:TbBvWlSz.net] >>62 解説ありがと なるほど既存の多角形を切り取る場合場合があるわけかw
66 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 13:29:39.48 ID:P6AfRAxK.net] 予想だと、プログラムの問題もあるが、乱数発生の仕方の問題でもある。 コンピューターの用意した人口的に散りばめた乱数だとすぐに収束。 自然界に近い完璧に近い乱数を発生なら収束しないかも。
67 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 14:34:56.09 ID:GTtq7s5w.net] メルセンヌ・ツイスタ使ったらどうよ
68 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 23:29:17.08 ID:FmImj1NY.net] みんなはこのスレだけじゃなくyukicoderとかでも出題してたりするの?
69 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 02:29:03.10 ID:izatGTy3.net] >>58 ideone.com/H3y5iK C++。作っては見たものの、品質は低い。ちょい自信ないな〜。 抜けがあったらごめん。
70 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 07:00:44.92 ID:VBv6nvKP.net] 5x5 https://paiza.io/projects/sAfl2ma6nkZHgBKSjhHWEA 52.87 10x10 https://paiza.io/projects/SUCBFmGQqvLsld23IOzgag 362.59
71 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 15:28:30.15 ID:79rh8PzW.net] お題: お題aの仕様は3日後に変更されます。仕様変更時、最小限の変更で対応できるようにお題aを実装してください。 お題a:入力される「Hello, World!」を逆順にして出力する。 例: in < Hello, World! out > !dlroW ,olleH
72 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 15:43:46.90 ID:T2ZXoWbN.net] >>58 5x5 100000回 10x10 10000回 C ideone.com/QyoAsj C 44.3 229.7ms 5x5 ideone.com/y0VaSp C 381.3 441.5ms 10x10 C++移殖(tuple+vector) ideone.com/qTrT0j C++ 41.5 426.3ms 5x5 ideone.com/WFYDCn C++ 351.2 972.4ms 10x10 結構変わるもんですね。
73 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 21:18:08.06 ID:izatGTy3.net] >>70 ideone.com/fDO24p C++。コードにして4行だから仕様変更かかったら全部書き直しても間に合う位だと思う。
74 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 21:22:41.58 ID:izatGTy3.net] >>58 >>68 のコードを1分くらい回してたら720くらいで増えなくなった。ちなみにCPUはスカイレーク。
75 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 00:24:00.79 ID:KHL3HLvQ.net] >>70 C ideone.com/SJqau8
76 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 01:26:03.69 ID:cJLCmHdm.net] >>70 どう仕様変更されるのか分からないとどうしようもない 入力文字列はもちろん、逆順という仕様も変更されるだろうし となると出来るだけ短く作るぐらいしかない。 #!/bin/sh read a echo "!dlroW ,olleH"
77 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 13:15:09.33 ID:rNKSig65.net] >>70 Haskell main = interact reverse
78 名前:デフォルトの名無しさん [2015/11/01(日) 15:34:04.71 ID:srdwxzCV.net] お題: 2つの文字列を引数としてとり、その2つの文字列の類似度をあらわす値x (0.0 ≦ x ≦ 1.0)を戻す関数fがあるとき、与えられた文字列のリストを 類似度が高い文字列がなるべく近くになるように整列する関数gを 作成してください。 (f "a" "a") => 1.0 (f "a" "b") => 0.0 (f "fukushima" "kyoto") => 0.0 (f "fukushima" "tokushima") => 0.7142857142857143 (f "fukushima" "tokyo") => 0.0 (f "kyoto" "tokushima") => 0.0 (f "kyoto" "tokyo") => 0.3333333333333333 (f "tokyo" "tokushima") => 0.2 (g '("fukushima" "kyoto" "tokushima" "tokyo") #'f) => ("fukushima" "tokushima" "tokyo" "kyoto")
79 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:54:16.22 ID:tjf5Il2M.net] >>77 fもつくる必要がありますか?
80 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 18:18:40.16 ID:V0olVSh1.net] gの要件曖昧過ぎw
81 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 19:57:17.19 ID:KHL3HLvQ.net] >>77 Ruby fは適当。 ideone.com/XPMHpO
82 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 21:25:08.29 ID:srdwxzCV.net] >>78 fもお願いします。 ここでは、たとえばtrigramを考えていました。 もっとよい実装があればお願いします。 (defun trigram (s1 s2) (flet ((decompose (s) (let* ((l (length s)) (n (if (>= l 3) (- l 3) 0)) (j (if (>= l 3) 3 l))) (loop for i from 0 to n collect (substring s i (+ i j)))))) (let ((l1 (decompose s1)) (l2 (decompose s2))) (let ((s1l2 (loop for i in l2 sum (funcall #'(lambda () (if (search i s1) 1 0))))) (s2l1 (loop for i in l1 sum (funcall #'(lambda () (if (search i s2) 1 0)))))) (/ (+ s1l2 s2l1) (float (+ (length l1) (length l2)))))))) >>79 gは、たとえば『列の各要素間の類似度に比例し距離の二乗に反比例する値の総和が最大になるような列に整列する関数』を考えていました。 もっとよい実装があればお願いします。
83 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 02:30:55.48 ID:LjXD9Pi/.net] >>77 ideone.com/p1w9Zs ギブアップ。Trigramはうまく移植できたと思うけど、うーむ。 うまいリレーの作り方が思い浮かばなかった。 意外と難しいなぁ。
84 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 06:33:43.86 ID:+TdI2Qwj.net] 類似度の定義は無いから単純に文字位置で文字一致する文字数を長いほうの文字列文字数で割ったのを類似度にしてもいいんだよね 簡単さ! あとは類似度でグラフの最小木っての作りゃいいんっしょ?
85 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 16:32:13.01 ID:+QiDphYI.net] >>70 の変更です。 お題a: 入力文字列(日本語含む)を逆順にして出力する。 入力される文字列は0 ~ 1024バイトの範囲。 例: in < Hello, World! out > !dlroW ,olleH in < Hello, わーるど! out > !どるーわ ,olleH
86 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:14:51.67 ID:LjXD9Pi/.net] >>84 ideone.com/hLXAqt C++。半分くらい書き換えた。C++はマルチバイトキツイ。
87 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 22:32:43.41 ID:fHTNy1N3.net] >>84 #! ruby -Ku a='Hello, わーるど!' p a.reverse
88 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 11:13:37.98 ID:EjzY5wqb.net] >>85 例外飛んどるよ
89 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:38:51.75 ID:tcH4gyT3.net] >>87 GCCのろーけるがタコなんじゃないですか? VCオンリーって書いてあるじゃないですか。
90 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 16:28:22.05 ID:IhTKFi3p.net] >>84 setlocale (LC_ALL, "ja.utf8"); std::cout << "ja.utf8->" << setlocale(LC_ALL, 0) << std::endl; setlocale (LC_ALL, "utf8"); std::cout << "utf8->" << setlocale(LC_ALL, 0) << std::endl; setlocale (LC_ALL, "ja_JP.UTF-8"); std::cout << "ja_JP.UTF-8->" << setlocale(LC_ALL, 0) << std::endl; setlocale (LC_ALL, "ja_JP.utf8"); std::cout << "ja_JP.utf8->" << setlocale(LC_ALL, 0) << std::endl; setlocale (LC_ALL, "japanese"); std::cout << "japanese->" << setlocale(LC_ALL, 0) << std::endl; setlocale (LC_ALL, "JPN"); std::cout << "JPN->" << setlocale(LC_ALL, 0) << std::endl; setlocale (LC_ALL, "UTF-8"); std::cout << "UTF-8->" << setlocale(LC_ALL, 0) << std::endl; setlocale (LC_ALL, "japanese.sjis"); std::cout << "japanese.sjis->" << setlocale(LC_ALL, 0) << std::endl; 結果: ja.utf8->C utf8->C ja_JP.UTF-8->C ja_JP.utf8->C japanese->Japanese_Japan.932 JPN->Japanese_Japan.932 UTF-8->Japanese_Japan.932 japanese.sjis->Japanese_Japan.932
91 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 16:32:51.81 ID:IhTKFi3p.net] ターミナルをUTF-8にしてUTF-8のソースをコンパイル。 ターミナルをSJISにして実行。 結果: !どるーわ wolleH
92 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 20:59:19.34 ID:5zH1LNIS.net] BrainF**kでやろうかと思ったがUTF-8めんどくせw
93 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/10(火) 17:59:02.39 ID:IWmBcu9t.net] お題:粘菌のシミュレーション
94 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 21:43:34.22 ID:0SseENg0.net] 頑張ってください!
95 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:05:44.32 ID:SL51g2Xb.net] >>92 C++ こんな感じ?よくわからんけど https://paiza.io/projects/39PM4p3agMPGdANgoHT0og
96 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:21:46.45 ID:NRLjC3dW.net] 粘菌ってWikipediaで調べただけでもたくさん種類あって種類によって全然違うしどいつをシュミレーションしろと?
97 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 17:27:12.29 ID:YwXMSyH6.net] お題:自然数nで何乗しても結果の最後がnで終わるnを求める、 例 25^3 = 15626 25^5 = 9765625
98 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 21:11:00.20 ID:YwXMSyH6.net] >>96 すみません 25^3 = 15625 でした
99 名前:デフォルトの名無しさん [2015/11/11(水) 21:37:45.64 ID:kvOX2kCa.net] >>96 Java https://ideone.com/tDxrjg
100 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 23:51:59.90 ID:kvOX2kCa.net] >>96 Java https://ideone.com/npEiYF 5と76から延ばす方向で
101 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 23:55:55.86 ID:kvOX2kCa.net] 何で76にしたし…
102 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 07:16:51.84 ID:TDqS/713.net] >>96 https://ideone.com/3DYhOi C++。アルゴリズムはあってると思うんだけど、浮動小数誤差でうまく数字が出てない気がする。 違う方法にすればよかったかなぁ・・・。Orz
103 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 15:29:35.14 ID:mg6U+sOG.net] >>96 1から32767までの間で調べた ideone.com/VK6T0A
104 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 16:34:27.03 ID:2RvUZ1HO.net] >>96 Java https://ideone.com/KfmF8v >>102 を見て>>98 を書き直し…シンプルになった >>96 Java https://ideone.com/bCSEWh 末尾5系統 初期値=5 ループ1回目 5 * 5 = 2[5] ループ2回目 25 * 25 = 6[25] ループ3回目 625 * 625 = 390[625] → 390の下位桁が0なのでその上の桁まで使う → 90[625] ループ4回目 90625 * 90625 = 82128[90625] → 8[90625] ループ5回目 890625 * 890625 = 793212[890625] → 2[890625] ループ6回目 2890625 * 2890625 = 以下略 末尾6系統 初期値=6 ループ1回目 6 * 6 = 3[6] → 10-3=7 → 7[6] ループ2回目 76 * 76 = 57[76] → 10-7=3 → 3[76] ループ3回目 376 * 376 = 141[376] → 10-1=9 → 9[376] ループ4回目 9376 * 9376 = 8790[9376] → 100-90 → 10[9376] ループ5回目 109376 * 109376 = 11963[109376] → 10-3=7 → 7[109376] ループ6回目 7109376 * 7109376 = 以下略 コネコネしてたらなんかこんな感じで出来たが、この計算だと抜け有ったりするかな?
105 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:28:56.44 ID:TDqS/713.net] >>96 ideone.com/UQTHRZ >>101 を修正。(バグフィックスとは言ってない。) 少しましになったかな?
106 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:41:27.02 ID:mg6U+sOG.net] >>104 それ答え間違ってると思うよ 問題は ***何乗しても*** なので、特定の場合(たとえば2乗や3乗)についてのみ成り立つような物は除外しないと
107 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:46:40.58 ID:TDqS/713.net] >>105 あーなるほど。勘違いしてた。 いい手がないなー。Orz
108 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:49:14.34 ID:TDqS/713.net] 可能性のありそうなものを篩にかける程度しかできてないか。 最近問題が難しくなってきたなぁ。
109 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:51:41.90 ID:TDqS/713.net] >>104 そだそだ。ご指摘ありがとう。
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
211 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 03:09:34.83 ID:eVz/xHue.net] 真面目に考えると結構難しいなぁ。
212 名前:200 mailto:sage [2015/12/14(月) 09:45:09.75 ID:qfulNci3.net] 正確な値: 体積 1946.99 表面積 992.95 (±0.5%ぐらいなら正解かな) 1937〜1956 988〜998
213 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 14:54:41.43 ID:0wzBU9LM.net] >>201 C++ 表面積だけ アプローチが間違ってるのでだいぶ誤差があるんだけど、正しいアプローチがわからん ideone.com/Z07oLX
214 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 15:51:49.07 ID:qltyQEb4.net] (ヒント) バナナの表面積はわからないけど バナナの皮を剥いてミキサーにかけて どろどろにして軽量カップに移せば体積はわかる。 バナナの皮が極めて薄ければ (あまり薄くするとモンテカルロが不安定になるから0.1ぐらいがいいかな?) 軽量カップの体積=バナナの表面積×皮の薄さ よって、 バナナの表面積=軽量カップの体積/皮の薄さ
215 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 21:26:29.60 ID:LGdp/ous.net] >>210 おいおい,体積(と密度)を一定にしても表面積はいかようにもかえられるぞ‥
216 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 22:01:47.63 ID:5mSwVQ2V.net] >>201 ideone.com/mYkufI まあまあかな 表面は>>210 の方法じゃなくて2個に分けてみた 平面の方は簡単だけど、曲面の方はちょっと複雑 >>210 じゃさすがに誤差が大きいんじゃ?
217 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 22:50:43.48 ID:A0mNKi9L.net] >>211 表面境界の方程式がわかってるんだから そこから薄い0.1厚範囲の体積がモンテカルロでわかれば その体積÷0.1でほぼ表面積なんじゃないかな。 精密にするには(外側0.1厚+内側0.1厚の範囲の体積)÷0.2のほうがいいけど。
218 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 19:16:41.27 ID:HlYC/kU7.net] 薄膜に当たる率が低くて非効率すぎる
219 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 19:17:41.82 ID:HlYC/kU7.net] 面は面の率でやらないと
220 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 21:37:30.34 ID:HlYC/kU7.net] ideone.com/GqQTYQ 普通に積分を使ってやるとこんな感じ >>208 CADの誤差って結構大きいね
221 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 21:51:36.86 ID:HlYC/kU7.net] ideone.com/fYxQyU 薄皮方式 >>212 に比べて誤差は大して変わらなかった
222 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 21:59:12.88 ID:HlYC/kU7.net] >>212 の曲面部分の効率が悪いのが原因か 60度の範囲だけ調べれば十分だから同じ精度で3倍は早くなる 同じ時間だと誤差は1/√3に
223 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 14:09:16.90 ID:8FwsYmi7.net] >>216 CADも高価(50万以上ぐらい)なのは正確 Autocad体験版(70万)で試したらは正確だった。 自分のは6万の安物
224 名前:デフォルトの名無しさん mailto:sage [2015/12/17(木) 07:16:30.79 ID:MUNBX9mT.net] >>219 正確な値はどうやって調べました?
225 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:37:34.32 ID:R5LeEZzK.net] 6あれば9あり
226 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 21:50:12.68 ID:+ldhkJyO.net] お題:丸括弧を行頭か行末にしかかけないルールで整形する
227 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 00:42:27.39 ID:uvgJJP9n.net] 意味不明
228 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:24:49.38 ID:zvvbCA1Y.net] 与えられた文字列を適当な個所で改行して整形してください ただし、丸括弧は必ず行頭か行末にくるようにすること
229 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:47:27.56 ID:+one86k3.net] いわゆる禁則処理を実装しろって事か?
230 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:52:26.53 ID:uvgJJP9n.net] >>224 ideone.com/of1XGC C++。Lispのインタプリタでも作ってるのか? これくらいできないと先は暗いな。
231 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:08:45.49 ID:V7QFceGd.net] >>226 39~40行目で改行から80文字数えてるけど、ここにも改行処理入れるつもりだったのでは…?
232 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:09:49.09 ID:V7QFceGd.net] て>>227 書いて、ideone更新したら改行処理入ってたw
233 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:19:55.66 ID:JMFsFNWO.net] あぁ、すまん。 ちょっとコードに不満あったから修正してた。 ソーリー。たぶんこれでおk。
234 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 09:05:47.31 ID:q7MBupA+.net] >>229 あなたGitHubやらんの?
235 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:06:02.54 ID:T+sfUcIf.net] >>230 アカウントはもってるが、コマンドが不理解で使えてない。 VSでコンパイルするたびにプッシュしてほしいんだけど、 そういうことのやり方がさっぱりで諦めた。
236 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:36:01.27 ID:Rf5WBlJJ.net] >>231 VSもGitはコマンドライン操作? あなたコード書くの好きそうだしGitHubで公開した方がいいんでない
237 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 00:04:03.34 ID:zkqY07q7.net] >>232 一応GUI統合のパッケージがあるのだけど、 使い方がVSのそれじゃない感じなので挫折したっていうね。 今は治ってるのかなぁ・・・。 まぁ、コード書くのはきらいじゃないんだけど、 タマに書くコードとかはお遊戯なので公開してもあんまりメリットないと思います。 まぁちょっと試してみるか。
238 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 01:06:22.14 ID:zkqY07q7.net] 一応、VS上からサバに送ることはできた。 しかし、鯖側が何やってるか把握してないので、頭沸騰しそうだよぉ。 すごい、怖いです。
239 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 15:27:55.80 ID:B86ZwWUs.net] 個人開発ならadd, commit, pushだけ使えればおkじゃない
240 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 23:56:47.54 ID:zkqY07q7.net] ググるならそれで困らないと思う。 だが、VS上では日本語なので何をやってるかさっぱりでやり直しなのだ。 勘でこういうことだろう。っていうのを類推しながら昨日やってたが、頭沸騰する。 マジ、苦行だ。
241 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 06:03:10.21 ID:HSsTu4WU.net] Gitのプロジェクトを管理してる日本人が本出してるからお布施してみれば
242 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 08:15:12.42 ID:BOREIzQ4.net] 気が向いたらやりまっす。
243 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 00:17:22.29 ID:1GOOzyNm.net] お題:猿から餌を守る。 動物園では猿の餌を3桁の回転ダイヤル式鍵で保管管理しています。 各桁は0〜9までのどちらの方向にも回せるタイプです。 しかし猿は定期的に鍵を開けようと試みます。 猿は各桁のダイヤルをそれぞれ1操作回転させてからU字部を引きます。 もちろん、設定と合った場合は開錠してしまい餌を盗られてしまいます。 猿は番号を覚えたり、ダイヤルを順番に試すような知恵は無いので 常に操作は無作為です、また回転させる方向も無作為です。 しかし、この鍵は特殊で作られていて、回転の摩擦抵抗を(弱・中・強) に設定出来るようになっています。 弱の場合は1操作で、10〜20までのランダムなステップ数が回ります。 中の場合は1操作で、5〜10までのランダムなステップ数が回ります。 強の場合は1操作で、0(回せなかった)又は、1ステップ数が回ります。 ここで、3桁の設定をどのようにすれば、猿が最も開錠する確率が低くなるでしょうか? 3桁の順番は関係ないと思うので、例えば (2桁を中、1桁を強)または(2桁を弱、1桁を強)などと答えてください。
244 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 00:33:02.82 ID:kHVCdoOu.net] ドンだけランダム必要なんだ。ちょっと面倒だなぁ。
245 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 02:00:08.64 ID:kHVCdoOu.net] >>239 ideone.com/NBUZIw C++。ローカルでデバッグしたら収束しなかったので、ほとんどデバッグしてない。 なぜかイデオン上では速攻オワタ。 大丈夫かこれ???
246 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 02:00:55.35 ID:kHVCdoOu.net] ところで、GITHUB公開したらメールばれするじゃないか。 そんな趣味はありませんですことよ。
247 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 02:52:11.77 ID:kHVCdoOu.net] ちょ、誰かいない? >>241 検証できる人いませんかー。 デバッグできないので何ができるわけでもないけど。
248 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 09:45:56.04 ID:gJy9w4AY.net] 新年問題きたか
249 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 12:42:50.44 ID:2anvHRU0.net] >>239 Java ideone.com/ZAAHRo
250 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 13:19:32.68 ID:/Zl81OUL.net] 数学的に解きたくなってしまうな・・・
251 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 00:32:27.90 ID:9G3HgWpt.net] >>239 ideone.com/XqmuP4 C++。ちょっとバグってたの修正。0〜8までしか選択できてなかった。
252 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 00:34:34.13 ID:9G3HgWpt.net] あけましておめでとうございます。
253 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 01:02:54.81 ID:yxxZ1kbC.net] おめでとうございます
254 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 13:06:55.68 ID:eZmmhQ/k.net] あけましておめでとうございます。今年もよろしく。 新年最初の問題なので簡単そうで難問に挑戦してください。 お題:直角三角形ABCがあります。 ∠Cが直角とします。 ACの長さは5cmです。 ABの線上に点Pを取りました。 APの長さは2cmです。 ここでPからCに線分を引きました。 PCの長さを測るとちょうど4cmでした。 この直角三角形ABCのBCの長さは何cmでしょうか? なるべく正確に出しなさい。
255 名前:249 mailto:sage [2016/01/01(金) 13:23:06.00 ID:eZmmhQ/k.net] 訂正 問題ミスです。簡単ですねw
256 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 14:48:21.26 ID:BqDq7bML.net] 余弦定理よりcosA=13/20 1+(tanA)^2=(1/cosA)^2 よりtanA=√31/13 BC=5tanA=5√31/13
257 名前:249 mailto:sage [2016/01/01(金) 20:25:54.12 ID:eZmmhQ/k.net] 訂正お題:△ABCがあります。辺BCが底辺です。 (それぞれの角は90°以上にならない普通の三角形です。) BCの長さは8cmです。 CからABの線上に垂線を下ろし点Pを取りました。 APの長さはちょうど1cmなりました。 さらにPからBCの線上に垂線を下ろし点Qを取りました。 PQの垂線の長さはちょうど3cmなりました。 さてBQの長さは何cmでしょうか?(注意:解が1つとは限りません。) 小数点以下6桁まで出しなさい。
258 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 08:23:10.74 ID:R8CGoUf/.net] >>239 Java ideone.com/4144a7 5秒に収まらなかったでござる…だが精確にはなったと思う
259 名前:249 mailto:sage [2016/01/02(土) 16:54:58.87 ID:qBZ4J2GA.net] どうもm(_ _)mごめんなさい、簡単そうで定規コンパスで絶対作図出来ない三角形 やっと思い出しました。(恐らくCADでも作図できない。) お題:△ABCがあります。辺BCが底辺です。 (それぞれの角は90°以上にならない普通の三角形とします。) 三角形の高さは7cmです。 BCの長さは10cmです。 ABの線上に点Pを取りました。 APの長さは1cmです。 ここでPCの線分を引き長さを計るとちょうど8cmなりました。 さてPBの長さは何cmでしょうか? 小数点以下6桁まで出して下さい。
260 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 18:31:25.74 ID:R8CGoUf/.net] >>255 Java ideone.com/NJYMYX よーわからんがこれでええのん?
261 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 21:36:26.87 ID:qBZ4J2GA.net] >>256 Goodです。やはりプログラムは簡便に求まりますね。 確か、方程式にすると4次方程式だったかな。
262 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 23:12:30.77 ID:wbcMORBx.net] 6次にはなったけど、4次になる? どうやるの?
263 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 23:57:06.31 ID:wbcMORBx.net] 6553600 x^6 -22937600 x^5 +30353664 x^4 -18575872 x^3 +5301408 x^2 -889056 x +194481 = 0 の解(の1個)に対して、 8x / (7-8x) が求める長さ
264 名前:255 mailto:sage [2016/01/03(日) 00:02:35.63 ID:j2CXypF5.net] うん、さっぱりわからんww
265 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 00:10:58.01 ID:o15FFH+r.net] 普通にpyを8xと置いて方程式を立てて整理しただけ
266 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 00:35:54.90 ID:TvE7D5Dq.net] >>255 Emacs Lisp (require 'cl-lib) cl-lib (let ((Ay 7.0) (Bx 0.0) (By 0.0) (Cx 10.0) (Cy 0.0) (AP 1.0) (PC0 8.0)) (let ((Axmin Bx) (Axmax Cx) PB0) (cl-loop (let ((Ax (/ (+ Axmin Axmax) 2))) (let* ((Px (let ((a (+ 1 (expt (/ Ay Ax) 2))) (b (+ (* -2 Ax) (/ (* -2 Ay Ay) Ax))) (c (+ (expt Ax 2) (expt Ay 2) (- AP)))) (/ (- (- b) (sqrt (- (expt b 2) (* 4 a c)))) (* 2 a)))) (Py (* (/ Ay Ax) Px))) (let ((PB (sqrt (+ (expt (- Px Bx) 2) (expt (- Py By) 2)))) (PC (sqrt (+ (expt (- Px Cx) 2) (expt (- Py Cy) 2))))) (and PB0 (< (abs (- PB0 PB)) 0.000001) (return (format "%f" PB))) (setf (if (< PC0 PC) Axmin Axmax) Ax) (setq PB0 PB))))))) "7.959000"
267 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 02:58:05.62 ID:o15FFH+r.net] >>249 をニュートン法で解くのが良い 100万桁くらい求められる
268 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 15:15:54.32 ID:gIFHPruM.net] >>255 Haskell 適当にやったけどそれなりの値に収束したぞ main = print $ f 3 1 !! 10000 f x d = x : f (x - g x * d) (d * 0.9) g x = sqrt(1-((x^2+10^2-8^2)/(x*10*2))^2)*(x+1)-7 -- 7.958400097301163
269 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 17:50:09.78 ID:cbZEOl3j.net] 249とかは、プログラミングの話題とはあんまり関係ないと思うんだが
270 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 18:16:31.23 ID:mH8w9NDh.net] 正しい値 7.958999540670207177702263965366890868924353898555 7799452182420944176743383277819472811732768796743 8318898738257814428173492288313392264554506228517 666119...
271 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 18:19:15.52 ID:mH8w9NDh.net] >>201 の正しい値 1947.11807954634173960535758830613451914405126679271213882 533811635602148727751327773910199748046019861942974251070 215931647320721843150204685782788027005081182762594264937 472455162842376624181590647736961208708004693388297869382... 992.957114044052359738684758693502096892477144491881820261 461861302037924597815356848916173956940410685796740490976 075326082780973939688404480667490868665288270999173692699 242549879611533131497908524170290199136162010153658336901...
272 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:15:21.96 ID:2qKIN/Bt.net] お題: 1~n行の文字列が入力されます。'*'の矩形で囲って出力してください 例:(出力は左詰め半角スペースでパディングしてるつもり) in < ab in < abc in < a out > ****** * ab * * abc * * a * ***** 以下のオプションは取捨選択自由です a. タブ文字への対応(矩形が崩れなければおk) b. 右詰め、中央詰めの選択可能な実装 c. 日本語への対応
273 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:21:33.67 ID:XS9KJKDz.net] aは4タブか8タブかで宗教戦争に入るからなぁ。 bは割とできる方。 cはC++だとめちゃくちゃ大変。ウニコードコンテナ入らないと難しい。 あと、等幅フォントじゃないと難しい。
274 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:37:44.81 ID:2qKIN/Bt.net] >>269 ですね。追加で d. a.で半角スペースに変換する場合、半角スペース数の選択可能な実装
275 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:46:59.74 ID:2qKIN/Bt.net] c. は確かに等幅フォントじゃないとアレですね、環境依存ですね 等幅フォント前提でおなしゃす
276 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 02:58:33.88 ID:XS9KJKDz.net] >>268 ideone.com/is1MNF C++。" ab"は判断が分かれるので何もしなかった。 大体あってると思うが、適当に手を抜いた。かしこ。
277 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 21:17:40.87 ID:0oN+Zp9M.net] >>268 rust 1.5 ideone.com/eVtL4a
278 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 23:31:52.04 ID:XgHkIVxU.net] >>268 J echo '*',~'*',('* ' , ,&' *')
279 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 23:42:05.32 ID:XgHkIVxU.net] >>274 なぜか途中できれちゃったのでもう一回 >>268 J echo '*',~'*',('* ' , ,&' *')"1,;._2 toJ stdin ''
280 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 00:43:09.92 ID:So/btKLV.net] お題:ウラムの螺旋(素数螺旋)にて 上下左右が素数で囲まれている数(偶数なので素数でない) の若い方から順番で1000番目の数を求めなさい。 (参考) 1番目 6 2番目 12 3番目 72
281 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 00:57:27.35 ID:iy9dE6+2.net] ttp://sim.okawa-denshi.jp/teikokeisan.htm こちらのサイトの
282 名前:一番上の抵抗分圧の抵抗の組み合わせを抽出するプログラム をC言語で作りたいのですが、いまいちどういう風に作ったらいいか わかりません。 このプログラムは与えられたV1とV2からV2に近くなるR1とR2の組み合わせ抽出するというプログラムです。 抵抗分圧の公式はV2=V1*R2/(R1+R2)です。 E24系列というのはRの基本値で、1, 1.2, 1.3・・という決まった値でそれの10倍値や100倍値も存在し、 MAXだと100万倍ぐらいまであります。(1MΩとか10MΩ) R1とR2の全組み合わから一度Voutを計算して、V2と一番近くなる組み合わせをだそう かと思ったのですが、Rの組み合わせが膨大で現実的ではありません。 なにかいい方法はないでしょうか? [] [ここ壊れてます]
283 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 00:58:35.84 ID:864z2gB2.net] いつから1が素数になったんだ?
284 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:02:29.55 ID:864z2gB2.net] >>277 普通に全組合せでも一瞬で終わるとおもう R2を決めれば、理想のR1が求まって、それ以上の最小の抵抗と、それ以下の最大の抵抗をR1とすればかなり絞れる
285 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:12:29.69 ID:So/btKLV.net] >>278 じゃあ 1番が12で
286 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:16:09.22 ID:864z2gB2.net] 1000個以上存在することはわかってるの?
287 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:17:14.81 ID:LSwKLHy0.net] >>277 例えばE24の場合、抵抗値の全パターンは168。 @ループ条件として、168個の抵抗値を順にR1とする。 A目標の比率になる理想的な抵抗値を算出する。 Bそれに近い前後の抵抗値を見つけ、前後で目標に近い値を候補として残す。 C前回のループで見つけた候補と比較し、より目標値に近い値を候補として残す。 ループを抜けると、「チン」と音がして、料理ができあがる。 こんな感じかな?
288 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:20:02.16 ID:So/btKLV.net] >>281 わかってる。2分で計算できた。
289 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 09:42:10.08 ID:XJFbEDkM.net] >>276 Java ideone.com/k4Ixhh あってるかどうかはしらんw
290 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 18:37:16.70 ID:864z2gB2.net] >>284 そのコードって答えを知ってるから書けるんであって、 それなら以下でも本質的には同じと思う int main(){return 13833270;}
291 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 19:08:13.72 ID:XJFbEDkM.net] >>285 が何を言いたいのかがわからん
292 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 20:08:35.41 ID:JaO9gEs7.net] 上限を定めない素数生成をどうするかもポイントだろうに 16777216が上限と決めうちなのが気にくわないんだろ
293 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 01:08:51.74 ID:POOOZq0F.net] >>285 ideone.com/9Gd7Fg これで満足か?
294 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 09:54:57.98 ID:ZDlTAjvh.net] 君が満足ならいいんじゃない? >>284 でも
295 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 10:01:36.42 ID:ZDlTAjvh.net] >>285 で満足ならそれでも コンパイラの最適化で>>284 と>>285 と>>288 が同じコードになる日も来るかもしれない ちなみに、>>276 のような数が無限個ある証明は現代では誰も出来ない (出来たら歴史に名が残るレベル) 有限個である証明はもしかしたら出来るかも
296 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 10:11:43.67 ID:ZDlTAjvh.net] おれは出題者でも審査員でもないからな おれの機嫌を伺う必要は無いよ
297 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 16:49:42.83 ID:264QGEmB.net] ケチつけといて、修正したら機嫌をうかがう必要はないとかキチガイかよw
298 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:24:43.51 ID:qXOiofIi.net] ただの感想だ >>284 で満足なら良いんじゃない? 出題者の意見は?
299 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:39:56.92 ID:kmeCYvLc.net] プログラマってアスペなのか何様?って奴多いよな
300 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:53:14.83 ID:vCzR1C5c.net] >>277 総当たりでやってもE192の場合でもそんなにかからず終わるよ。
301 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 23:46:05.37 ID:2OCOgJAF.net] >>293 感想より自分のコードは?
302 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 06:47:36.82 ID:9RGbGjss.net] ideone.com/HsphGH 特に関係ないのだけど、追記型素数検出器作った。 まあ、何かに使うわけじゃないけど、一応作ったのでアップ。 暇だったんだよ。
303 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 09:45:56.17 ID:a60MvDTP.net] >>293 >>285
304 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 15:24:29.41 ID:lhTTumXW.net] 276ですが、 総当りでやってみたのですが、プログラムが悪いせいか 結構時間がかかってしまいます。 抵抗の系列の基数をdoble型の配列にしたのがよくない上に dobleだと誤差がでて、丸めの処理を入れないといけなくなって さらに時間がかかってしまう状況です。
305 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 15:47:41.33 ID:qvsZxuE5.net] >>299 E192の場合で書いてみた。これで試してみて ideone.com/nwNvID
306 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 16:09:41.53 ID:5rhebb
] [ここ壊れてます]
307 名前:dV.net mailto: 総当たり168*168=28224パターンに時間がかかる298のコードが気になる [] [ここ壊れてます]
308 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 17:35:41.78 ID:lhTTumXW.net] >>301 すみません。補足します。 実はCだとそんなに遅くなかったのですが、 今はjavaでも書いてまして。 doubleの誤差を丸めるためにループ分ビッグデシマルで 四捨五入したら時間かかるようになってしまったんです。 >>300 ありがとうございます。 参考にします。
309 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 17:38:57.83 ID:qvsZxuE5.net] Javaで書いても、根幹部分は変わらないでしょ。 そんなに丸目誤差を気にするところないと思うけどな。
310 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:12:14.88 ID:qvsZxuE5.net] >>302 >>277 で紹介したサイトなんだけど、 例えばE24で、1000V,と0.01Vを指定したときの答えがおかしくないですか? こういう回答をする内部ロジックがとても気になってきました。
311 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:26:12.91 ID:lhTTumXW.net] >>303 たとえばdoubleでとったR1の配列を表示しようとしただけでも 110としてるはずなのに110.0000000001みたいに表示してしまうし、 原理的に3Ωと2.7Ωの組み合わせがOKだったら、30kと2.7kΩの 組み合わせでも誤差は同じはずなのに計算過程で小数点以下 が微妙に異なってしまい結果にでてこなくなったりしてしまいます。
312 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:27:23.21 ID:lhTTumXW.net] 原理的に3Ωと2.7Ωの組み合わせがOKだったら、30kと2.7kΩの → 原理的に3Ωと2.7Ωの組み合わせがOKだったら、3KΩと2.7kΩの に訂正します。
313 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:43:02.29 ID:SFsRUuPo.net] decimal使うか丸め処理入れるか
314 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 21:14:00.89 ID:5rhebbdV.net] 誤差が嫌なら整数(を使った分数)で計算すれば?
315 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 23:02:11.31 ID:lhTTumXW.net] 276ですが、 極端に遅くなるのはバグでした。 すみません。 比較用の全リスト作成をループ毎で実行していたせいでした。 ということでデシマル使ってもそこまで遅くならないみたいです。
316 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 01:00:32.10 ID:WeGPRoDh.net] 1000 13833270 2000 36950448 3000 62765388 4000 92605770 5000 122764008 これであってる?
317 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 10:47:18.56 ID:ClOdxYy7.net] >>310 出題者ですが1000はあってる。1000以上は計算していないが 1 12 2 72 3 1152 4 1452 5 1950 6 3672 ・・・ を計算する数列なら恐らくあっている。 1000までの間隔の最小は12で最大は96360で不規則。
318 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 21:26:25.48 ID:PJcKfdaW.net] 出題者じゃありませんが、合ってます こんな感じ 1000 13833270 2000 36950448 3000 62765388 4000 92605770 5000 122764008 10000 299498628 20000 717493758 50000 2306937132 100000 5427079830 200000 12675688842 500000 38766060522 1000000 89373316260 2000000 204583856130 5000000 606668296320 10000000 1374073119822 20000000 3099496478412
319 名前:デフォルトの名無しさん [2016/02/02(火) 05:04:22.87 ID:+n78UQ/o.net] 定期age
320 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:age [2016/02/02(火) 15:21:32.92 ID:CI2b+eqR.net] お題:ファイルやフォルダの名前、ファイルの中身に含まれて いる複数のタグ({{AppName}}や{{Authors}}など)を一括置換した結果の フォルダを作成するプログラム。 文字コードは少なくともUTF-8をサポートせよ。
321 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 16:02:19.62 ID:5quLb8ti.net] >>314 環境依存なので嫌どす。 頑張ってください。
322 名前:デフォルトの名無しさん [2016/02/23(火) 11:02:15.31 ID:ltvQNGjy.net] >>2 過去スレ 7 peace.2ch.net/test/read.cgi/tech/1429195275/ 前スレを、テンプレに追加して
323 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 07:21:11.33 ID:052J+z1F.net] 止まっちゃったなぁ。 最近はギトハブに上げてるわ。趣味プロを・・・。
324 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 09:12:07.86 ID:i+krYFXY.net] 2ch過疎ってるねぇ
325 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 12:30:35.23 ID:Q5mbPZul.net] お題:ウラムの螺旋(続き) ウラムの螺旋にて、素数が斜めに隣接(2と3,2と11以外は斜めしかない。) したものを以下の図のように線分で結びます。 ttp://www.dotup.org/uploda/www.dotup.org758222.jpg なぜか、1個の非素数を囲んでる最小の ◇ 図形以外で (ちょうど前問の上下左右が素数に囲まれた位置になります。) 複数の非素数が囲まれている閉じた図形は存在しないようです。 例えば、仮に203が素数ならば11個の非素数を囲めたことになりますし、 また例えば、仮に141が素数ならば2個の非素数を囲めたことになります。 (正確には"日"の文字が45度傾いたような図になりますが外枠だけを考えて2個囲めたと します。)しかし、203も141も素数でないので、成立しません。 以下は約30000までの図。(中心の赤が1の位置) ttp://www.dotup.org/uploda/www.dotup.org758224.jpg さて、複数の非素数が囲まれている閉じた図形は本当に存在しないのでしょうか? それとも、数を多くすればどこかにあるのでしょうか? プログラムで検証してみてください。 例えばいくつまで検証したが無かったとか、いくつで初めて出てきたとか (その場合は囲む素数を列挙してください。)
326 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 13:38:15.98 ID:052J+z1F.net] 今手持ちのライブラリで実現できそうだから32bitmaxまでの設計を試案してみた。 しかし、今日は寝ないといけないのでまた明日やるかも。確約はしないけど。 タートルグラフィック作った
327 名前:ですよタートルグラフィック。 それと追記型素数検出器でできるかもなーと、青写真を描いただけだけど。 ただ、メモリが足りるかわからん。 [] [ここ壊れてます]
328 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 16:26:13.84 ID:052J+z1F.net] light.dotup.org/uploda/light.dotup.org302431.png 眠れなかったので、コード書いてた。 デバッグがてらに16ビット求めてみた。 厳密な数字は計算してないのでどこで何番が出現したかは知らない。ただ絵を生成している。 メモリ18GBも使うアプリ作ったの初めてだよ。ホラブルホラブル。 一応、仕込んで寝るけど、落ちないようにお祈りしておこうかな。
329 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 23:11:37.20 ID:052J+z1F.net] 終わらないよー。現在7時間で7000万カウント。 どんどんペース落ちてる。素数列挙重い・・・。Orz
330 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 02:54:24.43 ID:p8lHTaCd.net] いったん止めます。
331 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 03:24:10.39 ID:p8lHTaCd.net] レッツリトライ。アルゴリズムを見直した。
332 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 04:56:48.77 ID:p8lHTaCd.net] さらに見直し。速度低減をなくした。 結果的に10倍ぐらい早くなった。かな?
333 名前:デフォルトの名無しさん [2016/02/29(月) 05:17:02.90 ID:I3HQeNlK.net] 素数列挙ではダメで囲いサーチだろ。
334 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 05:36:03.42 ID:p8lHTaCd.net] 画像生成するので目で確かめようと思ってます。 ただ、それが何番かはわかりません・・・。Orz
335 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 06:39:18.63 ID:wRRlOVxG.net] コマネチ!
336 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 18:22:11.19 ID:p8lHTaCd.net] うぅ。13時間回して1.9億カウント10日かかりますわ。 ソース公開するからやめていい?
337 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 18:24:23.39 ID:p8lHTaCd.net] 並列化してもうまくいって二日か・・・。
338 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 19:36:07.25 ID:p8lHTaCd.net] 26bitで再計算。こっちは2時間半で終わる予定。もーヤダー。 最新PCでも10日とか、俺ってタコ。
339 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 21:54:34.42 ID:gY4tu7UX.net] 試しに28bitで計算させてみたけど1つも見つからなかったよ。 プログラムのバグじゃ無きゃ良いけど。
340 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 21:59:36.65 ID:gY4tu7UX.net] コードはこんな感じ 35行目のNに対し、2N bits空間の素数について調べる。 https://ideone.com/C2FulF
341 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 22:24:57.60 ID:p8lHTaCd.net] 生成物:www.dotup.org/uploda/www.dotup.org760416.png そーす:www.dotup.org/uploda/www.dotup.org760433.zip やーっと終わった。26ビット計算。 縁に黒いのあるのは境界線系のバグの可能性が高いので精査よろしく。 燃え尽きたぜ。 >>332-333 先越された・・・。Orz
342 名前:デフォルトの名無しさん mailto:sage [2016/03/01(火) 04:48:06.87 ID:/oGISoD7.net] >>334 中心に緑の点を打ってくれんかのう‥
343 名前:デフォルトの名無しさん mailto:sage [2016/03/01(火) 07:17:18.80 ID:iONc0Loh.net] 無いってことは規則的に循環でもしてるのか? お前らリーマン予想解いたんか?
344 名前:332 mailto:sage [2016/03/01(火) 09:07:57.31 ID:fxkt5PE4.net] >>334 なんだか無駄な処理が多いように見える 素数性判定を1個1個するよりエラトステネスの篩を使うとかしようぜ。 # 32bitで見つからんかった
345 名前:332 mailto:sage [2016/03/01(火) 22:38:46.95 ID:fxkt5PE4.net] 36bitで見つからんかった。 もう辞めるわ。
346 名前:デフォルトの名無しさん mailto:sage [2016/03/02(水) 06:33:06.17 ID:2mV+3fZd.net] >>338 お疲れ様です。 出題者ですが、自分も無いんじゃないかなで 答えはわかりませんm(_ _)m
347 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 15:01:26.06 ID:6dBXddTu.net] お題:以下の式の□に+または-を入れて成立する式をすべて求める。 1□2□3□4□5□6□7□8□9=1
348 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 18:29:47.32 ID:t9z0z44u.net] >>340 Bash ideone.com/qzonZ1
349 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 19:58:32.83 ID:SkSUFtdJ.net] お題:リストを重複の多い順に並び替える 重複個数が同じ場合はリストに登場するのが早い順とする "Hello world" -> "lllooHe wrd" [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6] -> [3,3,3,3,5,5,5,9,9,9,1,1,4,4,2,2,6,6,8,8,7]
350 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 20:40:38.92 ID:rLQVucBG.net] >>340 Rust 今日来る1.7を待ちながら https://play.rust-lang.org/?gist=121b9b2dc7ff0dbdacdb&version=stable
351 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 21:43:53.21 ID:GzhlChId.net] >>342 C++ ideone.com/VFxH37
352 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 22:03:26.12 ID:LBKN89dL.net] >>342 Python3 https://ideone.com/Icn8Vj
353 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 23:17:39.49 ID:fGqRJK5H.net] >>342 haskell import Data.List (sortBy) main = do putStrLn $ s "Hello World" print $ s [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6] s xs=concat.sortBy(\x y -> compare (length y) (length x))$gs xs gs :: Eq a => [a] -> [[a]] gs[]=[] gs (x:xs)=(x:a) : gs b where (a,b)=(filter(== x)xs,filter(/= x)xs)
354 名前:デフォルトの名無しさん [2016/03/04(金) 15:28:38.54 ID:7Zl+7QrX.net] お題: 配列Bを配列Aの規則順に従って整列。Aに含まれ無い物は最後尾にアルファベット順に整列。 例: 配列A ary_a=["d","b","e","f","a","c"] 配列B ary_b=["a","b","c","h","m"] 結果:["b","a","c","h","m"] 言語: rubyかpython
355 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 15:49:17.83 ID:DX3xeB7o.net] >>347 楽すぎない?
356 名前:346 [2016/03/04(金) 16:33:45.39 ID:7Zl+7QrX.net] このままだったら適当でもそんなに時間がかからないから自分でもできるんですが、 配列の数が多い場合だとどんなやり方があるのと思いまして。 じゃあちょっと増やしてこのぐらいで。 答えはわかりません。 お題: 配列Bを配列Aの規則順に従って整列。Aに含まれ無い物は最後尾にアルファベット順に整列。 例: 長いのでこちら ideone.com/xnetIb 結果:? 言語: rubyかpython
357 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 18:38:25.99 ID:pEnisYEU.net] お前の業務?
358 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 18:46:32.50 ID:9GjrgxFP.net] >>349 ideone.com/LlnUM2
359 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 19:06:23.29 ID:CXefnPD8.net] >>342 J f =: 3 : 0 a =. (\: +/"1 =/~ y) { y b =. ~. a (/:~ b i. a) { b ) f 'Hello world' lllooHe wrd f 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7
360 名前:デフォルトの名無しさん mailto:sage [2016/03/06(日) 00:31:45.05 ID:WEeJcjtE.net] >>340 haskell main = mapM(putStrLn) [p x|x<- sequence $ [1]:[[x,-x]|x<-[2..9]],1==sum x] p=concat.map(\x ->if x>1 then "+"++show x else show x)
361 名前:デフォルトの名無しさん mailto:sage [2016/03/06(日) 15:24:05.92 ID:/EFFTfcH.net] >>342 C >>344 を参考に ideone.com/7vKXrk
362 名前:デフォルトの名無しさん mailto:sage [2016/03/07(月) 10:29:38.19 ID:+tQLURZK.net] >>351 ありがとうございます。自分で作ったのに比べると格段にすっきりしてます。 each_with_indexもto_hもgroup_byも初めて知りました。勉強になります。
363 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 08:14:24.51 ID:fvdAjVDF.net] あら、新規来ないと思ったら移動してたか。 >>335 ある程度起動してから気づいたから遅かった。 >>337 別の目的で作ったコードなので、これ用というわけじゃなかったのです。 追記型がほしかったので作りました。
364 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 08:17:33.24 ID:fvdAjVDF.net] >>340 ideone.com/H6yZDw C++。作ってあったコードをいじっただけなので変なコードになってます。 多分あってると思います。
365 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 08:49:31.19 ID:fvdAjVDF.net] >>347 ,348 ideone.com/VaNTzl C++。デバッグはほとんどしてない。手を抜いたから遅いよ。
366 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 09:16:36.16 ID:fvdAjVDF.net] >>342 ideone.com/fpJYFp C++。最近、あんまり効率考慮したコードが書けてないな〜。
367 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:07:01.52 ID:4PxK/ADg.net] 変数A1, A2, A3, A4, A5 に整数が入っているとして、 全部同じか、そうでないかを判定したいのですが、 もっとも効率よい方法教えて下さい。 if(A1==A2&&A2==A3&&A3==A4&&A4==A5){ ... }else{ ... } みたいなのしか思いつきません。
368 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:55:40.35 ID:fvdAjVDF.net] それ以外だとSIMD使うとかになりそうな・・・。
369 名前:デフォルトの名無しさん [2016/03/14(月) 11:38:06.21 ID:7hslT/Gl.net] お題:平和な動物園を作ろう www.hisenkei.net/~tohru/LaTeX/Poster/whatisQAPa4.pdf
370 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 12:34:29.93 ID:DTR/fUtN.net] 宿題じゃね?
371 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 13:20:59.04 ID:W5wCaIkX.net] NP困難問題とか総当りするぞ
372 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 19:24:58.74 ID:MNFRtT1Y.net] >>362 相性度の大小が逆じゃない?相性が悪いほど相性度の数値が大きくならないと‥
373 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 22:37:30.95 ID:DTR/fUtN.net] よーしぱぱ、ねくすとぱーみゅてーしょんつかっちゃうぞー。
374 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 23:24:37.10 ID:DTR/fUtN.net] >>362 ideone.com/YXrksL C++。かき捨て。デバッグ一切してないのでバグってたら御免。 だって、スカイレークのリリースで11秒かかるんだもん。
375 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 00:17:53.91 ID:a7Xs+q4N.net] 不満度2160であってるんかね
376 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 00:31:47.47 ID:a7Xs+q4N.net] >>367 Calc内のstd::vector<DType> Angryとstd::vector<DType> Lengthが毎回作られてるから遅いんじゃね?
377 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 00:40:17.12 ID:6w3U5gAP.net] std::arrayを使ってはどうか
378 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:13:48.78 ID:PW1OJjjf.net] >>368 知らんよ。適当に書き捨てただけだし。 >>370 リリースで消えてる事をただ願うだけ。2重ループ何回も起動してるから遅いもんだと・・・。 >>370 カスタマイズはご自分で。 特にこだわりはないから、MITライセンスでどうぞ。
379 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:14:38.03 ID:mfi8kYDa.net] >>368 俺も(2160,[6,9,3,8,7,4,1,5,10,2])になった。
380 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:19:02.65 ID:PW1OJjjf.net] あ、バグってら。たぶん。 2重ループの中ループの初期値間違ってるかも。 今、ひらめいた。 多分不満度結果の半分くらいだと思う。 まぁいいや。
381 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:23:09.89 ID:a7Xs+q4N.net] ideone.com/Jb9lqV 何も考えずにstd::vector<DType> Angryとstd::vector<DType> Lengthを外に出しただけで1.74s
382 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:24:01.73 ID:PW1OJjjf.net] ideone.com/aZUgRP こうかもしれん。 静的変数にしたら超絶早くなった。
383 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:25:15.50 ID:PW1OJjjf.net] あいたたた・・・・。 まぁ、宿題を真面目にやる気はないんで、適当にごまかしてください。
384 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 05:12:24.47 ID:/v9qNF/y.net] arrayにしたらかえって遅くなった ideone.com/mHquNO
385 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 07:06:29.01 ID:PW1OJjjf.net] >>377 >>375 は微妙にコード最適化してるからねぇ。 リザルト変わってるし。 一応それとしては早くなってるんじゃないかと。
386 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 11:48:35.59 ID:j8iobkYx.net] >>362 Squeak/Pharo Smalltalk | N animals cages ans | N := 10. animals := #( (0 2 6 4 6 2 4 4 2 4) (2 0 4 2 2 2 2 2 2 6) (6 4 0 2 6 8 8 6 4 8) (4 2 2 0 4 2 6 6 2 6) (6 2 6 4 0 2 4 4 2 4) (2 2 8 2 2 0 6 6 6 8) (4 2 8 6 4 6 0 6 6 4) (4 2 8 6 4 6 6 0 6 6) (2 2 4 2 2 6 6 6 0 6) (4 6 8 6 4 8 4 6 6 0)). cages := #( (0 3 4 5 8 10 9 6 2 4) (3 0 4 4 7 9 9 8 5 9) (4 4 0 2 4 7 5 4 4 8) (5 4 2 0 3 5 5 5 5 9) (8 7 4 3 0 3 5 6 8 12) (10 9 7 5 3 0 4 7 10 14) (9 9 5 5 5 4 0 3 8 11) (6 8 4 5 6 7 3 0 5 8) (2 5 4 5 8 10 8 5 0 4) (4 9 8 9 12 14 11 8 4 0)). ans := Set new -> Float infinity. (1 to: N) permutationsDo: [:perm | | sum | sum := 0. 1 to: N do: [:i | 1 to: N do: [:j | sum := ((animals at: (perm at: i)) at: (perm at: j)) * ((cages at: i) at: j) + sum]]. ans value = sum ifTrue: [ans key add: perm copy]. ans value > sum ifTrue: [ans := (Set with: perm copy) -> sum]]. ^ans "=> a Set(#(6 9 3 8 7 4 5 1 10 2) #(6 9 3 8 7 4 1 5 10 2))->2160 "
387 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 13:31:34.17 ID:NZyRjPzO.net] >>377 VSでプロファイラ取ってみたらCalcとstd::next_permutationの2つで全体の半分位 時間食ってんな 特に単純ループのCalcが全体の1/3ほど食ってる std::next_permutationは仕方ないとしてCalcはどこか改善できんかな 配列の配列の要素取ってるから出来るだけ連続したキャッシュに乗る単なる配列の方がいいのかも 連続してないクラスの配列の配列取るもんだから、こういう単純なループがインライン展開されてないのも 原因の一つかと
388 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 15:44:17.23 ID:NZyRjPzO.net] ×インライン展開 ○ループのアンロール
389 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 17:59:47.71 ID:PW1OJjjf.net] ねくすとぱーみゅてーしょん切って動的計画法に切り替えるとかがベターかもしれん。 アッチはメモリめちゃくちゃ食うけど、早い。 しかし、俺は動的計画法を理解してないのだ・・・。Orz
390 名前:デフォルトの名無しさん [2016/03/16(水) 18:03:36.31 ID:VFJu78ei.net] >>362 なんか計算が微妙に合わないなと思ったら ニシキヘビとカバの相性度が対象になってないわ あー時間を無駄にした
391 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 18:37:37.89 ID:PW1OJjjf.net] >>362 の資料いくつか間違いがあるっぽい。 不満度も重複に計算してるし、なんか仕様表として欠陥がある。
392 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 08:30:05.20 ID:e/Ot8AcY.net] お題:ダーツのダブルアウトの組み合わせ 問題の前にダーツのルール(501ゲーム)を簡単に説明。 1〜20のマス目があって、それぞれにダブル(最外周の細い領域)と トリプル(中間の細い領域)があり、ダブル、トリプルは得点が2倍、3倍になります。 中心の2重円は最内の円がダブルブル(50点)、その外側の円がブル(25点)。 持ち点501点から1ターン(1ラウンド)3投ずつプレイして当たった得点を減算していき、 最後残り点数がちょうど0になれば勝ち。 ただし、最後はダブルに当ててフィニッシュする必要があります(ダブルアウトという)。 例:最後5点残っていた場合は、5点は直接狙えず、1点を当ててから2点のダブル(計5点)、 あるいは3点を当てて1点のダブル(計5点)のように最後がダブルになるようにフィニッシュします。 参
393 名前:考動画 https://www.youtube.com/watch?v=GfC17dQntFA この動画の下のスコアで、残り点数が少なくなってくると左側にT20 T18 D16のような表示が 出てきますが、これは次の3投で上がれる組み合わせの一例を示しています。 この動画だと1:45あたりで残り146点のフィニッシュの組み合わせ例として出ていますね。 (数字の頭のDはダブル Tはトリプル 20x3 + 18x3 + 16x2 = 146) 問題: 1.残り点数を与えられた場合に、1ラウンド3投でフィニッシュできる全ての 組み合わせを求めてください。 例:残り4の場合は[D2][2 D1][D1 D1][1 1 D1]の4通り 例として残り10の場合を求めてみてください。 2.1ラウンド3投以内のフィニッシュで最も組み合わせの多い残り点数を求めてください。 解答例:http://ideone.com/LWu1WM (C言語 合ってるかちょっと自信ない) [] [ここ壊れてます]
394 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 09:03:48.16 ID:e/Ot8AcY.net] >>385 外した場合を考えてませんでした。 残り10をD5でフィニッシュする場合、1投目でフィニッシュと、1投目はずして(0点) 2投目でフィニッシュ、同じく1,2投目はずして3投目でフィニッシュがありますが、 これは全て[D5]に含むこととします。(外した分は無視) 外した分も考慮して組み合わせを考えてみても面白いかもしれません。 (上の例だと[D5][0 D5][0 0 D5]に分かれることになります)
395 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 03:54:21.46 ID:SSV1rQef.net] お題:配列やリストの累積和を求める 90 10 54 3 6 22 77 78 75 16 -> 90 100 154 157 163 185 262 340 415 431
396 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 04:48:29.17 ID:dWvJC0mF.net] >>387 ideone.com/mik4Ne C++。適当に書いた。結構短くかけたと思う。
397 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 16:03:47.29 ID:NkT0dmTC.net] >>387 haskell map sum.tile.inits
398 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 19:13:26.12 ID:l5rfZdo+.net] >>387 C++ ideone.com/xtXdpi
399 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 20:01:16.70 ID:1UFsClL1.net] >>387 F# Seq.scan (+) 0
400 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 20:59:24.58 ID:NkT0dmTC.net] scanいいなーと思って探してみたらhaskellにもあった しかも標準ライブラリだった。 scanl1(+)
401 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 21:07:05.34 ID:NkT0dmTC.net] 標準ライブラリじゃなくて、Preludeでした、すみません。
402 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 21:24:19.74 ID:jwiGmJgq.net] >>387 Python3 itertools.accumulate(L) もはや標準ライブラリの紹介、ジェネレーターを返すので煮るなり焼くなりして使う
403 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 13:07:49.70 ID:5hctbNOo.net] >>387 C ideone.com/QBhptw
404 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 14:14:51.89 ID:BKOgASSO.net] >>387 C++ ideone.com/98mJmC 長くなり過ぎワロタ
405 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 23:54:10.03 ID:aGSq1f0l.net] >>387 PowerShell もっと短くできなかったものかなあ function Accumulate() { $t = @(); $args | % {$t += $t[-1] + $_}; $t }
406 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 00:50:33.88 ID:/XUmDgkC.net] >>342 PowerShell function SortGroupByCount($o) { $o.GetEnumerator() | group | sort Count -d | select Group | %{ Write-Host -n "$($_.Group) " } } > SortGroupByCount "Hello world" l l l o o H e w r d > SortGroupByCount 3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6 3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7
407 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 00:57:47.15 ID:/XUmDgkC.net] >>398 よく見たらselect Groupいらんかった function SortGroupByCount($o) { $o.GetEnumerator() | group | sort Count -d | %{ Write-Host -n "$($_.Group) " } }
408 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 06:52:33.07 ID:lsHN8L8S.net] @Mathematica In[1] := x = {90, 10, 54, 3, 6, 22, 77, 78, 75, 16}; In[2] := x// Accumulate Out[2] = {90, 100, 154, 157, 163, 185, 262, 340, 415, 431}
409 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 01:17:51.47 ID:7ndxGIoM.net] >>387 Io f := method(a, s := 0 a map(v, s = s + v) )
410 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 00:26:57.54 ID:K457tFb7.net] >>387 Ruby a=%w(90 10 54 3 6 22 77 78 75 16).map(&:to_i) a.inject(0){|acc,e|acc+=e;p acc}
411 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 13:28:14.63 ID:ObwLfSdF.net] >>387 Squeak/Pharo Smalltalk | fn | fn := [:arr | arr inject: #() into: [:a :x | a, {x + (a at: a size ifAbsent: 0)}]]. fn value: #(90 10 54 3 6 22 77 78 75 16) "=> #(90 100 154 157 163 185 262 340 415 431) "
412 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 13:51:42.42 ID:ObwLfSdF.net] >>342 Squeak/Pharo Smalltalk | fn | fn := [:seq | | rule | rule := [:a :b | a key > b key or: [ a key = b key and: [(seq indexOf: a value) < (seq indexOf: b value)]]]. seq class streamContents: [:ss | (seq asBag sortedCounts sort: rule) do: [:kv | kv key timesRepeat: [ss nextPut: kv value]]] ]. fn value: 'Hello world'. "=> 'lllooHe wrd' " fn value: #(3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6). "=> #(3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7) "
413 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 23:25:45.53 ID:UAhYeBNf.net] sage>>402 >a.inject(0){|acc,e|acc+=e;p acc} これって a.inject(0){|acc,e|p acc+e} でいいんじゃないの
414 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 02:01:04.35 ID:00BHzwP5.net] >>342 Rubyで。 a=[3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6] a=a.inject({}){|acc,e| acc[e]||=0 acc[e]+=1 acc } p a .to_a .sort_by .with_index{|s,i| [s[1], i] } .reverse .map{|e|e[0].to_s*e[1]} .join
415 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 05:39:51.79 ID:ij4V+9+M.net] >>>342 Python3 def f(L): return sorted(L, key=lambda x: (-L.count(x), L.index(x))) print("".join(f("Hello world")))
416 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 08:05:32.53 ID:ZA7ECi0z.net] ideone.com/AjZqQq どうでもいいんだけど、追記型素数検出器を書き直した。 爆速になった。イデオンで動かす感じで27ビット2.4秒。 要するにエラトステネスの篩なんだけど、思ったより早かったなぁ。 肝心の追記はまだ試してない・・・。Orz
417 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 09:35:35.02 ID:ZA7ECi0z.net] www.dotup.org/uploda/www.dotup.org798848.zip ウラム螺旋に移植した。一応小さい解像度では試してるがデカいのは知らん。 素数列挙は超早くなったが、画像生成がまだ重ひ。 暇な人むけ。
418 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 00:36:24.19 ID:oZji/N9B.net] >>406 実行結果が "333399955588662244117" になってしまいます
419 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 21:56:44.86 ID:w9r+G2YN.net] お題:nで始まる最小の素数を求める n=4 -> 41 n=777 -> 77711 n=403 -> 40343
420 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 22:48:25.37 ID:mfUNWB3k.net] >>411 Java ideone.com/vV7Vs9
421 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 21:02:49.40 ID:V1X87Hw6.net] >>411 C ideone.com/OtX2Wc
422 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 21:05:24.30 ID:ZlseDTbh.net] フリーセルソルバー 問題によっては1秒内で終るものもあれば3分かかったり 評価関数色々用意したがすべて1秒以内にできるようにしたいが...
423 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 01:55:40.63 ID:HGCmMFVS.net] >>411 ideone.com/eqFkbn C++。コードの半分は以前のものを流用した。 なんかランタイムエラーになってるけど、よくわからん。 答えはあってると思う。
424 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 02:00:45.11 ID:HGCmMFVS.net] >>414 フリーセル自作しないといけないのでめんどくさい。 フリーセルってここ数年やってないなー。
425 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 13:12:03.72 ID:opSE2XAx.net] >>411 Rubyで。 require 'prime' def func1 n nStr = n.to_s nLen = nStr.length Prime::instance.each{|e| return e if e.to_s[0, nLen] == nStr } end p func1 4 p func1 777 p func1 403
426 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 20:22:10.75 ID:JfY7ulrA.net] >>415 20 32 51 あたりの結果がおかしいんじゃないかな? 20 -> 2003になるところが2011になってる。
427 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 20:59:33.30 ID:OyooKXkj.net] >>411 Io isPrime := method(n, if(n < 2, return(false)) if(n < 4, return(true)) if(n % 2 == 0, return(true)) for(i, 3, n sqrt, 2, if(n % i == 0,return(false))) true ) f := method(n, a := 1 loop( for(i, n * a + 1, n * a + a - 1, 2, if(isPrime(i), return(i)) ) a = a * 10 ) ) Io> list(1,777,403)map(v,f(v)) ==> list(11, 77711, 40343)
428 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 00:47:11.89 ID:8UqsZWln.net] >>418 あーそれバグですな。失礼。 ゼロ埋めは試してないのでそういう結果になってます。 思いつきもしませんでした。ごめんなさい。 どう書けばいいかちょっと妙案が思いつかないので保留。
429 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 23:01:46.01 ID:UGeAL8lU.net] お題:各桁の数字が奇数、偶数、奇数、偶数...のように 最上位の桁から奇数と偶数が交互並ぶ自然数を考える。 小さい方からn番目のこのような数を求める n=1 -> 1 n=10 -> 18 n=1000 -> ?
430 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:12:29.27 ID:0xtkUQ3n.net] >>421 Java ideone.com/V6gNa4
431 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 03:27:38.19 ID:GVWrhGxP.net] >>411 >>418 ideone.com/oAQHTp C++。半ば暇なのとか色々まざってぶち切れ気味に書き直した結果。 なおったかな? 手を抜いて新規構造考えたまではよかったが結局古い道を選ばざるを得なかった。 ゼロパティングなんてふつう考えないがこういうケースもあるんだな。勉強になった。 以上。
432 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 04:31:37.37 ID:GVWrhGxP.net] >>421 ideone.com/W3pgTU C++。なんかつじつまが合わないので>>422 をの結果を参考にさせてもらった。 どうにも盛大に勘違いしてたようだ。 しかし、先頭が必ず奇数であるとは書いてないので混乱した。
433 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 11:04:10.71 ID:yfpRB3fX.net] >>421 @Mathematica ideone.com/JtmqOO
434 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 22:30:50.62 ID:SKXiL2tD.net] >>421 F# ideone.com/AKL4fU お題スレ参加は半年ぶりくらい。。。 さらにF#の勉強開始して1ヶ月程度なので、ちょっとアレな感じかもしれませんが・・・
435 名前:425 mailto:sage [2016/04/10(日) 23:49:40.35 ID:SKXiL2tD.net] >>421 F# ideone.com/2pgKqN たびたびスマン・・・ちょっとブラッシュアップしました 見た目がちょっとキレイになった
436 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 19:11:43.16 ID:U9aEtrvs.net] >>411 Squeak/Pharo Smalltalk | primeStartsWith | primeStartsWith := [:n | | exp min max ans | exp := 0. [ min := n * (10 raisedTo: exp). max := n+1 * (10 raisedTo: exp). ans := (Integer primesUpTo: max) detect: [:prime | prime >= min] ifNone: nil. exp := exp + 1. ans notNil. ] whileFalse. ans ]. primeStartsWith value: 4. "=> 41 " primeStartsWith value: 777. "=> 77711 " primeStartsWith value: 403. "=> 40343 "
437 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 19:31:44.71 ID:U9aEtrvs.net] >>421 Squeak/Pharo Smalltalk ideone.com/hCH8lT
438 名前:デフォルトの名無しさん [2016/04/12(火) 06:07:51.10 ID:IvlGS
] [ここ壊れてます]
439 名前:XDX.net mailto: たまにage [] [ここ壊れてます]
440 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 23:39:53.84 ID:xdVnQQp5.net] >>387 F# 勉強中 ideone.com/h9oJuH ローカル環境だとList使って実装して動いたんだけど ideoneだと動かなくて、調べたらideoneのF#のバージョンが低いのかもしれない Arrayを使って書き直したら動いた
441 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 23:56:54.81 ID:49N/1I8V.net] >>421 Io f := method(n, a := list while(n > 0, n = n - 1 a = a prepend(n % 5) n = (n / 5) floor ) a map(i, v, v * 2 + (i + 1) % 2) join asNumber )
442 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 22:38:40.17 ID:hWzlQv+3.net] お題:効率は無視してコードをできるだけ単純にしたバブルソート
443 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 23:39:12.31 ID:rplj63Da.net] >>4 F# 勉強中 ideone.com/UtnUWJ プログラム自体はちゃんと動いてるっぽいが、 コードがF#的になんかいろいろと間違えてるような気がする・・・
444 名前:デフォルトの名無しさん [2016/04/15(金) 02:29:59.73 ID:7tix3D6p.net] >>433 Ruby def mysort a (a.length - 1).times{|i| if a[i] > a[i + 1] a[i], a[i + 1] = a[i + 1], a[i] mysort a end } a end a = (1..10).map{rand(10000)} p a p mysort a
445 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 05:28:13.90 ID:UEolzSKG.net] >>433 ideone.com/Xjvay4 C++。残念なコードになった。こんなコード書きたくなーい。Orz
446 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 21:30:03.75 ID:uCMMU+7S.net] >>433 F# let rec sort = function | ([] | [_]) as x -> x | l::rs -> let r::rs = sort rs if l < r then l::sort(r::rs) else r::sort(l::rs) let r = System.Random() let xs = List.init 10 <| fun _ -> r.Next 10 printfn "%A = sort %A" xs <| sort xs
447 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 01:41:35.90 ID:8gZGJMh1.net] >>433 F# 勉強中 ideone.com/mHKjpZ 勉強中ゆえ(?)、>>437 のコードとか正直よく分からん・・・ とりあえず、自分の理解できる範囲で書いてみたら 殆ど手続き型と変わらん作りになってしまったw
448 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 21:13:38.41 ID:uCxyrvwI.net] >>436 選択ソート?
449 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:39:51.82 ID:LiAu7R50.net] >>439 え?バブルソートでしょ。ちょっと調べてくる。
450 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:43:07.03 ID:LiAu7R50.net] https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%96%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88 これの疑似コードのちょっと悪い感じ? シンプルにするためにオーダー悪くなってる。
451 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:47:56.31 ID:LiAu7R50.net] おっとー、交換条件がおかしいか。 そんなの些細な違いよ!
452 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:56:43.13 ID:8gZGJMh1.net] >>37 F# 勉強中 ideone.com/Q1ZFMv 2進⇔10進変換の復習ができてよかった
453 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 20:39:22.16 ID:cB2Ml+fZ.net] >>433 @Mathematica ideone.com/hKhw79
454 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 20:55:49.84 ID:cB2Ml+fZ.net] 調べたらこんなのもあった。 @Mathematica 「パターンと規則を使ってバブルソートアルゴリズムを実装する」 https://reference.wolfram.com/language/example/ImplementTheBubbleSortAlgorithmWithPatternsAndRules.html
455 名前:デフォルトの名無しさん [2016/04/17(日) 21:55:03.28 ID:8hbCthlc.net] >>440 隣同士の要素を比較・交換するのがバブルソートだと思うけど
456 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 22:19:43.05 ID:chPSqpJT.net] >>411 F# 勉強中 ideone.com/3e3eOt 素数判定はWikipediaの同名項目に書かれてるCソースの丸パクリです・・・ あと、最初に挑戦したときは>>418 と全く同じ症状だったので断念・・・ なんだか、イマイチな感じなので後でコッソリとリファクタリングするかもです
457 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 22:30:35.60 ID:DiLcHZEv.net] 4×4の15パズルの、解ける盤面を作るのに、 空いているマスに、ランダムに100回ほど移動して、 盤面を作っている本を読んだが、 ランダムに盤面を作って、それが解ける問題かどうか、簡単に判別できる方法はないの? 3×3の盤面で、ランダムに盤面を作って、解ける問題かどうかを判別して。 上は解ける。下は解けない 0,1,2 3,4,5 6,7,空 0,1,2 3,4,5 7,6,空
458 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 01:55:07.16 ID:v1FL9ptr.net] >>448 c++で適当に書いた。ideone.com/eJKGw8 以下を参照したが実装が少し違うのであってるかわからん homepage2.nifty.com/TOMOMI/text/14-15.pdf
459 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/04/18(月) 14:39:50.41 ID:6ER+VIie.net] 15パズルの偶奇性 www.geocities.jp/m_hiroi/puzzle/parity.html
460 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 15:49:05.97 ID:vrHU0PJO.net] 1と4と空白を所定に合わせて あとは偶奇性
461 名前: ◆QZaw55cn4c mailto:sage [2016/04/18(月) 19:33:23.43 ID:h2Yzyofc.net] >>441 いや,オーダーはやはりΟ(n^2)で変わらない. どんなコードを想定していたの?
462 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 20:53:46.45 ID:zW4NHiQV.net] >>452 デバッグなしで書くと。 for(i=0;i<size-1;i++){ for(j=i+1;j<size;j++){ if(a[i]<a[j]) swap(&a[i],&a[j]); }} こういうコードを初心者のころどうも発明(バグ製造)したらしくてずーっと使ってるんだけど、それの簡略版。 forの間にIssorted相当を仕込めばオーダ不安定ソートになる。 俺は長い間これをバブルソートだと思っていた。Orz
463 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 20:57:27.48 ID:zW4NHiQV.net] バブルソートからどうやってコムソート創造したんだよ。 と長い間思っていたが、ベースから間違っていた。Orz
464 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 21:02:36.79 ID:zW4NHiQV.net] オーダーっていうか、実行効率だな。些細なことだけど。
465 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 22:43:04.02 ID:h2Yzyofc.net] >>455 そうそう,オーダー表現は n!, n^2(n^c), nlogn, 1 などで表現する.定数倍は無視するんだ, 正確な定義は知らないがたぶん極限が収束するかどうかで見るんだろう. >>453 もΟ(n^2)
466 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 23:45:25.46 ID:zW4NHiQV.net] >>456 なるほどわからん。 まぁ、そういう勘違いを積み重ねるだけの人生だった。Orz いや、死んでないけどさ。
467 名前:デフォルトの名無しさん mailto:sage [2016/04/19(火) 00:24:10.72 ID:5fHK1dXS.net] >>456 n>cのときg(n)<d*f(n)が成り立つようなc,dが存在すれば関数g(n)=O(f(n))って感じじゃね イメージ的に
468 名前:デフォルトの名無しさん mailto:sage [2016/04/19(火) 01:07:43.67 ID:ZMwgfCfL.net] 数学で会話できる人かっこいいなー。
469 名前:デフォルトの名無しさん mailto:sage [2016/04/19(火) 17:18:01.67 ID:93zFzB0Z.net] >>458 かっこいいー もしかして大学出ですか?
470 名前:デフォルトの名無しさん mailto:sage [2016/04/19(火) 23:30:31.84 ID:iVQa/t2n.net] >>342 F# 勉強中 ideone.com/TfJghl なんかSQLいじってる気分になった
471 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 16:20:19.87 ID:bv/Q/2uG.net] >>433 Squeak/Pharo Smalltalk | simpleBubble | simpleBubble := [:arr | | stream | stream := arr readStream. arr size - 1 timesRepeat: [ arr size - 1 timesRepeat: [ stream next > stream peek ifTrue: [ arr swap: stream position with: stream position + 1]]. stream reset ]. arr ]. simpleBubble value: (1 to: 10) asArray shuffled "=> #(1 2 3 4 5 6 7 8 9 10) "
472 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 20:06:02.61 ID:ARUL8qdV.net] >>433 c https://ideone.com/NRFb3z
473 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 22:18:59.00 ID:+sWW+qMV.net] >>433 Io f := method(a, i := 0 while(i < a size, if(a at(i) > a at(i + 1), a swapIndices(i, i + 1) i = 0 , i = i + 1 ) ) a )
474 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 13:03:18.17 ID:5MDUs+Ed.net] >>433 Squeak Smalltalk (PositionableStream>#lastが無いのでPharoではNG。為念) >>464 等を参考にループを >>462 よりシンプルにした版。 | simplerBubble | simplerBubble := [:arr | | stream | stream := arr readStream position: 1. [stream atEnd] whileFalse: [ stream last > stream next ifTrue: [ arr swap: stream position - 1 with: stream position. stream position: 1 ] ]. arr ]. simplerBubble value: (1 to: 10) asArray shuffled "=> #(1 2 3 4 5 6 7 8 9 10) "
475 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 01:46:03.15 ID:3vhuTo00.net] >>433 Rust https://ideone.com/gOLw6K
476 名前:デフォルトの名無しさん [2016/04/30(土) 21:02:40.94 ID:f9UktSYx.net] お題:170の階乗の先頭10桁を求める
477 名前:デフォルトの名無しさん [2016/04/30(土) 21:05:19.27 ID:f9UktSYx.net] お題:170の階乗の先頭10桁を求める
478 名前:デフォルトの名無しさん [2016/04/30(土) 22:13:46.81 ID:ih9K+Dlj.net] >>467 Rubyで p (1..170).inject(&:*).to_s[0,10] # 実行結果 # "7257415615" # [Finished in 0.1s]
479 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 23:37:54.35 ID:DWppbW2i.net] >>467 F# 勉強中 ideone.com/8Mcpmd 少しはF#分かってきたような、そうでもないような・・・
480 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 00:25:30.55 ID:3nNxkvii.net] >>468 FBasic '170! Dim i As Integer Dim ii As Double Dim f As Double f= 1.0 For i= 2 To 170 ii = CDbl(i) f = f * ii Next Print f Sleep End 7.257415615307994e+306
481 名前:デフォルトの名無しさん [2016/05/01(日) 01:30:49.70 ID:PVJV1HwV.net] >>467 Io Io> a:=1;for(i,1,170,a=a*i);(a/(10**(a log10 floor-9)) )floor asString(10,0) ==> 7257415615
482 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 05:22:39.61 ID:k8Y2io+T.net] >>467 Python3 関数を定義したり制御構文を使ったりライブラリをimportしたりするのは負けた気がするので捻った >>> str((lambda f, n: f(f, n))((lambda g, m: m * g(g, m-1) if m > 0 else 1), 170))[:10] '7257415615'
483 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 07:00:07.79 ID:Jp0j1ueK.net] >>467 Squeak/Pharo Smalltalk 170 factorial asString first: 10 "=> '7257415615' "
484 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 09:24:40.00 ID:i1tpwyoc.net] >>467 @Mathematica 170 // Factorial // ToString // StringTake[#, 10] &
485 名前:デフォルトの名無しさん [2016/05/01(日) 09:37:49.41 ID:tKi6j9CT.net] 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrentがオープンソースで開発されています 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします https://twitter.com/Lyrise_al ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw The Covenant Project 概要 Covenantは、純粋P2Pのファイル共有ソフトです 目的 インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します 特徴 Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW) 接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です DHTにはKademlia + コネクションプールを使用します UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります) 検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません p
486 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 14:28:23.75 ID:XECCJNE2.net] >>467 F# printfn "%s" <| (Seq.reduce (*) {1I..170I}).ToString().[..9]
487 名前:デフォルトの名無しさん [2016/05/01(日) 21:02:15.79 ID:PVJV1HwV.net] >>467 R > substr(sprintf("%f",prod(1:170)),1,10) [1] "7257415615"
488 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 07:53:08.55 ID:JrdSjVB4.net] お題: n!の上位桁が10^x-1になる最小のnを求める (xは正の整数) 例 x=1: n=96 (9916779348...) x=2: n=96 (9916779348...) x=3: n=261 (9996811196...) x=4: n=17411 (9999777368...) x=5: n=583104?
489 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 11:11:18.30 ID:ybUtGNCd.net] >>479 Squeak/Pharo Smalltalk | fn | fn := [:x | | factFloat factStr n nines | n := 0. factFloat := 1.0. nines := String new: x withAll: $9. [ n := n + 1. factFloat := factFloat * n. factFloat := factFloat / (10 raisedTo: factFloat log asInteger). factStr := factFloat asString copyWithout: $. . factStr first = $0 ifTrue: [factStr := factStr allButFirst]. factStr size >= x and: [(factStr first: x) = nines] ] whileFalse. {#x->x. #n->n. factStr truncateWithElipsisTo: 13} ]. fn value: 1. "=> {#x->1 . #n->97 . '9916779348...'} " fn value: 2. "=> {#x->2 . #n->97 . '9916779348...'}" fn value: 3. "=> {#x->3 . #n->262 . '9996811196...'} " fn value: 4. "=> {#x->4 . #n->17411 . '9999777368...'} " fn value: 5. "=> {#x->5 . #n->583104 . '9999906872...'} " fn value: 6. "=> {#x->6 . #n->2064173 . '9999993058...'} "
490 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 08:45:55.56 ID:GSs/8kUx.net] >>479 @Mathematica ideone.com/4LfZ8E
491 名前:デフォルトの名無しさん [2016/05/04(水) 21:22:23.48 ID:WvfFbq7M.net] >>479 Io f := method(x, d := 10 ** (x - 1) q := 10 ** x - 1 a := 1 n := 0 while(q != (a * d) floor, n = n + 1 a = a * n a = a / 10 ** a log10 floor ) n ) Io> f(1) ==> 96 Io> f(3) ==> 261 Io> f(5) ==> 583104
492 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 22:35:23.32 ID:qgnKpMBO.net] //┏┳┳┳┳┓ //┣╋╋╋╋┫ //┣╋╋╋╋┫ //┣╋╋╋╋┫ //┣╋╋╋╋┫ //┗┻┻┻┻┛ //上記の6X6の通路を左上から右下へ到達する時に //同じ場所を通らずにたどり着くルートは何通りあるか? 嫌儲のプログラミングスレで盛り上がってるこの問題どうすかね
493 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 22:37:44.31 ID:h5NbJg5S.net] おねえさん・・・
494 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 00:59:50.49 ID:muAMBl7W.net] >>483 以前、お題スレ Part6の984 の問題で作ったものをそのまま流用。 左上から部屋番号1,2,3,...36(右下)として、部屋同士の接続を定義。 言語C++: ideone.com/1Nj1eU 5x5なら1秒以内で終わるのですが、6x6はideoneではタイムオーバーでした。 計算するときはn=6にして計算して下さい。自分のところでは計算に70秒程度。 正直合ってるかどうかわかりません。 結果: 6x6: 全1262816通り 最短距離10(252通り) 最長距離34(10180通り) ちなみに・・・ 2x2:全2通り 最短距離2(2通り) 最長距離2(2通り) 3x3:全12通り 最短距離4(6通り) 最長距離8(2通り) 4x4:全184通り 最短距離6(20通り) 最長距離14(32通り) 5x5:全8512通り 最短距離8(70通り) 最長距離24(104通り)
495 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 01:32:14.77 ID:muAMBl7W.net] >>483 元のスレ見にいったら、問題にもう1行あったよ //ただし、同じ交差点は何度通ってもいい これあるなら>>485 は取り消しします
496 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 02:48:54.24 ID:PH/e0da8.net] >>479 F# 勉強中 ideone.com/vWueIT ※ただし、UInt64(Max 10進数で19桁)で計算してるので誤差が生じはじめると・・・ ideone上だとx=5が限界、以下ローカルでの実行結果 x=1: n=96 (9916779348...) x=2: n=96 (9916779348...) x=3: n=261 (9996811196...) x=4: n=17411 (9999777368...) x=5: n=583104 (9999906872...) x=6: n=2064173 (9999993058...) ちなみに、x=5がローカル(i7-3537U)で30秒くらいかかるのにideoneだと6秒未満だし やっぱ性能いいのねぇ・・・ あと、階乗の手抜きっぽい計算はPAIZAの彼女を作るゲームの水着ゲット問題で研究しますたw
497 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 15:33:45.25 ID:SQKTrz0M.net] >>486 それは発展版の方でですね 最初は482で次問が交差点を何度もです ちなみに交差点を何度もではかなり気をつけないとCではスタックオーバーみたいですね
498 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 17:16:35.94 ID:PH/e0da8.net] >>483 F# 勉強中 ideone.com/31G3C2 ideoneでは残念ながら制限時間超過・・・ ローカル(i7-3537U 8GB mem)では1,262,816通り、実行時間およそ42秒 末尾再起にするため、やむを得ずmutableを使ったのだが、もっとうまいやり方はあるのだろうか・・・・
499 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 18:24:52.73 ID:ZdWJcfSQ.net] >>488 482発展版? by c++ n=6まで ideone.com/J22mpj 手元で時間がかかったがn=7も確認
500 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 07:33:20.07 ID:+i3ap6tD.net] >>490 489は、非発展版でした。 発展版はn=5が限界だった。あのビデオ通りの動きだな ideone.com/J22mpj 上書き n=3の経路見てみてあっているような感じ。 それ以上のnは確認ができてない。 数列辞典で引ける程度でたので、これかな https://oeis.org/A013990
501 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 23:52:58.29 ID:qCADCCRG.net] >>467 ideone.com/P7XHHt C++。スレが専ブラの画面外に行ってたのでチェックしてなかった。 C++で作った割には誤差が出なくてよかった。たぶん。 >>469 つかって検算させてもらった。thx.
502 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 00:03:58.77 ID:r8xFef3w.net] >>483 はC++やってる人がいるのでパス。 それ以上のコードはかけなさそう。Orz
503 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 00:04:20.89 ID:r8xFef3w.net] あ、日付かわった。
504 名前:デフォルトの名無しさん [2016/05/08(日) 21:11:37.01 ID:WelKIVWp.net] お題:1から16までの連続した自然数をA,Bの二つのグループに分ける。 Aの要素の総和とBの要素の総和が等しく、Aの要素の2乗の総和と Bの要素の2乗の総和も等しく、さらにAの要素の3乗の総和と Bの要素の3乗の総和も等しくする。
505 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:07:10.56 ID:3m2Dr+7v.net] {2,3,5,8,9,12,14,15} と {1,4,6,7,10,11,13,16} だけ?
506 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:23:03.64 ID:3m2Dr+7v.net] あ、共通部分があってもいいんだな A=B={1,2,...,16}とか まだありそう
507 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:38:34.59 ID:r8xFef3w.net] 5秒では終わらんなー。まぁ暇だからやってみようかなぁ・・・。
508 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 00:30:22.73 ID:pUXvKib1.net] >>495 ideone.com/gzHjPK C++。一応こういうコードを書いてみた。ろくにデバッグできなかったのでバグってる可能性が高い。 コンビネーションほしー。16!とかほぼ無理なので、絶望した。
509 名前:デフォルトの名無しさん [2016/05/09(月) 01:03:48.60 ID:yYTJyO7B.net] Haskellならマイクロ秒のオーダーで計算できますよ? 未だにC++に固執するのは宗教ですか?
510 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 01:22:53.38 ID:pUXvKib1.net] 特に宗教じゃないけど、ほかの言語を覚える気にならないだけ。 真面目にゲーム作るときに使おうと思って覚えたのが動機だから、ゲーム基準なの。 constexprがもうちょっと高機能になったらいいなーと思ってる。
511 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 01:25:19.28 ID:pUXvKib1.net] >>500 というか、煽ってないでコードだしてよ。 ハスケール読めないけど。
512 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 03:01:39.37 ID:2YrVj7rY.net] >>497 グループ分けだから共通は無しじゃないの
513 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 15:09:43.81 ID:9C2z/2Vf.net] >>495 ideone.com/kcTdlh 16だけだと寂しかったので、答えが多数出てくる24も追加してみた。 1は必ずAグループに入るようにしている。 (A,Bを特定した時、全く逆の組み合わせも存在するが、今回は表示してない)
514 名前:デフォルトの名無しさん [2016/05/09(月) 20:05:26.31 ID:t+bzhO52.net] >>495 Io for(i, 1, 2 ** 15, a := list for(j, 1, 16,a push(if(i at(j - 1) == 1, j, -j))) if(a map(**3) sum == 0, a println) ) 実行結果 list(-1, 2, 3, -4, 5, -6, -7, 8, 9, -10, -11, 12, -13, 14, 15, -16) 正の数をひとつのグループ、負の数をもうひとつのグループというこで
515 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 00:08:20.11 ID:E+X0dc0Z.net] >>495 ideone.com/3boCML C++。重複なし版。相変わらず16!は解決してない。 >>504 これ早いなー。すごいなー。Orz
516 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 19:41:46.28 ID:2fCl6+HU.net] 31の場合は何通り?
517 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 20:56:18.35 ID:0+ZmZvza.net] 40通り
518 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 21:01:50.08 ID:TdrM46fl.net] >>495 @Mathematica ideone.com/TPGKEh
519 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 02:23:15.24 ID:zcj8oTfj.net] >>495 Java ideone.com/J6hgFy
520 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 05:59:04.20 ID:71pkMQnc.net] >>510 爆速だね。Core i7 4Gで n=40で3646 n=47で173351 n=48で291482 個見つかった。所要時間1分くらいか
521 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 21:27:01.99 ID:zcj8oTfj.net] listupがメモ化とかで速くできそうな気がするけど頭が動いちょらん
522 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 19:27:31.92 ID:fkcp4aHY.net] >>495 Squeak/Pharo Smalltalk | elems sets | sets := Set new. elems := (1 to: 16) asArray. (1 to: elems size - 1) do: [:n | elems combinations: n atATimeDo: [:comb | | rest | rest := elems difference: comb. ((1 to: 3) allSatisfy: [:pow | (comb raisedTo: pow) sum = (rest raisedTo: pow) sum]) ifTrue: [sets add: {comb copy. rest} asSet] ] ]. ^sets "=> a Set(a Set(#(2 3 5 8 9 12 14 15) #(1 4 6 7 10 11 13 16))) "
523 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 20:53:50.90 ID:6rd1u1gc.net] >>495 @Mathematica, リファクタリング後 ideone.com/QFce6S
524 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 16:09:50.16 ID:LEy4i3xG.net] >>495 スレ汚しスマソ @Mathematica, さらにリファクタリング ideone.com/gvxa8t testGroup の条件を書き換えて、枝刈り。 計算時間が半分に。
525 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 16:51:30.35 ID:QTcku1ZG.net] 昔ダイナムで雪降ってたのでゴム長で行って 朝一大ヤマト1/498で一発入ったら艦長が 『戦闘配置につけ!』って出たのを思い出した。 2連で終わったけど。
526 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 16:52:01.87 ID:UXQjq3mC.net] どこの誤爆だw
527 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 16:59:37.57 ID:ZCteEarO.net] そういや昔のパチンコ雑誌はZ80のアセンブラの解析記事とか載ってたなw
528 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 05:32:56.17 ID:4GANdY7B.net] >>483 @Mathematica ideone.com/4FZXRG
529 名前:デフォルトの名無しさん [2016/05/27(金) 20:18:44.31 ID:2AExo9Gt.net] お題:n角形を隣接行列で表す
530 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 04:06:02.91 ID:t8+ZEFcK.net] >>520 ideone.com/GcMBSl C++。こういうこと?かしらかしらごぞんじかしら。
531 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 12:17:02.17 ID:MAzFniKU.net] 全然違うし何でそういう発想になったかわからん
532 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 16:19:17.65 ID:XDR4NRkL.net] おれはこれ以外に解釈できない
533 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 18:12:21.03 ID:t8+ZEFcK.net] >>522 線引いてみればわかるけど、N角形になるよ。 問題文が端的過ぎる。
534 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 18:15:28.59 ID:t8+ZEFcK.net] 出題者でてきてー。
535 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 01:35:58.98 ID:l7Z0+24R.net] マジで出題者どこ行った。解こうにも解けないじゃないか。 ダメならダメでいいから出てこい。
536 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 20:35:38.46 ID:4RXp3JbO.net] >>520 J f=:(_1&|. +. 1&|.) @ = @ i. f 4 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0
537 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/06/04(土) 22:13:22.70 ID:9azu721e.net] お題:C/C++とWindowsに限定。レジストリ全体を記憶し、 変更があれば変更点を表示する。 Windows 2000で動作しなければならない。 GUIは必要ない。Enterキーを押したタイミングで差分を表示する。 報酬3000円。銀行振込、WebMoney、ビットキャッシュ、Amazonギフト券の中から選べる。 ただし、メールで連絡が取れること。
538 名前:デフォルトの名無しさん mailto:age [2016/06/04(土) 22:13:38.13 ID:9azu721e.net] あげ
539 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 00:23:56.68 ID:bEHxSIM9.net] DB全体のスナップショット機能と同じやん
540 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 07:15:50.35 ID:VJ6TUrY4.net] ブラック企業かよw
541 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 08:41:23.90 ID:6BPcdog/.net] Windows7以上?ではレジストリにアクセス権が設定できるんですが?
542 名前:デフォルトの名無しさん [2016/06/14(火) 17:21:21.81 ID:ylR65uF/.net] N個の具材を3つ選んでハンバーガーにトッピングすることが出来ます。 合計285通りの組み合わせが出来ます。 必要な具材の最低個数と最高個数を求めてください。
543 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 19:38:38.50 ID:Eohj2elN.net] 286個では
544 名前:532 [2016/06/14(火) 20:27:38.82 ID:Wnl/zMEq.net] いいえ285であってるはずです 「マクドナルド 裏メニュー」の285通りから問題を作りました
545 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 21:21:13.32 ID:F0Va16Jg.net] この出題じゃその例にはならないぞ
546 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:44:42.75 ID:43s0H04y.net] >>533 ちょっと言ってる意味が解らないですね。 オーダーしてくる確率が決まってるならまだしも、イーブンに注文してくるなら最高値と最低値は一緒になるのでは? 初見でそう思った。 C++にコンビネーションを・・・。Orz
547 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:46:00.30 ID:sBc8t+V7.net] ハンバーガーにも種類があるのはググって分かったけど、それでも何を解答させんとしているのかはよくわからないね ideone.com/etvHKm
548 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:43:08.29 ID:ZJPgf/2E.net] >>535 表に1個有るんだろ。 計286通り。
549 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:19:32.87 ID:BV3PG4b+.net] お題: 2つの異なる字幕ファイルをマージする 映画の字幕ファイルが2つ(日本語版と英語版)あります また、2つのファイルはそれぞれ別の人が同じ映画から作成しました ファイルのフォーマットは以下のように決まっています [ フォーマット ] 発声開始時間 --> 発声終了時間 台詞1 発声開始時間 --> 発声終了時間 台詞2
550 名前:[ フォーマット例 ] 00:02:11,706 --> 00:02:13,196 banana. 00:02:14,509 --> 00:02:17,842 apple. 1つのファイルには台詞が1000以上あります 作成者が異なるのでぞれぞれのファイルの台詞の時間はバラバラに記録されています 近しい時間帯の台詞が出来るだけ綺麗に連なるように2つのファイルをマージしてください [] [ここ壊れてます]
551 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:27:48.70 ID:ifKGTnOo.net] データをフォーマット通り読んでってソートするお仕事?
552 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:33:13.09 ID:BV3PG4b+.net] >>541 作者が異なるので記録する台詞も個人差(詳細だったり大雑把だったり)があります ソートしたらダメでした…(´・ω・`)
553 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:37:53.46 ID:ifKGTnOo.net] データがなさ過ぎてなんとも言い難いなぁ。一抜け。
554 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:55:05.38 ID:ifKGTnOo.net] まぁ、ぼやっと思う感じでは、 1、ファイルAソート。時間で。 2、ファイルBソート。時間で。 3、両方を別バッファに取り込み。 4、一本化バッファ作成。 5、バッファA[i]の時間とバッファB[j]の時間を比較。 6、小さいほうを一本化バッファの後ろに追加。 7、追加したほうのインデックサをインクリメント。追加しなかった方はそのまま。 8、5にループ。 9、余ってるほうを全部突っ込む。 end。 って感じに思えるが。メンドクセー。
555 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 02:35:16.23 ID:xbYmT3r1.net] >>542 ソートしてダメならプログラムでやる意味ないじゃん よくわからんお題だな
556 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 08:12:11.46 ID:a+kSsv7i.net] >>540 二つのファイルをマージするとどんなメリットがあるの?
557 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 13:48:43.10 ID:kOUAeqMS.net] とりあえずそのファイルをどこかに置いて見れるようにしとけよ。話はそれからだ。
558 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 14:42:47.48 ID:VC0ezbuZ.net] >>540 発生開始時刻と発生終了時刻の相加平均値でソートしてはどうでしょうか?
559 名前:デフォルトの名無しさん mailto:sage [2016/06/28(火) 21:40:42.79 ID:JU4eR3PY.net] レス遅れてすまんが、お題としてはイマイチだったかな ttp://www.opensubtitles.org/ja/subtitleserve/sub/5904174 ttp://www.opensubtitles.org/ja/subtitleserve/sub/6525137 >>546 英語の練習がしやすい
560 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 02:19:12.68 ID:sVTYBpM+.net] タダの準備不足。 人を動かす材料が足りない。
561 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 23:31:32.20 ID:OPqpBspr.net] そうか。すまんかった
562 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 23:49:35.70 ID:frOOdHyw.net] 入力だけじゃなく出力も提示しないとわからんよ
563 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 21:08:39.04 ID:KvQk5E4z.net] >>540 JAVA ソース ttp://ideone.com/vxIcvL jarなど ttp://www1.axfc.net/u/3686951.zip
564 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 11:21:22.75 ID:ALuHk1mL.net] レスがつかないのでいいのか悪いのかさっぱりわからん 無責任なやつだな
565 名前:デフォルトの名無しさん [2016/07/21(木) 20:01:41.38 ID:rb76Qzme.net] お題: いくつかの非負整数を区切り記号を略して書き並べてあります。 区切り記号の挿入箇所の組み合わせは全部で
566 名前:何通りありますか? [] [ここ壊れてます]
567 名前:デフォルトの名無しさん [2016/07/21(木) 20:05:24.57 ID:rb76Qzme.net] >>555 あれ、例が抜けてた↓ "150301" -> 18 "150031" -> 16 "015000" -> 8 "2432902008176640000" -> ?
568 名前:デフォルトの名無しさん mailto:sage [2016/07/21(木) 23:07:45.64 ID:8Nf0PhCE.net] >>555-556 C++ あってるかどうかは知らん ideone.com/F28LZS
569 名前:デフォルトの名無しさん [2016/07/22(金) 12:57:04.31 ID:M/7Z6G3a.net] >>556 ↓のような分割かと思ったが・・・ 0,15000 01,5000 015,000 0150,00 01500,0 0,1,5000 0,15,000 0,150,00 0,1500,0 0,1,5,000 0,1,50,00 0,1,500,0 0,15,0,00 …
570 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 15:32:49.00 ID:JXjdchXx.net] >>555 C言語 ideone.com/rIkKvv 例からすると区切り無しも含むのですかね
571 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 06:35:51.96 ID:el9EgK1j.net] >>555 Haskell ideone.com/PsZ9vn
572 名前:デフォルトの名無しさん [2016/07/24(日) 23:19:04.90 ID:IHR53C+P.net] 久しぶりにこのスレ開いたけど 何か過疎ってね?
573 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 23:34:50.13 ID:253cC3eo.net] 俺は最近はyukicoderとかpaizaとかでお題解いてるよ
574 名前:デフォルトの名無しさん mailto:sage [2016/07/25(月) 03:46:54.86 ID:0UVAPYM3.net] 「プログラマ脳を鍛える数学パズル」 2016、技術書部門の大賞、受賞作 図書館では、予約している人が10人ぐらいいて、 とても読めそうにないので、今日、買ってきた Ruby, JS などで書いてある
575 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 11:19:50.57 ID:XvUIxyvW.net] >>555 ideone.com/r93ULh ideone.com/PrKxyj C++。数字が合わんがな。何か間違えてるかなぁ。 ルールの把握があいまいなのであってるか知らん。 もしかしたら、stringstreamでやってるwhileでカウントすればいいかもしれん。 それと対象ナンバーが64ビット超えたらたぶん動かない。 まぁいいや。せっかく作ったのでそれだけ認めてくれ。
576 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 20:19:22.73 ID:IfzkZoT6.net] >>564 150301だったら 1,5,0,3,0,1 1,5,0,30,1 1,5,0,301 1,50,3,0,1 1,50,30,1 1,50,301 1,503,0,1 1,5030,1 1,50301 15,0,3,0,1 15,0,30,1 15,0,301 150,3,0,1 150,30,1 150,301 1503,0,1 15030,1 150301 の18通りだと思うけど
577 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 03:27:05.93 ID:11+SH8DV.net] >>555 >>565 ideone.com/JHsovR ideone.com/gz38Ko C++。いじってみたけど、数字が合わず。何が間違ってるのかもわからない。 ルールを把握できないって、ぼけてきてるのかなぁ・・・。Orz 最近、思考してないし。
578 名前:デフォルトの名無しさん [2016/08/01(月) 04:25:27.15 ID:4Q/skcnH.net] >>555 Pythonの勉強がてらやってみました codepad.org/vszENnrW >>566 最も愚直な方法は考えられる分け方を全て列挙し、その中から認められない分け方を除外して数えればいい 1,5,03,01の03と01のように二桁以上で先頭が0であるような分け方は認められないと思われる
579 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 02:02:12.74 ID:YLg91Q2/.net] >>555 >>567 ideone.com/8TbvLG C++。やっと数字があった。 皆さま、愚かなワタクシメをお許しください。ラーメン。Orz
580 名前:デフォルトの名無しさん mailto:sage [2016/08/07(日) 22:49:29.00 ID:K0guDqg3.net] >>555 >>567 ideone.com/ftx1M2 C++でさっくりと。 >>557 にあるファイルからの入力受け取る方法いいすね
581 名前:デフォルトの名無しさん [2016/08/09(火) 11:14:00.48 ID:92/o3tci.net] >>569 checkの返り値はboolなのにそのまま足しちゃうの?
582 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 03:08:08.02 ID:inQKn798.net] >>570 bool型はtrue=1,false=0なので次のコードは同じ if(flag)ans++; ans+=flag;
583 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 07:54:16.90 ID:rXBd1I+h.net] >>571 ん?
584 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 11:18:58.21 ID:eCSVoJoG.net] 三流のROM専だけど、trueはnot0と思ってたし、trueを数値として扱うのは違和感すごいの。
585 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 11:21:37.91 ID:eCSVoJoG.net] 少し訂正 boolを数値として使うのは違和感
586 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 12:30:53.29 ID:Gdje5e7d.net] 言語による。Cなら普通におk
587 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 12:35:35.23 ID:j6o9ee9V.net] 普通でもおkでもねえよw
588 名前:デフォルトの名無しさん [2016/08/10(水) 19:34:37.97 ID:87OBHkNz.net] c++のbool型のtrueは1 if文のtrueがnon0であることとbool型の定義は別ってことを理解していれば使っていいんじゃないの? ideone.com/s3uiYC
589 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:05:43.36 ID:6wlopmtf.net] じゃあ\0とNULLを混同して使っても(実際こんな人わんさといるけど)何も問題ないな
590 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:20:05.28 ID:R4BTC7dG.net] つか0(0x30)とNULL(0x00=\0)を混同だろ、お前まで間違えても何ら問題ない
591 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:22:43.02 ID:5BOEqgkW.net] Pythonのboolはintのサブクラスで数値演算に混ざっても警告やエラーなし 互換性捨てたPython3でもそのままでintから独立させる気配がない
592 名前:デフォルトの名無しさん [2016/08/10(水) 20:29:02.04 ID:sHDHYt88.net] 偽ではないものが真です。言語によって偽の定義が異なる。
593 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:48:14.92 ID:qB+vEzvD.net] if(韓国人の言うこと==true) return false; else if(中国人の言うこと==true) return false; else return true;
594 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:48:26.57 ID:O/fexyuH.net] >>576 C に bool はない,だから普通にOKだ,C99 はしらんが
595 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 21:08:56.81 ID:6wlopmtf.net] >>579 言ってるそばから混同してる奴が出て来たけど、 \0とNULLはまったく意味が違う。
596 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 21:12:11.66 ID:6wlopmtf.net] >>583 型としてboolはなくても真偽の概念はある。
597 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 21:23:29.03 ID:6bflnq0j.net] boolをintにキャストして使うとお前らが怒ることはわかった じゃあなんのためにキャスト出来るようになってるん?数値として扱うべきでないならキャストを禁止すべきだ
598 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 21:56:03.25 ID:6wlopmtf.net] >>586 別に目的があってキャストできるようにしてるわけじゃない。 単にif文等を機械語に翻訳する時に都合がいいからfalseを0にしてるだけ。
599 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 22:17:30.88 ID:aUoQ61q7.net] ブール値が無い、C89でも、実質的なブール値という概念がある。 真偽値を返す、比較演算 if(a == b) これを、if(int型)などと書くのは、MISRA-Cなどではコーディング規則違反 偽は0だが、真は0以外で、1とは限らないかも \0 は、NUL文字。文字列の最後に使う、番兵。 NULL は、無効なポインタで、0とは限らないかも
600 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 22:33:17.47 ID:20SNjYRS.net] C++なら問題ないよ 検索すりゃ分かるけどbool->intは0/1になることが言語仕様で決まってる
601 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 22:48:50.81 ID:6wlopmtf.net] >>589 だからそういう「問題」じゃないってばw そういう話ならNULLと\0も混同しても問題ないことになるよ。
602 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 23:10:16.36 ID:aUoQ61q7.net] まあ、0, 1 とか暗号みたいな数値は、使わない方がいい false, \0, NULL, 全ビット0 など、意図がわかるようにすべき
603 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 00:10:30.93 ID:yzOHsc1F.net] 「私」は「言語」として考えたらboolをboolとして使いたいし、intとしては無しだと思ってます。 でも「プログラミング」としては有りだと思ってます。 宜しければ、bool論争をここで終結としませんか?
604 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 09:47:35.13 ID:EgW5aVb5.net] return (韓国人の言うこと)?false:!中国人の言うこと;
605 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 10:23:51.85 ID:TQheNK/m.net] >>586 べつにキャストする必要はない
606 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 18:35:49.99 ID:5aKqGy8m.net] くだらないことで争ってんな 正しく動きゃいいんだよ、んなもん
607 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 12:46:03.49 ID:W0ObG9Gv.net] これだから型安全でない言語は糞なんだよ
608 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 11:38:09.80 ID:uRifR0NT.net] YukiCoderたのしー。 3問目を解説見ながら解いた。 幅優先探索は苦手だ。Orz
609 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 19:57:07.32 ID:HA8B0Krx.net] 縦H横Wのマスの中に現れるa→b→cの順に辿れる道は全部で何通りあるか出力しなさい。 存在しない場合は-1と出力しなさい。 移動は縦横のみできる。斜めに移動はできない。 H==W、3<=(H,W)<=1000とする 問題例 --c- cab- cbac 答え 4 --c-|----|--c-|---- -ab-|----|--b-|-a-- ----|cba-|--a-|cb--
610 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 20:29:36.17 ID:itqO338w.net] >>598 問題例に不備があるじゃないか。
611 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 21:16:51.46 ID:HA8B0Krx.net] 訂正 問題例 --c- cab- cbac ---- 答え 4 --c-|----|--c-|---- -ab-|----|--b-|-a-- ----|cba-|--a-|cb-- ----|----|----|----
612 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 01:18:23.97 ID:ATOVcA82.net] 全てのbの上下左右にあるaの数*cの数を足せば良いんだな。
613 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 05:08:48.91 ID:VvgCdVoy.net] >>598 >>600 ideone.com/AW6YTZ C++。Yukiだとサンプルしか通らなそうなコード。 まぁ、これが俺の地だしなぁ。 俺は俺にガッカリだよ。Orz
614 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 05:19:59.98 ID:VvgCdVoy.net] >>598 >>600 ideone.com/oUQbfM C++。>>601 メソッド?? ちょっとすっきりした。
615 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:40:01.81 ID:YWGtPoG/.net] お題 ズッカーマン数(Wikipediaより) ズッカーマン数(-すう、Zuckerman number)は自然数で、各桁の数字の総乗が元の数の約数 であるような数である。例えば315は各桁の数字の積が 3×1×5=15 であり、15は
616 名前:315の約数で あるので315はズッカーマン数である。 ズッカーマン数を最初から100個求めよ。 [] [ここ壊れてます]
617 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:49:14.49 ID:/RUSPZDT.net] 梅干し食べて... なんか力技でやるしかなさそうな感じだな
618 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 14:10:04.63 ID:VvgCdVoy.net] >>604 ideone.com/t6xXhj C++。あってるかな?
619 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 20:11:53.65 ID:NvOrOVSG.net] こんな感じでいいのか? ideone.com/NJ6rGr
620 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 20:38:01.87 ID:/9WWz1kS.net] なぜいいと思った
621 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 21:21:48.34 ID:cQHsobNS.net] C ideone.com/peczRr
622 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 01:56:24.06 ID:fBfaZTKr.net] >>604 F#勉強中@半年 https://paiza.io/projects/Zt_Tw1LaKtiB93Fi6dWkJQ Wikipediaに書いてある数字との照らし合わせはしました あと、paiza.ioのを貼るのは初めてなのでうまく貼れてるかどうか・・・ ちなみに、F#は主にyukicoderで鍛えてます、少しは分かってきたかも
623 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 02:08:11.71 ID:q0PyZcrj.net] >>598 >>601 のやり方で C言語 ideone.com/wkEP9Z >>604 C言語 ideone.com/Pxskoy
624 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 14:43:03.45 ID:9WgV32AQ.net] >>604 @Mathematica ideone.com/tq9juG
625 名前:デフォルトの名無しさん mailto:sage [2016/08/17(水) 08:55:07.31 ID:5k4XIPv4.net] >>604 Squeak Smalltalk | Zuckerman | Zuckerman := Generator on: [:g | 1 to: Float infinity do: [:n | (n isDivisibleBy: ((n asString asArray collect: #digitValue) reduce: #*)) ifTrue: [g yield: n] ] ]. Zuckerman next: 100
626 名前:デフォルトの名無しさん [2016/08/20(土) 20:32:51.59 ID:vgYTWLvl.net] >>604 Rubyで。 class Zuckerman # @param [Int] num チェック対象数値 # @return [Bool] true:入力値がズッカーマン数, false:ズッカーマン数でない def self.zuckerman num w = num.to_s .split(//) .map {|e|e.to_i} .reduce(:*) w == 0 ? false : num % w == 0 end def self.func1 cnt = 0 (1..Float::INFINITY).map { |e| (cnt += 1; p e) if self.zuckerman e break if cnt >= 100 } end end Zuckerman.func1
627 名前:デフォルトの名無しさん mailto:sage [2016/08/21(日) 01:56:15.80 ID:bS7dpt9A.net] プログラミングのお題で言語間のコード量競うってか いかに数学的アルゴリズムを考えるスレか?
628 名前:デフォルトの名無しさん mailto:sage [2016/08/21(日) 04:07:51.39 ID://fxd30H.net] 競プロの故郷じゃよ。なんて。 俺算数で解いてるんだぞ・・・。Orz
629 名前:デフォルトの名無しさん mailto:sage [2016/08/21(日) 07:18:31.83 ID:DtQd7MF/.net] 問題を解く早さ、 計算時間の速さ、 コードの短さ、 コードの美しさ、 色々あるね。
630 名前:デフォルトの名無しさん [2016/08/22(月) 00:07:09.67 ID:x59Y2UAa.net] お題 フィボナッチ数列の先頭に近い数字の合計が、入力値になるように求める。 入力値の例--->出力 1 ---> 1 2 ---> 1,1 3 ---> 1,2 4 ---> 1,3 5 ---> 1,1,3 6 ---> 1,2,3 7 ---> 1,1,2,3 8 ---> 1,2,5
631 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 00:37:32.44 ID:RW2M/REU.net] 30人の生徒がいるクラスで、同じ誕生日の子がいる、確立を求めて 1年を365日とする
632 名前:デフォルトの名無しさん [2016/08/22(月) 00:49:12.07 ID:3wW8ItwJ.net] >>619 「確立」は求められないけれど,「確率」なら求められる…というのはさておき, 同じクラスで誕生日が同じ子がいる確率の問題は, 森口繁一『応用数学夜話』 に解説があるのだが,その本が本の山の中に 埋もれていて,いま探し出せないのが残念。
633 名前:618 mailto:sage [2016/08/22(月) 01:14:27.85 ID:RW2M/REU.net] 1 - 全員が異なる誕生日である確率 で求めて
634 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 01:18:50.34 ID:38ySFfYc.net] ideone.com/54J6iS C++。数列に1を含んでいるので、例のようにやろうとすると全部1で分解しようとする。かも。 例がちょっと懇意なので、俺にはこれが限界やったわ。
635 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 01:27:31.25 ID:38ySFfYc.net] >>622 -> >>618 安価忘れた。
636 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 01:53:51.46 ID:38ySFfYc.net] >>619 >>621 ideone.com/BPf9XW C++。確率の問題なんてだーいきらい。あってるか知らんけど大体こんな感じか?
637 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 02:06:45.94 ID:P8rthkb+.net] >>621 を出された時点で理論的確率を求めて欲しいのは明らかだけど、それだとプログラムを組む意味がない 要するにスレチ
638 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 02:15:23.57 ID:38ySFfYc.net] >>625 算数でそれは無理なので、俺には無理だー。 ( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
639 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 02:31:12.36 ID:ze8O1aG1.net] >>625 いやいや、簡単な数式で表現できても人力で数値解を求めるのは 大変なんだから、それってまさに計算機の出番ではあるよ。 お題として楽しいかどうかは別にしてw
640 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 03:39:29.64 ID:PiS6AnEW.net] >>619 Java https://ideone.com/Qmn3oZ
641 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 03:55:16.97 ID:38ySFfYc.net] あ、勘違いしてた。>>624 の結果逆だ・・・。Orz
642 名前:デフォルトの名無しさん [2016/08/22(月) 10:05:22.23 ID:6SPK9Sy9.net] お題 やじろべえの左右の腕に交互に重りを吊るしていく ただし、左右の重りの重量差が10gを超えたらバランスを崩してしまう 重りの重量が順に与えられるので最後までバランスを保ったままかどうか判定せよ
643 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 10:32:46.57 ID:38ySFfYc.net] >>630 右と左を引き算してABS取ればいいのはわかるんだけど、重りのサンプル無いかい?
644 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 18:46:34.40 ID:FFKbVhI+.net] >>618 Common Lisp https://ideone.com/A0NXTP 64個でタイムアウト 遅すぎるよねこれ もっと速く解ける気がするけど分からなかった
645 名前:デフォルトの名無しさん [2016/08/22(月) 19:23:14.70 ID:3wW8ItwJ.net] >>619 森口繁一『応用数学夜話』(ようやく見付けました)によると、この問題は、von Misesとのことです。 結果だけ書くと、k人からなるクラスで誕生日がだれひとりとして同じにならない確率は (1/n^2):*(n!/(n-k)!) で、kはひとクラスjの人数、nは場合の数で、閏年を考えなければ n=365となります。 この本によると、この確率が0.5を超えるのは k=23 の時だそうです、つまり24人以上のクラスからなる学校では、 誕生日の重なるクラスが多くなるということになります。
646 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 22:39:24.73 ID:RW2M/REU.net] 24人で、0.5を超えるのか。不思議な感覚だな 漏れの感覚では、24人で、0.15ぐらい
647 名前:デフォルトの名無しさん [2016/08/23(火) 00:06:33.47 ID:nbfEIr8Y.net] >>618 DP? C言語 https://paiza.io/projects/NpNLBMGoxV-tDcmm4CycBQ https://out.paiza.io/projects/NpNLBMGoxV-tDcmm4CycBQ/output.txt
648 名前:デフォルトの名無しさん [2016/08/23(火) 00:26:56.57 ID:nbfEIr8Y.net] >>635 出力整形した https://paiza.io/projects/rXzmboNl1gbBZflK_j8BrA https://out.paiza.io/projects/rXzmboNl1gbBZflK_j8BrA/output.txt
649 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 05:09:43.19 ID:1XZ2ZUlZ.net] ideone.com/RLDrpn ベンチマークしようとしたら、先に出力エラーになった。
650 名前:デフォルトの名無しさん [2016/08/23(火) 13:54:31.44 ID:nbfEIr8Y.net] >>637 5,6,7は>>618 の結果と違うようだけど
651 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:03:36.67 ID:nbfEIr8Y.net] そうかフィボナッチ数列はすぐ大きくなるから項数はそんなに大きくならないからgreedyでもいいのか オーダーのことは未だよく分からないけど たぶんDPよりgreedyのほうがいいのかな? >>637 がgreedyで求めてたので何となくそう思いました
652 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:13:51.47 ID:nbfEIr8Y.net] >>639 あ、greedyだから題意を完全に満たさない結果になってるのか やはりメモ化探索か brute forceはキツそうだし
653 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:21:20.64 ID:1XZ2ZUlZ.net] >>638 ちょっとよくわからないけど、バグかなぁ。>>635 とかできてるしなぁ。 俺が悪かった。忘れてくれ。
654 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:47:31.03 ID:nbfEIr8Y.net] 自分の解答>>635 >>636は題意を満たしてに可能性があるかも 先頭に近い数字という条件を 構成数が最も多くなるうち最初に見つかったものという勝手解釈したが そうじゃなく辞書順的に小さい数を含むほうを選択する必要あるなら構成数が最大になるとは限らないかも 俺も自分の解答>>635 >>636を取り下げます
655 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:52:37.15 ID:nbfEIr8Y.net] >>642 となると、今のところbrute forceしかアイデアない
656 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 15:46:43.07 ID:8juwdgVG.net] >>618 C++で貪欲法 フィボナッチ数を小さなフィボナッチ数に分解するところはもっといいやり方があると思う https://paiza.io/projects/4gT7Vzo3rwr-d2V0q_vK3w
657 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 16:13:11.72 ID:1XZ2ZUlZ.net] >>644 おぉ、すごいな。上手い。
658 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 16:59:17.93 ID:nbfEIr8Y.net] >>642 のさらに考察してDPで問題なさそうだと思って>>636 のを辞書順に選択するように変えてみたけど結果変わらなかった https://paiza.io/projects/E3IiR1BZVilAaTnBITTY-w https://out.paiza.io/projects/E3IiR1BZVilAaTnBITTY-w/output.txt >>636 とのdiff取った、同じと出た https://paiza.io/projects/R-vSh83dQSqE0kq0WGagTA
659 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 17:06:57.99 ID:Z+VJIz/8.net] >>618 Squeak Smalltalk | fn | fn := [:N | | fibonacciUpTo elems ans | fibonacciUpTo := [:m | Array streamContents: [:ss | | a b | ss nextPut: (a := b := 1). [(a := b flag: (b := a + b)) < m] whileTrue: [ss nextPut: a] ] ]. ans := nil. elems := fibonacciUpTo value: N. [:exit | elems size to: 1 by: -1 do: [:m | elems combinations: m atATimeDo: [:comb | comb sum = N ifTrue: [ans := comb. exit value] ] ] ] valueWithExit. ans ]. ^(1 to: 10), {100. 1000} collect: [:N | N -> (fn value: N)] "=> {1->#(1) . 2->#(1 1) . 3->#(1 2) . 4->#(1 1 2) . 5->#(1 1 3) . 6->#(1 2 3) . 7->#(1 1 2 3) . 8->#(1 2 5) . 9->#(1 1 2 5) . 10->#(1 1 3 5) . 100->#(1 2 3 5 13 21 55) . 1000->#(1 1 3 8 21 34 89 233 610)} "
660 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 17:07:07.82 ID:nbfEIr8Y.net] >>644 何これめっちゃすごいな・・・ フィボナッチ数列に関する定理があるのか
661 名前:デフォルトの名無しさん [2016/08/23(火) 22:31:24.67 ID:xhPJKCKw.net] >>618 Rubyで。 https://ideone.com/3XA5Qw
662 名前:デフォルトの名無しさん [2016/08/24(水) 00:02:28.52 ID:hGPUmbYi.net] 良問まとめありますか?
663 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 00:04:45.93 ID:IQL/zjWi.net] 競プロなんてどうでしょう
664 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 06:31:48.04 ID:emWUYHC0.net] >>618 C言語 ideone.com/3s4puY >>619 C言語 ideone.com/n6mblc >>630 C言語 ideone.com/bPehld
665 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 12:37:09.73 ID:IQL/zjWi.net] >>652 N =< f(0) + f(1) + ... +f(k) となるkを見つけたときにf(k-1)が>>618 の題意を満たすフィボナッチの数の1つで再帰的にN := N - f(k-1)で貪欲法的に求められるのか 理屈が全然分からん 数学は奥が深すぎ
666 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 15:34:01.41 ID:DjG9ToKL.net] f(0)+f(1)+...+f(k)=f(k+2)-1だから N>=f(k+1)&&N<f(k+2)を満たすkを探してf(k-1)を選びN-f(k-1)を次のNとして再帰と言い換えたほうがわかりやすい 条件を満たす場合をちょっと式変形すると2f(k)>N-f(k-1)>=f(k)で フィボナッチ数列の今てきとーに考えたガバ不等式だと2f(k)>=f(k+1)>=f(k)で考えたら再帰の途中で N-f(kー1)>=f(k+1) && N-f(k-1)<f(k+2) みたいなkが存在しててもおかしくなさそうだけど大丈夫なのかー
667 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 16:45:04.33 ID:38RcxOvs.net] >>653 N:=N-f(k)やんか!ならf(k+1)>N-f(k)>=f(k-1)になるから帰納法で展開可能なことはすぐに証明出来そうだね おそらく>>652 はフィボナッチ数の大きい方から順に、自然数をフィボナッチ部分列で展開できるギリギリの大きさのフィボナッチ数を選んでる
668 名前:デフォルトの名無しさん [2016/08/24(水) 17:22:27.06 ID:hGPUmbYi.net] そもそも理解があやしいから確認したいが・・・ フィボナッチ数列でなるべく小さいNをとって、集合{f(1), ・・・,f(N)}で その部分の和をある数と一致させるって話?
669 名前:デフォルトの名無しさん [2016/08/24(水) 17:30:24.68 ID:hGPUmbYi.net] >>656 とすると、Nの下限は>>652 のように総和を計算すればすぐ求まるな。 しかし、任意の数はフィボナッチ数列の部分集合の和で表現できるかとか、 上でf(N)を引き算した数がN-1以下の部分集合の和で表現できるとかは簡単か?
670 名前:651 mailto:sage [2016/08/24(水) 20:06:38.41 ID:emWUYHC0.net] >>655 の言うように展開できるぎりぎりの数を順に選んでます。 とりあえず、f(0)+f(1)+...+f(n)=sum(n) とした場合、 1〜sum(n)の整数はf(0)〜f(n)の部分和で表すことができる 例)フィボナッチ数列の最初の6つ[0,1,1,2,3,5]を使えば1〜12までの数を表せる というのを前提に、与えられた数がsum(n)より大きくsum(n+1)以内なら 必ずf(n+1)が含まれるということを、残りの数が0になるまで再帰的に計算しています。 最初の前提は、数列を一辺とした正方形をつなげていくというあの形から 直感的になんとなく。1〜sum(n)がf(0)〜f(n)の数列の組み合わせで表せるなら sum(n)>=f(n+1)(n>=1の場合) なので1〜sum(n+1)もf(0)〜f(n+1)の数列の組み合わせで表せるということに なるんじゃないのかなぁと。正直全く自信ないです。 自分が書いたコードは、求めたフィボナッチ数列を配列に保存していたけど その必要全くなかったですね。 ideone.com/oUIvN8
671 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 20:50:39.06 ID:Gt3DCYIG.net] >>618 @Mathematica ideone.com/jtWvsW
672 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 19:55:54.39 ID:1lQyPTY4.net] >>657 >上でf(N)を引き算した数がN-1以下の部分集合の和で表現できるとかは簡単か? f(0)=0,f(1)=1,f(2)=1,f(3)=2,...のようにインデックスを決めておく。 命題:k>=1のときf(k+2) > N >=f(k+1)を満たす任意の自然数Nは{f(0),...,f(k)}の部分集合の和で表せる。 k=1のとき自明 k>=1で成立を仮定しk+1で命題が成り立つことを示す。 書き下すとf(f+3)>N>=f(k+2)を{f(0),...,f(k+1)}の部分列の和で表せればおk。 そこで部分列の一番大きなf(k+1)で全体を引き算すると f(k+3)-f(k+1)>N-f(k+1)>=f(k+2)-f(k+1) ⇔ f(k+2) >N-f(k+1) >=f(k) となり仮定よりN-f(k+1)は{f(0),...,f(k+1)}の部分列の和で表せる。 以上から帰納法で命題は正しい。 簡単すぎwwww
673 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 19:59:23.41 ID:1lQyPTY4.net] >>660 >となり仮定よりN-f(k+1)は{f(0),...,f(k+1)}の部分列の和で表せる。 ×N-f(k+1)は{f(0),...,f(k+1)} 〇N-f(k+1)は{f(0),...,f(k)}
674 名前:デフォルトの名無しさん [2016/08/26(金) 00:23:54.59 ID:iNPRC5gr.net] 速度が向
675 名前:上したのかどうか計るためのベースとして簡単なベンチマークテスト作った。 適当にウェイトいれて、機種・コンパイラの偏りをなくすようにしてみた。 http://ideone.com/KceBs4 ここ参考にした。 http://www001.upp.so-net.ne.jp/y_yutaka/labo/math_algo/calcbench.html [] [ここ壊れてます]
676 名前:661 [2016/08/26(金) 00:28:49.61 ID:iNPRC5gr.net] ちょい疑問がシフト演算は早いという定説はあるとおもうが。 実際、計測比較してみると足し算、引き算よりも遅い。 オーバーフローが原因で遅くなってる気はするが・・・
677 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:34:55.42 ID:46yZwIqt.net] >>663 コンパイラが最適化しちゃうからじゃね?
678 名前:デフォルトの名無しさん [2016/08/26(金) 00:47:03.70 ID:iNPRC5gr.net] 最適化対策として、計算結果を引き継ぐことで、ループ無視は防止できてるはず・・・
679 名前:デフォルトの名無しさん [2016/08/26(金) 01:07:03.15 ID:iNPRC5gr.net] 計算途中で、内部でオーバーフローか型変換が起こって遅くなってると予測してみて、 整数値で扱えない範囲にならないように、足し算のところビットORで代替してみたけど同速度だった。 単純にシフト演算が遅いだけっぽい。
680 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 01:29:53.53 ID:rbtqc2qT.net] gccのo3でコンパイルしてみたけど確かにShiftが一番遅かった どうしてこうなるかはアセンブリみれば一瞬でわかるよ
681 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 01:53:05.11 ID:rbtqc2qT.net] shiftも早くなるようにおまじないかけといたよ ideone.com/t1qv2O
682 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 01:54:53.90 ID:rbtqc2qT.net] すまんローカルだと早くなってたんだが Shift 421.0ms → 101.0ms
683 名前:デフォルトの名無しさん [2016/08/26(金) 01:56:20.02 ID:iNPRC5gr.net] アセンブラはわからないけど。 内部で型変換がおってる説が間違いとすると、計算回数だろな・・・ シフト測定はシフト+足し算をしてて、足し算測定のほうは足し算一つだけ。 足し算測定のほうを、足し算1つ上乗せして公平にしてみる。
684 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 02:01:15.45 ID:CVrNr9ea.net] clang 3.7のCで動かしたらこんなんなったんだがどういうことだ? ideone.com/5Cjgpy ちゃんと動いてないのか最適化でばっさりなのか
685 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 02:02:55.47 ID:CVrNr9ea.net] clangの方が普通に最適化が効いて、gccの方が効いてないだけか?
686 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 04:26:31.05 ID:Mbltetpr.net] gcc6.2.0使ってコンパイルしたらAVX2命令使いまくりで激速になった
687 名前:デフォルトの名無しさん [2016/08/26(金) 22:19:12.01 ID:iNPRC5gr.net] 良いベンチマーク考案中。 実際の問題を解いたプログラム / 基準ベンチマーク の時間比がほぼ一定が良い。機種、コンパイラによらず。
688 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 01:33:01.65 ID:UE0kbjNO.net] >>662 最適化対策のための出力っていうのが良く分からん あと、各々の命令の重さの係数(weight)はどうやって決めてるの?
689 名前:デフォルトの名無しさん [2016/08/27(土) 01:40:19.24 ID:7nFiTNgH.net] 必要の計算は無視される最適化に対応。、 意味はないけど最後まで計算を引き継いで出力する。各計算を和でつなぐ。
690 名前:デフォルトの名無しさん [2016/08/27(土) 01:42:17.34 ID:7nFiTNgH.net] 必要のない計算は・・・
691 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 02:40:42.60 ID:UE0kbjNO.net] なるほど、そういうことか。 シフト命令が遅いのは変数kでシフトしてるからじゃないかな。 kビットシフトするのではなく1ビットシフトをk回繰り返した方が早くなるかも?
692 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 11:38:15.27 ID:2qjvRKJV.net] つづきは個人のブログかチラシの裏でやれ
693 名前:デフォルトの名無しさん [2016/08/27(土) 12:50:08.51 ID:8oHlLwTt.net] お題: 数字が書かれたn枚の紙切れが袋に入っています。 この袋から紙切れを取り出し、数字を見て袋に戻すということをx回行います。 x回の紙切れの数字の和がmになる確率を返す関数fを定義してください。 (let ((k '(1 3 5)) (m 10) (x 4)) ; n = 3, m = 10, k = {1, 3, 5}, x = 4 (f k m x)) => 16/81 (let ((k '(1 3 5)) (m 9) (x 4)) ; n = 3, m = 9, k = {1, 3, 5}, x = 4 (f k m x)) => 0/81 (let ((k '(1 2 3 4 5)) (m 15) (x 5)) ; n = 5, m = 15, k = {1, 2, 3, 4, 5}, x = 5 (f k m x)) => ?
694 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 14:21:38.42 ID:/lPBBpET.net] 同じ数字の紙は何枚あってもいいの? 全部違う数字? 入っている数字はmより小さいの?
695 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 14:28:53.21 ID:/lPBBpET.net] ああ、ごめん。忘れてw
696 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 14:54:16.82 ID:9mBmz7KO.net] >>680 ideone.com/6XEpQt C++。モンテカルロ。サンプル数少なすぎて収束してない。 確立はよくわからん。
697 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 15:28:29.92 ID:9mBmz7KO.net] >>683 をちょびっと整形した。 ideone.com/l9zgpe
698 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 16:50:12.54 ID:FbbA5YyG.net] >>680 Java ideone.com/6BEAKE
699 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 18:38:18.89 ID:F1nYMYS3.net] >>680 C(C99) ideone.com/IRsTjt
700 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 23:43:10.10 ID:8oHlLwTt.net] >>630 Emacs Lisp (defun g (l s i) (if (null l) t (let ((x (funcall (nth (% i 2) '(+ -)) s (car l)))) (when (<= (abs x) 10.0) (g (cdr l) x (1+ i)))))) (defun f (l) (g l 0 0)) f (f '(2 4 2 4 2 4 2 4 2 4 0)) t (f '(2 4 2 4 2 4 2 4 2 4.1 0)) nil (f '(2 4 1 10 10 1 4 2 0)) nil (f '(3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3)) t
701 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:20:07.72 ID:9IFYhCBA.net] あなたはN円分の商品を1個購入することになりました。 おサイフの中には1,5,10,50,100,500円玉がそれぞれ1000枚あります。 価値の高い硬貨を優先に支払いに回すときに、それぞれの支払いに使う硬貨の枚数を求めよ 出力はカンマ区切りで左から1,5,10,50,100,500円の順に枚数を出力しなさい 例題 N=1111 出力 1,0,1,0,1,2 1円が1枚、10円が1枚、100円が1枚、500円が2枚なのでこうなります
702 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:22:27.37 ID:gdb/jxff.net] ちょっと財布を想像して吹いたw
703 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:26:10.45 ID:CCZyZi8n.net] >>688 それ1000枚の条件いるの?
704 名前:デフォルトの名無しさん [2016/08/28(日) 22:06:25.06 ID:sxo5kh14.net] >>688 Rubyで。 https://ideone.com/fRleLH
705 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 22:43:07.98 ID:FpzTx2tv.net] >>688 Emacs Lisp (require 'cl-lib) (setq purse (sort (append (make-list 1000 1) (make-list 1000 5) (make-list 1000 10) (make-list 1000 50) (make-list 1000 100) (make-list 1000 500)) #'>)) (defun f (N purse payment) (assert (and (integerp N) (> N 0))) (if (null purse) "" (let ((x (car purse))) (cond ((> x N) (f N (cl-remove-if #'(lambda (c) (= c x)) purse) payment)) ((< x N) (f (- N x) (cdr purse) (cons x payment))) ((= x N) (cl-reduce #'(lambda (a b) (concat a "," b)) (mapcar #'(lambda (c) (number-to-string (count c (cons x payment)))) '(1 5 10 50 100 500)))))))) (f 1111 purse '()) "1,0,1,0,1,2" (let ((max-lisp-eval-depth most-positive-fixnum) (max-specpdl-size most-positive-fixnum)) (f 500500 purse '())) "0,0,0,0,5,1000" (let ((max-lisp-eval-depth most-positive-fixnum) (max-specpdl-size most-positive-fixnum)) (f 666001 purse '())) ""
706 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 00:10:36.80 ID:G+hsDqDY.net] >>688 C++で
707 名前: http://ideone.com/p4dwIW >>690 まあ本質的な意味はないけど一応1000枚の条件で答えは変わるぐらい N=500500 0,0,0,0,5,1000 [] [ここ壊れてます]
708 名前:デフォルトの名無しさん [2016/08/29(月) 10:41:31.05 ID:6rwIECPC.net] まえにあった問題の解法が不明。 nに対して、2次元平面の円で、その円周上の整数点がちょうどn個となる円の最小半径を求める問題。
709 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 16:45:06.30 ID:fFx5B9de.net] >>694 問題関係のレスと自分が書いたコード見直したが、何やってるのかわけわからんくなってたから困るww
710 名前:デフォルトの名無しさん [2016/08/30(火) 01:05:58.62 ID:0bBTSjL7.net] 整数 a(0)、・・・、a(n)が与えられた時、 すべてのi に対して、 a(i) + c ≡ 0 (mod m)が成り立つような m、c >1を求める問題。
711 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 01:20:54.99 ID:XiF8vPmR.net] はい。
712 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 03:54:00.29 ID:ccTd05WG.net] >>694 前スレからもってきたけど円の中心点の情報は書いてくれよ、めちゃくちゃ重要だろ 41 :デフォルトの名無しさん:2015/05/01(金) 14:31:24.98 ID:9G1+bMO9.net お題:ちょうどn個(1 < n)の格子点(x座標もy座標も整数の点)を通る円の半径の 最小値を求める。円の中心点は格子点でなくてよい。 例 n=2 -> 0.5 n=5 -> 16.170331 n=6 -> 2.5
713 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 07:35:24.70 ID:o3zijpP7.net] >>680 Common Lisp ideone.com/yyVA7g >>688 C++11 ideone.com/rNuPAy
714 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 11:00:38.72 ID:bKDKxVCe.net] >>698 そのn=5は間違えてるから訂正しとく N=5 (1/6,1/6) R=5.892557 R^2=625/18
715 名前:デフォルトの名無しさん [2016/08/30(火) 11:59:20.10 ID:0bBTSjL7.net] >>698 個数4N個のときは最小半径と整数点を簡単に求める方法見つかった。 個数4、8、12、16、20、24・・・・のとき。 4で割って1余る素数を最初に求めておく。 5、13、17、29、37、41・・・・・ Nを適当に積に分解して、N = a(1) * ・・・ *a(i) 、a(1) >= a(2) >= ・・を満たすようにして。 半径2乗を5^(a(1)-1) * 13^(a(2)-1) * 17^(a(3)-1)・・・・とする原点中心の円周の格子点の数は、4N個。 最小半径をあたえるNの積分解を一発で求めるアルゴリズムはしらんが、この方針で間違いないはず。
716 名前:デフォルトの名無しさん [2016/08/30(火) 12:11:16.96 ID:0bBTSjL7.net] まちがってた・・・・これと比較してみたら。 たとえば 8個のときは (2x-1)^2 + (2y-1)^2 = 5 12個のときは、(2x-1)^2 + (2y-1)^2 = 5^2 16個のときは、(2x-1)^2 + (2y-1)^2 = 5*13 20個 のときは、(2x-1)^2 + (2y-1)^2 = 5^4 でいいらしい。 >>701 を2で割ったらほぼ合ってるかと・・・ 118 名前: 投稿日:2015/05/14(木) 19:56:36.53 ID:rp22TBsk >>118 俺が計算したのではこんなん ただし半径256以上は最小じゃないかも知れないから注意 ideone.com/2WBTbl
717 名前:デフォルトの名無しさん [2016/08/30(火) 12:28:56.64 ID:0bBTSjL7.net] >>702 によると、41個の場合の方程式は、 (14x-1)^2 + (14y-1)^2 = 5^2 * 13^2 * 17^2 * 41^2 らしい。 予想するとこれはより半径を縮められるはず。 たとえば、適当に a、b、cをとれば、 ( ax + b)^2 + ( ax + c)^2 = 5^2 * 13^2 * 17^2 * 29^2 の格子点数が41個にできる可能性。 右辺はこれに限るとは言い切れないけど。 最初の右辺でもいまのでも、原点を通る円 x^2 + y^2 = ・・・としてはどちらも格子点数は4*3*3*3*3=324個のはず。
718 名前:デフォルトの名無しさん [2016/08/30(火) 12:45:23.63 ID:0bBTSjL7.net] 324/7 = 46.28、 324/8 = 40.5なので、 >>703 でaは8以上だと、41点以上生成できないはず・・ aは7もしくは14で決め打ちして。2倍するのだけは特別でこれは解個数を変化させない可能性。>>702 と同様。 しかし2倍しないほうがよリみつかりやすいはず・・ 適当にa、bをとれば ( 7x + a)^2 + ( 7x + b)^2 = 5^2 * 13^2 * 17^2 * 29^2 の形で41点生成できると予想。
719 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 13:17:27.27 ID:bKDKxVCe.net] 5^2 * 13^2 * 17^2 * 41^2で出てくるのは39点と42点じゃないかな? 数学の事よくわからないけど。
720 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 13:23:30.96 ID:bKDKxVCe.net] おっと間違えた 5^2 * 13^2 * 17^2 * 29^2 の形で出てくるのが39点と42点な
721 名前:デフォルトの名無しさん [2016/08/30(火) 13:55:35.84 ID:0bBTSjL7.net] いや数学的な裏付けなどなく、たんなる予測だけど・・ いま検証コード作成中。
722 名前:デフォルトの名無しさん [2016/08/30(火) 15:04:25.03 ID:0bBTSjL7.net] >>706 そのとおりだったわ。どういう理屈? あと、計算が間違ってなければ>>703 は解なしで、41点でてくる方程式は (7x-1)^2 + (7y)^2 = 5^2 * 13^2 * 17^2 * 41^2 だった。
723 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 15:29:46.99 ID:bKDKxVCe.net] >>708 理屈はわからんw 昔書いた探索コードでそのまま格子点数出せそうな感じだったので、 5^2*13^2*17^2*29^2を突っ込んでみたら39と42が出ただけw んで、半径として考えるとN=41は (7x-1)^2 + (7y)^2 = 5^2 * 13^2 * 17^2 * 41^2ではなく、 (14x-1)^2 + (14y-1)^2 = 2 * 5^2 * 13^2 * 17^2 * 41^2になるんかな。
724 名前:デフォルトの名無しさん [2016/08/31(水) 16:46:14.27 ID:9ufvv7Gu.net] 円の格子点のやつは、P=NPとかいった計算理論の話題とみて、難しいクラスでは? 素因数分解とか、巡回セールスマン問題と較べても計算困難では? ( Ax + B)^2 + ( Ax + C)^2 = R^2は半径はR/Aだけど、RもAも無限大までしても、最小半径になる可能性があって。 一つ解けた半径が、最小値なのかすら調べられない気が・・ AかRに上限あるとでも証明できれば別だが。
725 名前:デフォルトの名無しさん [2016/08/31(水) 19:35:22.89 ID:9ufvv7Gu.net] たとえば、2点のときの最小半径は0.5らしいが・・・ 方程式は(2x)^2 + (2y-1)^2 = 1で。 a 十分大で、r/a < 0.5 を満たすとして、( ax -b )^2 + ( ay -c )^2 = r^2の格子点数が2点のみとなる場合はないのか?
726 名前:デフォルトの名無しさん [2016/08/31(水) 19:38:46.35 ID:9ufvv7Gu.net] >>711 が合ってた場合、最小半径はいくらでも小さくできると予想。 >>711 が合ってない事を証明できる人いる?
727 名前:デフォルトの名無しさん [2016/08/31(水) 19:40:33.34 ID:9ufvv7Gu.net] すまん。そんなわけがなかった。半径が小さすぎれば図を書いてみて格子点が発生しない。
728 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 19:47:55.57 ID:p1K5Mzky.net] 半径が自然数で中心が原点ならピタゴラス数の数を調べればわかるんだけどな。
729 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 19:49:26.51 ID:NSLbELcw.net] その相似形は等価?相似検出するのメンドクセーけど。
730 名前:デフォルトの名無しさん [2016/08/31(水) 20:41:09.29 ID:9ufvv7Gu.net] 円内部の格子点数を不等式で挟める式あった。 少し大きい円、少し小さい円のドーナツ型にしたら、円周上の格子点数の理想値が求まるかと・・・ ガウスの円問題 原点を中心とした半径rの円の内部(境界を含む)にある整数点の個数をR(r)で表す. R(r)は円の面積の推定値を与える.R(100)/100^2 = 3.1417 ガウスは |R(r)-πr^2|<crを示したが,|R(r)-πr^2|<cr^k となるkの最小値を求める問題に一般化される. シェルピンスキーはk≦2/3を証明し,ガウスのk=1を改善. 1963年に陳景潤はk≦24/37を,1990年にハクスリーはk≦46/73を得た. k=1/2と予想されている. www.geocities.jp/ikuro_kotaro/koramu/834_r2.htm
731 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:41:41.64 ID:p1K5Mzky.net] 半径rのときの点の最大数は bごとにaを変化させていってx、yが同時に整数になる数の最大数だな。 x=r (cos a +cos b) y=r(sin a+ sin b)
732 名前:デフォルトの名無しさん [2016/09/01(木) 00:30:32.18 ID:F9uf4uEu.net] R(r) 半径rの円の内部の整数点の個数 L(r) 半径rの円の円周上の格子点の個数として。 rより小さいsをとれば、 L(r) <= πr^2 + cr^k - ( πs^2 - cs^k ) 、s -> rとして =2cr^k >>716 にはcの値が書いてないが適当にc=7/2として、 よりよい評価したいのでk=1/2とすると、L(r) <= 7√r うまく円周上に格子点を配置できたときの上限が7√r。 円周上の格子点を 32点生成できるrはr^2 = 5*13*17/2 64点生成できるrはr^2 = 5^3*13*17/2 らしいので 上の公式で計算してみると 上 = 7√r = 33.9375 下 = 7√r = 75.8867 評価式の性能はいまいち。 評価値とぴったり一致すれば最小半径が証明できるとおもったが使えない。
733 名前:デフォルトの名無しさん [2016/09/01(木) 01:40:05.53 ID:F9uf4uEu.net] しかし、評価式のべつの使い道があるな。 L(r) < 7√rは正しい前提として。 たとえば、100点生成できる半径を求めようとしたとき、 L(203) < 99.7346 だから、半径が203以下ではムリだと判明する。探索するとき幅は狹められる。
734 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 08:42:57.18 ID:d9inzlx2.net] どこかほかでやってくれないかな…
735 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:50:15.31 ID:wr8HVpEY.net] そうだな。そもそも単なる数学の問題を お題化したって、どうせ宿題なんだろって思ってしまう
736 名前:デフォルトの名無しさん [2016/09/02(金) 16:08:29.58 ID:szLK569k.net] 円周の格子点は一年半弱まえのやつだし、数学、数学の宿題の範疇では解けるとはおもえない。 僅かでも円のイチをずらせば格子点がまったく無くなったりするわけで コンピュータの力技は必要だろ? ある程度、探索範囲をせばめることはできても検証でプログラムいるとおもう。
737 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 19:02:35.81 ID:VYGld2xC.net] 思考垂れ流しうんこマンが自重してくれればそれでいい 一人で連投してんじゃねー
738 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:03:49.13 ID:enD9pirT.net] 「論よりコード」
739 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 21:05:07.04 ID:+wy8tThR.net] この流れならむしろ数学板でもいいとおもう
740 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 21:52:48.00 ID:e1jBggiu.net] お題: 下図のように山の麓(標高0)の両側にいるA君B君が頂上(標高10)を目指して同時に出発する ただし、A君B君のいる位置の標高はどの時刻でも等しくなるように登らなければならない (下図でA君が標高7の峠から標高3の谷へ下るときにはB君は来た道を引き返す必要がある) 標高1だけ上るor下るのに1時間かかるとして頂上まで最短で何時間かかるか求めよ 10 7 /\ /\/3 \ A 0/ \0 B 山の形状は以下のような文字列で表現する 1)文字列の先頭と末尾はA君B君のスタート地点(標高0)を表し、必ず'0'である 2)ゴールの頂上(標高10)の位置は':'で表す(文字コードがちょうど':'='0'+10なので) 3)途中の峠と谷の標高を'1'〜'9'で表す(上図の山の形状は"073:0"と表される) 4)途中の峠と谷は交互に現れるようにする(例えば"037:0"は無し) テスト例 "073:0" -> 18 "07362:450" -> 36 "06464:36470" -> 42 "0827171:28480" -> 66 "0737491:28180" -> 146 "05374734372747484:184618186912120" -> ?
741 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:34:33.91 ID:hbWVf6eK.net] A:012101.... B:012123... 詰む気がするんだけど
742 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 04:18:59.59 ID:P0QwwpBf.net] >>726 c++ https://ideone.com/2sIaGw とりあえず、サンプルが通ったからsubmitって感じ。
743 名前:デフォルトの名無しさん [2016/09/03(土) 08:16:17.90 ID:QWBdU6+p.net] 一年半弱立っててもまともなコードがあがってない難問。 論、一部結果はでてるが有効打ゼロ。
744 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 18:06:05.39 ID:fVb/pFms.net] >>728 https://ideone.com/2sIaGw (上書き修正) BFS版を追加して、それを本採用 ※依然として低い高さ制限=10に甘えたコードになっている
745 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 20:46:56.74 ID:hrFRXovl.net] >>604 OCaml(勉強中) ideone.com/fRBQlj F#と並行してその元になってるOCamlの勉強も始めてみました yukicoderで同じ問題やったらOCamlの方が実行時間8倍速、使用メモり1/7くらいだった・・・
746 名前:デフォルトの名無しさん [2016/09/04(日) 04:44:05.42 ID:swx+XD0y.net] >>726 Ruby https://ideone.com/LcrSC5
747 名前:デフォルトの名無しさん [2016/09/04(日) 10:12:56.94 ID:AIgtYd56.net] 円周の格子点は、 平面上の0-45度部分へ整数点の中心(a,b)を取って 原点を通る円、 (x-a)^2 + (y-b)^2 = r^2, (r^2 =a^2 + b^2)をベースに 整数mをとって解個数を1/m以下にする操作、 (mx-a)^2 + (my-b)^2 = r^2を考えればよさげ。 これならa,b,mは小さい順に無駄なく動かせ網羅できるかと。
748 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:51:14.83 ID:+9WebUQ3.net] >>733 論よりコード もしくは演算結果
749 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 01:44:45.83 ID:Bbadz6db.net] >>726 Emacs Lisp (require 'cl-lib) (defun f (s) (let* ((e (reduce (lambda (a b) (concat a (substring b 1))) (mapcar (lambda (x) (let ((a (car x)) (b (cdr x))) (macrolet ((c (d) `(loop for i from a ,d b concat (string i)))) (if (< a b) (c to) (c downto))))) (loop for i from 0 below (1- (length s)) collect (cons (aref s i) (aref s (1+ i))))))) (f (position ?: e)) (g (substring e 0 (1+ f))) (h (apply #'string (reverse (string-to-list (substring e f))))) (w 0) (y '(((0 . 0) 0 nil)))) (while y (let ((i (caaar y)) (j (cdaar y))) (if (and (= (aref g i) ?:) (= (aref h j) ?:)) (setq w (cadar y) y nil) (setq y (append y (mapcar (lambda (x) (list x (1+ (cadar y)) (cons (cons i j) (caddar y)))) (remove-if (lambda (x) (or (< (car x) 0) (< (cdr x) 0) (find x (caddar y) :test 'equal) (/= (aref g (car x)) (aref h (cdr x))))) (list (cons (1+ i) (1+ j)) (cons (1+ i) (1- j)) (cons (1- i) (1+ j)) (cons (1- i) (1- j))))))))) (pop y)) w)) (f "073:0") 18 (f "07362:450") 36 (f "06464:36470") 42 (f "0827171:28480") 66 (f "0737491:28180") 146 (f "05374734372747484:184618186912120") 400 (f "021:120") 12 (f "091:280") 62
750 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:34:40.70 ID:U1OL4Uha.net] >>726 Haskell ideone.com/SHS7xc
751 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 09:47:06.73 ID:lP0lbdh9.net] お題: Hello, World! を円形にして出力。 円形の定義、CUI, GUI どちらでやるかも自由。 丸くなっていれば良しとする。
752 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 16:48:28.87 ID:cNnBFZuZ.net] >>737 Javascript codepen.io/anon/pen/VKvNOg
753 名前: [] [ここ壊れてます]
754 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 03:30:08.30 ID:jvr3tDVu.net] ideone.com/cGLp0X C++。イデオンで再現しようと思ってエスケープシーケンス検索したら、 win10の以前のアップデートで限定的に復活してたので使ってみた。 イデオンでは通らなかった。Orz
755 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 03:30:44.87 ID:jvr3tDVu.net] 画像つけ忘れた。Orz sssp://o.8ch.net/gsxd.png
756 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:28:14.57 ID:ziymAouq.net] >>694 https://ideone.com/wVBe61 (コードではなく計算結果) 円周上の格子点、高速化頑張ったら15分でこれ位行けるようになった@PentiumG6950 https://ideone.com/lpXRWS こっちは1年前にUPしたけどスレに貼らなかった計算結果…結構長い時間かけて計算したような覚えがある。
757 名前:デフォルトの名無しさん [2016/09/13(火) 11:57:17.52 ID:EheVVWlB.net] 円周の格子点問題は、数学でもプログラムでも一発で解答できる決定版はなさげで 力業をいかに高速化するかにかかってるとおもうな。
758 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:05:57.03 ID:UfB/Iygd.net] 直径nキロメートルの円があります。 手島と大嶋は時計回りに円周上を走ることになりました。 手島は秒速tセンチメートル、大嶋は分速oメートルで走ります。 0<n<100000000 0≦t≦10000000 0≦o≦10000 0<m<1000000 大嶋が円をm周した時に手島はn周出来たか出力しなさい。 ■標準入力 1行目がn、2行目がtとo、3行目がm n t o m ■標準出力 n
759 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:44:49.89 ID:c6Y5aSJz.net] >>743 nが2回出てきてるんですが っていうか、答えは整数実数どっち? 後者なら有効数字はどうするの?
760 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:45:20.45 ID:jvr3tDVu.net] 時計ですなー。
761 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 13:35:13.01 ID:ziymAouq.net] >>743 Java https://ideone.com/nWux6W 直径って出力に関係ないよね…?
762 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:16:40.62 ID:Hd4kFj6N.net] >>737 C ideone.com/JZTL1J >>743 C ideone.com/sIdSFq
763 名前:デフォルトの名無しさん [2016/09/14(水) 00:16:05.45 ID:U8aDu041.net] >>743 Rubyで。 input =<<END 2.5 100 200 10 END n, t, o, m = input.split.map { |e| e.to_f } p 3 * m * t >= 5 * o * n
764 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 18:32:15.94 ID:XNPp97JV.net] 地球の半径ですら6400キロなのに 直径100000000キロまで設定している>>743 って。。。
765 名前:デフォルトの名無しさん [2016/09/14(水) 21:22:01.11 ID:lCv5R5I7.net] 宇宙人なんだろう 観測史上最大の星 L1551 IRS5 だと1e8じゃあまだまだ足りんぞ
766 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:19:45.34 ID:9oYup838.net] 出題出来るオレ、カッケー とか思って調子に乗ってやったんだろ、どうせ。 今頃恥ずかしくてこのスレも見ていないだろ。 こういう奴はdat落ちして新スレに移行するか、最新50くらいの 過去ログが流れてしまった頃に 素知らぬ顔してまた書き込み出すぜ。
767 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:44:49.56 ID:goOJLnhv.net] 山下雄介
768 名前:デフォルトの名無しさん [2016/09/21(水) 12:22:41.32 ID:Fil1hk+D.net] Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、 JS, Flash, PHP, C++, Java, C#, Python に書き出せる。 Windows8.1対応 IDEは、FlashDevelop このサイトで、ブラウザでプログラミングして、実行できる Try Haxe ! try.haxe.org/ Haxeプログラミング入門、尾野政樹、2015
769 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 00:14:12.32 ID:x19ZT2Us.net] お題:足がコンパスのロボット 足がコンパスのようになっており、片足を支点にして交互に回転しながら歩くようなロボットがあります。 回転半径は1メートルで固定です。その回転角度は10〜360°まで設定できるのですが、 実際に動かすと、その設定範囲内で1歩毎に常にランダムの角度で動いてしまいます。 例えば90°に設定すると、1〜90の範囲で1°間隔にてランダムな回転角度です。 スタート地点にこのロボットを置き、1000歩、歩かせた場合、 最もスタート地点から遠ざかってしまう可能性が高い設定角度は 10°、30°、45°、60°、90°、180°、270°、360°のうちどれでしょう?
770 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 00:25:35.81 ID:va8I6tp2.net] 回転角度は10度以上360度以下の整数で 設定がn度のとき、1,2,3,...,n度で歩く確率がそれぞれ1/nってこと? 設問がよくわからない
771 名前:753 mailto:sage [2016/09/28(水) 00:27:45.52 ID:x19ZT2Us.net] >>754 訂正します。 最もスタート地点から遠ざかってしまう可能性× 最も歩く範囲面積が大きくなる可能性○
772 名前:753 mailto:sage [2016/09/28(水) 01:05:00.83 ID:x19ZT2Us.net] >>756 面積は必要なかったw 最も歩く範囲が大きくなる可能性○
773 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 01:08:31.73 ID:va8I6tp2.net] 歩く範囲って何? そしてその範囲にどういう順序を導入すんの?
774 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 01:31:23.36 ID:x19ZT2Us.net] >>758 どうしようかな・・・ 例えば、ロボットが大きな円盤に乗っている。ロボットを中心に置く。 1000歩歩かせた場合、一番大きな円盤を必要とする設定は概ね何度でしょう? ってのがいいかな。
775 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 01:44:05.92 ID:vAKZVh2k.net] なんという泥縄...
776 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 02:12:02.41 ID:E00q6b/l.net] 設定が360度の場合、1度〜360度でランダムなのか10度〜360度でランダムなのか
777 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 02:13:21.23 ID:E00q6b/l.net] て書いてあったわすまん
778 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 02:18:42.43 ID:E00q6b/l.net] >>754 Java https://paiza.io/projects/CDqrMJ9Uzeu_xuPBk77a3Q これで良いんかの
779 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 02:45:02.35 ID:E00q6b/l.net] うん、>>763 バグってるねw https://paiza.io/projects/y_4Q-6RWYYRQul600Fxw7A
780 名前:753 mailto:sage [2016/09/28(水) 09:28:28.82 ID:5Q2VSD5F.net] >>764 正解!
781 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/28(水) 23:43:35.22 ID:fvrxpn3K.net] お題:X-Y散布図のデータが与えられると、データの特徴を出力するプログラムを作れ。
782 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 00:41:48.24 ID:jq9v4dMk.net] 質問。出力の型はな〜に?
783 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/29(木) 00:56:33.41 ID:4ynE22uh.net] >>767 決まっていない。
784 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/29(木) 01:02:42.83 ID:4ynE22uh.net] Xが変化しないなら、「Xは定数と思われます」。 統計的特徴として、最大値、最小値、平均値など。 相関の有無など。 データの特徴を学習させるときに使えたらなと思う。
785 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/29(木) 01:09:09.41 ID:4ynE22uh.net] >>767 ごめんごめん、型は文字列がいいや。
786 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 01:18:25.34 ID:5Ed1CqY4.net] プログラミングの問題じゃねーなそれ
787 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/29(木) 01:24:57.46 ID:4ynE22uh.net] お題:数列の規則性を分析して一般項のC言語式を推定するプログラム。
788 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 01:26:33.81 ID:iWzko7DS.net] 変な奴きたなおい
789 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 11:07:09.92 ID:S1ISAJ/O.net] お題: 次の文章が成り立つように( )の中に数を入れよ(10進数の算用数字の形で)。 『この文章の中に 0は( )文字、1は( )文字、2は( )文字、3は( )文字、4は( )文字、 5は( )文字、6は( )文字、7は( )文字、8は( )文字、9は( )文字、 算用数字は( )文字あります』
790 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 11:12:05.26 ID:3fQeuqpk.net] 前にそれ見たことあるけど。問題ちょっと違うけど。
791 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 13:26:29.91 ID:HDXVl+rI.net] >>774 複数解あるから全部列挙しろって事? Ruby 2.3.1 $><<'『この文章の中に 0は(%d)文字、1は(%d)文字、2は(%d)文字、3は(%d)文字、4は(%d)文字、 5は(%d)文字、6は(%d)文字、7は(%d)文字、8は(%d)文字、9は(%d)文字、 算用数字は( )文字あります』'%[1,7,5,1,1,2,1,2,1,1,22]
792 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 17:18:56.68 ID:Y6l190wq.net] 数字と漢数字を相互に変換するプログラムを作成お願いします。 出来ればC#でお願いします。 例 111231243235436 <==> 百十一兆二千三百十二億四千三百二十三万五千四百三十六
793 名前:デフォルトの名無しさん [2016/09/30(金) 17:34:05.09 ID:CijhFsAG.net] じぶんでやれ
794 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 19:16:59.63 ID:GrCnAQwz.net] おーくせんまんおーくせんまん
795 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 15:45:59.82 ID:g8fgU4gY.net] お題と見せかけてプログラム作成依頼する奴って性格悪そう
796 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 17:22:57.31 ID:Hi+y6PXx.net] じゃぱぁーん!
797 名前:デフォルトの名無しさん [2016/10/01(土) 23:29:57.15 ID:sU5CeuPC.net] >>777 Ruby ideone.com/fKqGcR
798 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 10:09:53.98 ID:tpSAAMa5.net] 逆方向が難しいな
799 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 10:28:30.05 ID:9tnsJKRL.net] そうなの? いまから取り組む予定だったけど そんなに難しいんなら止めよっと
800 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 11:51:51.24 ID:QvMQ+uX0.net] 難しくはない 面倒くさいだけで
801 名前:デフォルトの名無しさん [2016/10/02(日) 17:21:53.04 ID:k1HK9CGy.net] >>777 Rubyで両方向。 ideone.com/vTwBZc
802 名前:デフォルトの名無しさん [2016/10/02(日) 21:03:52.42 ID:YNMJXJ08.net] お題:3×3×3のルービックキューブを最小手数で6面揃えるプログラム
803 名前:デフォルトの名無しさん [2016/10/02(日) 21:10:43.76 ID:w8w2bVqI.net] すいません>>787 は自己解決しました
804 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 21:17:54.22 ID:YgSevYt1.net] 自己解決ってなんだ
805 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 02:19:06.57 ID:afA6oe1A.net] >>777 ruby 2.0.0 ideone.com/uwKDDc ・マイナスを▲で表現するアイデアは>>786 さんから無断で拝借しました ・テスト部分のコードも>>786 さんから無断で拝借しました
806 名前:デフォルトの名無しさん [2016/10/03(月) 07:04:42.97 ID:g0wnVkPc.net] >>790 サンクス
807 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 15:18:20.56 ID:wy4v0QcT.net] >>787-789 ワラタw
808 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:25:42.73 ID:lIBXU/7G.net] 数独ソルバーで任天堂問題解こうと思ったら、2000万年かかるようになった。Orz 総当たりだとキツイなぁ。数独は。平均サジェスト数が2個の81乗。死ぬわ。
809 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:29:48.53 ID:lIBXU/7G.net] cp1.nintendo.co.jp/ruby.html ここから入門。
810 名前:デフォルトの名無しさん [2016/10/03(月) 21:33:29.69 ID:RKI08UEe.net] 任天堂問題とは?
811 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:40:47.39 ID:lIBXU/7G.net] >>795 俺が作った造語。すまんな。 >>794 のページから問題解いてくとアルヨ。
812 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:59:25.51 ID:hxqof8pD.net] Rubyの自作ヘボ数独ソルバーですらコンマ以下で解けたぞ
813 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:19:26.57 ID:lIBXU/7G.net] >>797 俺あんまりロジック解くの得意じゃないからねぇ。 C++でかいたけど、総当たりは筋が悪いことはわかったよ。
814 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:24:43.42 ID:aKvG7AoT.net] 総当たりから不要なパターンを省いていくのも一つの手だと思う
815 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:25:59.85 ID:hxqof8pD.net] >>797 基本ルール:ある数字と同じ列(or行or3*3の正方形)にはその数字が入らない これだけでも実装して後は背理法でやればすぐ解けると思うぞ 解の一意性がどうかとか細かいこともあるけどこの問題は一意的に求まるから関係ないし
816 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:27:06.95 ID:lIBXU/7G.net] ideone.com/afSrEW ここからどうしたらいいと思う? i7-6700でも2000万年かかる。
817 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 01:44:53.95 ID:a8C2punc.net] >>793-794 昔書いたソースコードを流用した ideone.com/ibTP88
818 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 01:58:03.23 ID:FAQ7jfY8.net] >>802 グレート! すごいな、イデオン時間で解けるもんなんだなぁ。うーん。俺は修業が足りんな。 俺も結構書いたかと思ったけど全然うわてだ。 ロジック解くときはやっぱこれくらい書かないとダメかー。 ひぎぃ、頭がフットーしちゃうよぉ〜。
819 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 02:23:25.94 ID:a8C2punc.net] >>803 数独は有名な解き方がいくつかあるので、それを知らないと難しいかも いくつもある解き方を実装するのは面倒なのでバックトラック法でやるのがいいと思う
820 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 02:52:38.24 ID:FAQ7jfY8.net] >>804 情報ありがとう。いいものが見れた。
821 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 19:40:37.29 ID:wFGKqamD.net] お題:任天堂の倒し方をプログラムせよ。
822 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 21:58:16.07 ID:ZRyYrZJK.net] 大作だなあ…
823 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 23:47:40.64 ID:YN9fMNzy.net] 「方法をブログラムせよ」ってのが謎なんですが
824 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 23:50:15.04 ID:FAQ7jfY8.net] 日本語で。 株を買います。株主総会でゴネマス。倒せます。
825 名前:デフォルトの名無しさん [2016/10/05(水) 00:49:13.06 ID:JfbCSBrf.net] >>806 プログラムしたよ。
826 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 19:29:14.00 ID:Bgv24eMU.net] 任天堂の倒し方を知っていると 言っていた面接官は
827 名前:デフォルトの名無しさん [2016/10/05(水) 19:35:13.81 ID:ljdAnrxD.net] お題:激問
828 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:44:58.11 ID:d6ezgCbb.net] >>793 ideone.com/cILqPg C++。 やっと解けたよー。ほとんどデバッグも整形もしてないけど、答えはあってるかも。 2000万年が0秒になった。頭タコすぎて泣けるわ。 頭がフットーする。 >>802 に感謝。
829 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:45:50.48 ID:iBWfgtGO.net] print "任天堂の倒し方"
830 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:56:56.37 ID:NHEuemUY.net] ヒントページ見れば苦労せずに誰でも書けそうなもんだが
831 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 22:05:52.60 ID:d6ezgCbb.net] >>815 ルビー読めません。Orz
832 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 17:02:16.03 ID:VkVdfdR0.net] スタックを操作するプログラムまたそれを表示するプログラムをお願いします
833 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 17:48:54.19 ID:Gk0vxqlO.net] 狩野英孝のものまねで「スタックー」って叫べばOK
834 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/06(木) 18:13:10.02 ID:KbZqo+3y.net] >>817 自動変数のアドレスはスタックへのポインターになる
835 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 19:29:47.14 ID:LwTuJfQY.net] スタックを操作するプログラムってこんなんでいいのかな? #include <malloc.h> #include <stdio.h> #include <string.h> unsigned char data[6] = {0x68,0,0,0,0,0xc3}; unsigned int func() { unsigned int *p; p = malloc(1024); memcpy(p,data,6); *((unsigned int*)&data[1]) = *((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*))); *((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*))) = (unsigned int)p; printf("0x%X\n",*((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*)))); return *((unsigned int*)&data[1]); } int main(void) { printf("0x%X\n",func()); return 0; }
836 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 19:48:03.50 ID:LwTuJfQY.net] >>820 すまん、これ間違ってますねぇ・・・ スタックの操作って環境依存な気がするけどどうなんでしょう
837 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 20:04:22.70 ID:SdPd3klr.net] え?データ構造の練習の話じゃなくてプログラムの一時領域の話? ちなみにここは宿題スレじゃない。
838 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:15:35.91 ID:dAHZcQmf.net] スマホで入力した数字を出力しなさい Sは0から9までの数字とcと+と-からなる文字列 0<S<1001 Sの先頭は数字から始まる Sの最後に+と-がこない cは入力済みの数字をクリアする +は左辺に1を足し、-は右辺に1を引く Sに数字が含まれていなかったり、cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること ■stdin 5+1-32c8 ■stdout 8 ■stdin 32+8 ■stdout 338 ■stdin +24c25 ■stdout ERROR
839 名前:修正 mailto:sage [2016/10/06(木) 21:16:30.92 ID:dAHZcQmf.net] スマホで入力した数字を出力しなさい Sは0から9までの数字とcと+と-からなる文字列 0<S<1001 Sの最後に+と-がこない cは入力済みの数字をクリアする +は左辺に1を足し、-は右辺に1を引く Sに数字が含まれていなかったり、cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること ■stdin 5+1-32c8 ■stdout 8 ■stdin 32+8 ■stdout 338 ■stdin +24c25 ■stdout ERROR
840 名前:修正 mailto:sage [2016/10/06(木) 21:17:13.95 ID:dAHZcQmf.net] Sの最後に+と-がこない ↑この1文も削除
841 名前:修正 mailto:sage [2016/10/06(木) 21:18:37.24 ID:dAHZcQmf.net] 119+5 なら1205
842 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:55:36.99 ID:hrJ3iBy7.net] この+,-ってスマホの入力とどういう関係があるの?
843 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:59:09.52 ID:HEfd0Rj6.net] また山下雄介か
844 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 10:59:44.51 ID:1a/aMfXp.net] >>824 ruby if gets.chomp!.split(/[c+-]/, -1).include?('') puts:ERROR else str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_ ary = str.split(/\b/) ary.each_with_index{|s, i| case s when /^\d+$/ then next when ?+ then ary[i - 1].succ! when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s end ary.delete_at(i) } puts ary*'' end
845 名前:828 mailto:sage [2016/10/07(金) 11:10:04.11 ID:1a/aMfXp.net] ミス if gets.chomp!.split(/[c+-]/, -1).include?('') puts:ERROR else str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_ ary = str.split(/\b/) ary.each_with_index{|s, i| case s when /^\d+$/ then next when ?+ then ary[i - 1].succ! when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s end ary[i] = nil } puts ary.compact*'' end
846 名前:828 mailto:sage [2016/10/07(金) 11:21:01.09 ID:1a/aMfXp.net] ミス 連投すまんこれで最後にするわ if gets.chomp!.split(/[c+-]/, -1).include?('') puts:ERROR else str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_ ary = str.split(/\b/) ary.each_with_index{|s, i| case s when /^-?\d+$/ then next when ?+ then ary[i - 1] = (ary[i - 1].to_i + 1).to_s when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s end ary[i] = nil } puts ary*'' end
847 名前:デフォルトの名無しさん [2016/10/08(土) 08:08:57.97 ID:vxldEz4C.net] >>824 830を参考にしました。 Ruby ideone.com/AizppP
848 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 01:39:18.78 ID:okPyT/Vt.net] 1行で gets.chomp!.split(/[c+-]/,-1)&['']!=[]?$><<:ERROR:(~/c/?$_[/c\K[^c]*$/]:$_).split(/\b/).tap{|a|$><<a.each_with_index{|s,i|s.to_s[/\d/]?next: a[i-e=44-s.ord]=a[i-e].to_i+e;a[i]=p}*''}
849 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 03:00:29.48 ID:BybICDK4.net] やっぱRubyって・・・いや、なんでもない
850 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 21:58:35.59 ID:2oHV2A6O.net] >>823-826 ・「右辺に1を引く」の右辺をマイナスのすぐ右側の数と解釈 def f8823(s) # Sに数字が含まれていなかったり、 # cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること return 'ERROR' if /\d+/ !~ s || /(^[c+-]|[c+-]$|[c+-]{2,})/ =~ s # cは入力済みの数字をクリアする # +は左辺に1を足し、-は右辺に1を引く s.gsub(/.+c/, '').gsub(/(\d+)\+/) {$1.next}.gsub(/-(\d+)/) {($1.to_i - 1).to_s} end p %W(#{} c + - 1c 1+ 1- c1 c+ c- 1cc1 1++1 1--1 1c+-1 119+5 119-5 119c5 1+1-1 1+1+1 1-1-1).map {|s| [s, f8823(s)]} ↓ $ ruby 8823.rb [["", "ERROR"], ["c", "ERROR"], ["+", "ERROR"], ["-", "ERROR"], ["1c", "ERROR"], ["1+", "ERROR"], ["1-", "ERROR"], ["c1", "ERROR"], ["c+", "ERROR"], ["c-", "ERR OR"], ["1cc1", "ERROR"], ["1++1", "ERROR"], ["1--1", "ERROR"], ["1c+-1", "ERROR" ], ["119+5", "1205"], ["119-5", "1194"], ["119c5", "5"], ["1+1-1", "210"], ["1+1 +1", "221"], ["1-1-1", "100"]]
851 名前:834 mailto:sage [2016/10/09(日) 22:19:57.08 ID:k3CHV3QP.net] >>835 は完全に間違っているので取り下げます 1-1+1 が 120 になっちゃうねこれじゃあ
852 名前:デフォルトの名無しさん [2016/10/09(日) 23:19:57.10 ID:0NJ6apgZ.net] >>836 ideone.com/Qb37qE で実行してみたが、 1-1+1 は、ERRORじゃね?
853 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:00:29.16 ID:HHuVI6c/.net] お題: A B C … Z 1 2 3 26 とするとき、 KNOWLEDGE -> 11 + 14 + 15 + 23 + 12 + 5 + 4 + 7 + 5 = 96 HARDWORK -> 8 + 1 + 18 + 4 + 23 + 15 + 18 + 11 = 98 ATTITUDE -> 1 + 20 + 20 + 9 + 20 + 21 + 4 + 5 = 100 となる。 総和が100となる他の単語を3つ見つけよ。
854 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:20:11.21 ID:jxPg9rAk.net] 辞書ファイルくださいw
855 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:52:21.18 ID:HHuVI6c/.net] >>839 っdetail.chiebukuro.yahoo.co.jp/qa/question_detail/q1412673334
856 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 09:34:42.77 ID:jxPg9rAk.net] >>838 Java https://paiza.io/projects/vpDhY14oTq6f2YXv4a5wIA
857 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 11:41:38.97 ID:PJGQtdQ9.net] >>838 ruby wordlist.txtは改行\n区切りとする $><<open('wordlist.txt').readlines.select{|s|s=s.chomp.upcase.delete('^A-Z');s.codepoints.reduce(&:+)-s.size*64==100}[0,3]*''
858 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 15:20:38.52 ID:vALgwmuK.net] >>838 Emacs Lisp (require 'cl-lib) (cl-mapcan (lambda (s) (and (not (string-match
859 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 15:47:08.07 ID:vALgwmuK.net] >>838 Emacs Lisp (require 'cl-lib) (setq result (cl-mapcan (lambda (s) (and (not (string-match "\x5b^A-Z]" s)) (= (apply #'+ (mapcar (lambda (x) (- x ?@)) (upcase s))) 100) (list s))) (split-string (with-temp-buffer (insert-file-contents "/usr/dict/words") (buffer-string))))) (cl-loop for i from 0 below 3 do (print (nth i result))) "accumulate" "acknowledge" "adulthood" (cl-loop for i from 0 below 3 do (print (nth i (reverse result)))) "yarrow" "Yankton" "wholesale"
860 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 17:24:16.08 ID:Tl2g/5GS.net] 左下から右上に登る階段を作りなさい 標準入力よりA Bが与えられる Aは段数 Bは平らな部分の長さ 0 ≦ (A,B) 何も出力されるものがなければNONEと出力すること [stdin] 3 2 [stdout] ******__ ****__| **__| __| [stdin] 0 1 [stdout] _ [stdin] 0 0 [stdout] NONE
861 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:14:49.37 ID:jxPg9rAk.net] >>845 段数1以上で平らの部分の長さが0の場合はNONEと|が縦に並ぶのとどっち?
862 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:21:18.09 ID:PJGQtdQ9.net] >>845 Ruby 1行で eval"a,b=%s+1,%s;b<1?$><<:NONE:a.times{|i|puts ?**(a+~i)*b+?_*b+?|*i[0]}"%gets.split
863 名前:164 mailto:sage [2016/10/10(月) 18:30:33.51 ID:WihadwZK.net] >>845 Perl use f
864 名前:eature qw{:5.16}; $_ = <>; ($n, $l) = split; $s = sub { my $i = $_[0]; ($n or $l) and $i <= $n ? __SUB__->($i + 1) . '*' x $l x $i . '_' x $l . ($i < $n ? '|' : '') . "\n" : '' }->(0); print $s ? $s : "NONE\n"; d:\Home>perl 8_844_step.pl 3 2 ******__ ****__| **__| __| d:\Home>perl 8_844_step.pl 0 1 _ d:\Home>perl 8_844_step.pl 1 0 | d:\Home>perl 8_844_step.pl 0 0 NONE [] [ここ壊れてます]
865 名前:164 mailto:sage [2016/10/10(月) 18:33:10.57 ID:WihadwZK.net] >>848 の d:\Home>perl 8_844_step.pl から下の行はコマンドプロンプトから実行した結果の画面のコピペで、 プログラムソースは use feature qw{:5.16}; … print $s ? $s : "NONE\n"; の範囲です
866 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:40:27.87 ID:PJGQtdQ9.net] Ruby 出力がNONE ⇔ a=0かつb=0 だとすれば eval"a,b=%s+1,%s;a+b<2?$><<:NONE:a.times{|i|puts ?**(a+~i)*b+?_*b+?|*-2[i]}"%gets.split
867 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:41:34.94 ID:XcJmDjCA.net] >>845 C# なんか宿題っぽいし(悪いけど)いまいちなお題に思えたけど暇だからやってみた https://ideone.com/sAWIyp やっぱりかなり退屈だなw
868 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:10:20.45 ID:GJ6N0Utq.net] >>838 rustc 1.8.0 use std::io; use std::io::prelude::*; fn main() { let stdin = io::stdin(); for line in stdin.lock().lines().map(|x| x.unwrap()).filter(|s| s.chars().fold(0, |acc, c| acc + 1 + c as i32 - 'A' as i32) == 100).take(3) { println!("{}", line); } } >>845 ruby 2.0.0 a, b = $stdin.gets.scan(/\d+/).map {|s| s.to_i} stairs = (0..a).inject([]) {|acc, i| acc << '*' * b * (a - i) + '_' * b + (0 < i ? '|' : '')} puts b == 0 ? 'NONE' : stairs.join("\n")
869 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:29:46.85 ID:GJ6N0Utq.net] >>845 ruby 2.0.0 ちょい整理 a, b = $stdin.gets.scan(/\d+/).map {|s| s.to_i} stairs = (0..a).map {|i| '*' * b * (a - i) + '_' * b + (0 < i ? '|' : '')} puts b == 0 ? 'NONE' : stairs.join("\n")
870 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:35:05.59 ID:XcJmDjCA.net] ケチつけるつもりは全然なくて純粋な疑問なんだけど、 Rubyってとにかく短く書くのが命で可読性はどうでもいいっていう文化なの?
871 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:39:05.26 ID:QHxKPE5l.net] >>854 せやで
872 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:40:37.95 ID:PJGQtdQ9.net] >>854 >>847 とか>>850 は勝手にゴルフっぽいことしてるだけで Rubyではコードが短いほど良いという共通の価値観はないよ
873 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:45:28.26 ID:GJ6N0Utq.net] >>854 個人的にはそれはむしろPerlだと思うけどw (過去の個人的な体験に基づく偏見です)
874 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:45:57.40 ID:XcJmDjCA.net] >>856 やっぱりそうだよねw ありがとう
875 名前:デフォルトの名無しさん [2016/10/10(月) 20:51:52.34 ID:xXMHDLa+.net] rubyは作者がそもそもコードの表記法にこだわっているからruby文化全体に表記にこだわりを持つ部分があるのは事実
876 名前:164 mailto:sage [2016/10/10(月) 21:02:10.31 ID:WihadwZK.net] >>857 Perlは短くするために難読性が高くなるような 書き方もできる自由度があるけど >>848 はなるべく難読にならないように俺としては配慮して書いたつもりだよ。 ただ、ここに貼るとインデントがなくなっちゃうので見やすさは損なわれているけれど… >>848 にポイントするとインデントが付くのでよかっらたポイントしてみてね。 >>848 であえて意識したのは無名関数の自己再帰を使ったこと
877 名前:ュらいかな。 [] [ここ壊れてます]
878 名前:164 mailto:sage [2016/10/10(月) 21:56:18.64 ID:WihadwZK.net] >>838 Perl use feature say; use List::Util 'sum'; for (1..3) { local $_ = <>; chomp; redo if sum(map {ord($_) - ord('A') + 1} split '') != 100; say; }
879 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 22:06:38.74 ID:GJ6N0Utq.net] >>860 実は俺はPerlの可読性なんかを1ミリも語れる状況に無くて 20年前に赤いラクダ本を先輩に貰ったまま本棚で腐らせてるような体たらく 読み書きままならないってだけなんで、どうかお気になさらないでください
880 名前:デフォルトの名無しさん mailto:sage [2016/10/11(火) 20:20:36.62 ID:4j+X4FeX.net] そうね、誕生石なら
881 名前:デフォルトの名無しさん mailto:sage [2016/10/11(火) 20:49:10.20 ID:5wY1VI8m.net] >>838 @Mathematica ideone.com/kMqMeG
882 名前:164 mailto:sage [2016/10/12(水) 00:29:27.25 ID:RXlYYM2a.net] >>823 >>824 Perl use feature 'say'; while (<>) { chomp; print "$_ => "; while (($a,$o,$b,$r) = /^(\d+)([c+-])(\d+)(.*)$/) { $a++ if $o eq '+'; $b-- if $o eq '-'; $a = '' if $o eq 'c'; $_ = "$a$b$r"; } say /^\d+$/ ? $_ : 'ERROR'; }
883 名前:164 mailto:sage [2016/10/12(水) 00:30:18.77 ID:RXlYYM2a.net] >>865 の実行結果の例 5+1-32c8 => 8 32+8 => 338 +24c25 => ERROR 119+5 => 1205 1-1+1 => 111
884 名前:デフォルトの名無しさん mailto:sage [2016/10/13(木) 20:27:03.99 ID:PLGkmVG9.net] >>823-826 rust 1.8.0 https://ideone.com/OGRf5X ・正規表現不使用 ・最後のjoin処理はideoneのrust 1.0.0に合わせて修正
885 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 05:03:01.25 ID:ayBWV1jp.net] >>824 ideone.com/wEetSD C++。テストは>>835 を一部拝借。失礼。 本分書き始める前に色々使いそうな関数書いたものの結局使わず。無駄だった。 あってるかなぁ。
886 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/24(月) 18:40:09.78 ID:Ea5AKtst.net] お題:隣接行列で与えられたネットワークを可能ならば一筆書きする。 不可能なら「No solution.」と表示する。
887 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/24(月) 18:56:42.71 ID:Ea5AKtst.net] お題:架空の4ビットCPUの機械語を設計し、その論理式と回路図を出力するプログラムを作れ。
888 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 23:05:36.84 ID:iFtzBvZM.net] >回路図を出力 図の形式は出題者が指定しなくちゃ。
889 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 23:33:47.03 ID:Ea5AKtst.net] >>871 .svgか.pdf
890 名前:デフォルトの名無しさん [2016/11/04(金) 18:56:54.02 ID:8tGR/IuU.net] お題:1から9までの数字を1回づつ使って分数をつくる。 たとえば123/456789, 3962/17548など。 約分すると1/8になるものをすべてもとめる。
891 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 19:08:46.32 ID:XfxE6vHI.net] 4ケタの順列を総なめしながら8倍してチェックするのかな 3024個みたいだからたいしたことなさそう
892 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 22:07:13.71 ID:UQXTh2xL.net] >>873 https://ideone.com/oxmJ61
893 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 22:20:51.84 ID:K4HA426Y.net] >>873 ideone.com/kfs5ma
894 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 07:20:45.14 ID:JpuKs6gN.net] >>873 ideone.com/iDj8rX C++。総当たりのはずだけど、あってるかな?
895 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 07:36:20.45 ID:JpuKs6gN.net] >>876 しゅごい。
896 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 08:01:48.28 ID:eq+4G+9Q.net] >>873 Java ideone.com/ACELnF
897 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 19:59:02.35 ID:giaAjwb2.net] >>873 Squeak/Pharo Smalltalk | ans | ans := OrderedCollection new. self assert: 987 * 8 < 123456. '123456789' permutationsDo: [:perm | | numer denom | numer := perm first: 4. denom := perm allButFirst: 4. numer asInteger * 8 = denom asInteger ifTrue: [ans add: numer, '/', denom] ]. ^ ans
898 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 20:10:30.03 ID:4QNuq7Ui.net] >>879 なるほど、どうせ数が知れてるから真面目に順列でやる必要ないのかw
899 名前:164 mailto:sage [2016/11/05(土) 22:55:55.41 ID:9FbiGoMz.net] >>873 Perl use feature qw{:5.16}; $b = 8888; do { $b += 8; $a = $b/8; my %h; $h{$_}++ for split '', $a . $b; say "$a/$b" unless (exists $h{0} or 9 > keys %h) } while ($a <= 9999); next_permutation がライブラリに無いし 872の問題用に9文字から4桁の順列を生成する 再帰関数を作ろうとしたけど めんどくさくなって、別解法にしました。
900 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 23:03:21.88 ID:Kvw69EBs.net] >>873 @Mathematica {"1","2","3","4","5","6","7","8","9","/"}// Permutations// Select[#,#[[1]]!="/"&]&// Select[#,#[[-1]]!="/"&]&// ParallelMap[StringJoin,#]&// Select[#,ToExpression[#]==1/8&]&
901 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 10:45:05.08 ID:Ls7dpV42.net] >>873 類題 お題:1から9までの数字を1回づつ使って引き算をつくる。 たとえば123-456789, 3962-17548など。 引き算すると44444になるものをすべてもとめる。
902 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 11:16:41.58 ID:BmMxYEOk.net] >>884 C ideone.com/H2wG0P
903 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 12:39:57.86 ID:1PuOCcw9.net] >>884 Java ideone.com/qRUcKG 書き換え2行
904 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 14:47:56.12 ID:UyE09MO8.net] >>884 Squeak Smalltalk | ans | ans := OrderedCollection new. self assert: 123456 - 987 > 44444. '123456789' permutationsDo: [:perm | | x y | x := perm first: 5. y := perm allButFirst: 5. x - y = '44444' ifTrue: [ans add: x, '-', y] ]. ^ ans
905 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 15:31:09.29 ID:+kwTAqkL.net] >>873 >>884 c https://ideone.com/OVUNzF ・全パターンをチェック ・肝心な部分(comb, permute)はぐぐったサイトから無断で拝借しました ・セパレータ要素も一緒に混ぜとく案は>>883 さんを参考にしました ・一部の関数名(permutations_do)について>>887 さんを参考にしました
906 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 16:07:27.17 ID:1MCBSGi9.net] >>884 Io Range 1234 to(9876)select(i, (i ..(i+44444))asMutable sort =="123456789 )map(j,(44444+j).."-".. j)
907 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 19:36:04.77 ID:jK1sWMF7.net] https://twitter.com/codera_iroha/status/795116603557879808 > せんぱいは、10億以下の整数の中で、最も約数の多い整数を求めるプログラムを書けますか?
908 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 20:36:12.30 ID:9KctHGA8.net] 直感的には重複しない素数の積だと思うけど証明はできんなw
909 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:07:17.87 ID:1PuOCcw9.net] >>890 Java https://ideone.com/lJ037U あまり考えずに
910 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:39:17.02 ID:jK1sWMF7.net] >>892 Good Job
911 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:40:47.89 ID:jK1sWMF7.net] >>892 Good Jobじゃなく正解というべきだったな
912 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 00:17:44.47 ID:+ilf/hxD.net] >>892 どういうロジックかさっぱりわかんないやw でも、 newYakusu += yakusu; これはちょっとおかしい気がするw
913 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 00:55:26.00 ID:MDpsc3Qw.net] newYakusu *= 2; が正解だろうな、たぶん
914 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 01:14:46.43 ID:t5QB3k9f.net] っていうか、2*3*5は2*3の2倍の約数があるのはわかるけど、 2*2*2は2*2より1つ多いだけだと思うんだけど... まあたぶん俺が何か勘違いしてるんだろうなw
915 名前:デフォルトの名無しさん [2016/11/07(月) 01:18:30.50 ID:N5kIq+jA.net] 重複ははずしてだろ。ふつうに。どうみても2べきが小さいから。
916 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 09:25:12.04 ID:VzgYAniQ.net] 素因数の指数+1をすべて掛け合わせれば約数の数になる
917 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 19:37:58.99 ID:ZbCfelvl.net] >>899 素因数分解がむずかしいね,テーブルで持っておくしかないか
918 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 21:09:59.66 ID:hgWS81A3.net] >>892 が計算量を減らすためにバッサリ切り捨ててるとこが良く分からないけど 出てる答え 735134400 = 2^6*3^3*5^2*7*11*13*17 の他にもう一つ約数の数 1344 があった 931170240 = 2^6*3^2*5*7*11*13*17*19 もっとあるかも、というか正解は別にあるかもという気がしなくもない
919 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 21:37:10.62 ID:VzgYAniQ.net] >>901 https://ideone.com/UJF04i >>892 の素数リスト、19が抜けてるやw リスト表示するようにしても931170240が出てこないからおかしいなと確認したら初歩的なミスw
920 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 02:53:20.88 ID:E77IrmWO.net] 10億以下で約数の数が1344の整数はたぶん4つ 735134400 = 2^6*3^3*5^2*7*11*13*17 821620800 = 2^6*3^3*5^2*7*11*13*19 931170240 = 2^6*3^2*5*7*11*13*17*19 994593600 = 2^6*3^3*5^2*7*11*13*23
921 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 05:42:59.95 ID:rWt9CCW+.net] >>890 @Mathematica ideone.com/3wqeR5
922 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 09:54:20.69 ID:bJUc+90s.net] >>890 >>902 を参考に C++ ideone.com/OeTnpx
923 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 12:57:49.64 ID:n6HvGTQo.net] hello worldを出力しなさい 但し文字リテラルと数字をコード中に書いてはいけません
924 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:07:00.37 ID:DsWyA9Yw.net] >>906 誰得。
925 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:39:36.94 ID:RQn7BeEP.net] >>906 https://ideone.com/StMgsy https://ideone.com/whA3mU
926 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 14:40:02.73 ID:yNpdMLCi.net] >>906 ruby -e 'class HelloWorld ;end; p HelloWorld'
927 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:20:35.35 ID:7Gidw00Y.net] >>906 https://ideone.com/xwzB8Z
928 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:22:04.34 ID:7Gidw00Y.net] 可読性の高いコードができたぜ
929 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:57:41.78 ID:R5k7JcnE.net] >>906 ideone.com/xt4UEz
930 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 16:09:57.80 ID:RQn7BeEP.net] >>906 https://ideone.com/4Z2U4N 標準入力はコードのうちに入りますか?
931 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 18:09:11.97 ID:w47niDgV.net] >>906 文字リテラルは禁止だけど文字列はOK?
932 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 18:11:01.84 ID:w47niDgV.net] >>906 これに似てるね 普通じゃないHello World問題「Restricted Words」の解説記事 #伝説 #しえる|CodeIQ MAGAZINE https://codeiq.jp/magazine/2013/09/120/
933 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 19:45:29.90 ID:B1AmaaJH.net] >>906 Squeak Smalltalk | hello world | thisContext method tempNamesString "=> 'hello world' "
934 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 21:56:55.91 ID:3MgWSwni.net] >>906 https://ideone.com/o8SEV1 https://ideone.com/0PwVHQ
935 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/11/09(水) 22:31:53.26 ID:A1mSNctr.net] お題:テーブルの上にきれいにきちんと重なったトランプ1セットが置いてあり、全てのカードの表が上向きになっている。 プログラムはカードの並びを入れ換えたり、上からn番目のカードを読み込むことができる。 この仮想的なトランプを操作することによって円周率を求めるプログラムを書け。
936 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 22:43:42.78 ID:RQn7BeEP.net] まず>>918 のコードが見たいなー}
937 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 00:53:34.51 ID:7cWLs5su.net] >>906 https://ideone.com/i6ZnJc
938 名前:164 mailto:sage [2016/11/10(木) 01:07:34.71 ID:UjUlxJgT.net] >>908 あんさんは、 Programmingを 楽しんでますなー。 気に入ったぜ。
939 名前:164 mailto:sage [2016/11/10(木) 01:11:20.89 ID:UjUlxJgT.net] 以下、enterprise fizzbuzzみたいな hellow worldを書く椰子 ↓
940 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 01:21:32.89 ID:rkwF1pIg.net] brainfuckやwhitespeceで文字出力するだけってジェネレータで出来るじゃん
941 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 21:28:06.13 ID:drAYGWtl.net] >>906 @Mathematica ideone.com/1PtMdm
942 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 12:36:20.63 ID:OOJ7Wqnx.net] 大文字を出力してるので減点
943 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 14:05:38.79 ID:FKtxBunI.net] 真面目か
944 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 14:44:10.92 ID:5nMDDcWB.net] >>906 C ideone.com/Be4XYH
945 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:06:10.50 ID:pVnBGILb.net] お題 整数Aに整数Bを加算しなさい 但し3桁に区切って計算すること AとBは文字列で標準入力から2行に分けて与えられる 0≦A≦999999999999999999999999999999999 0≦B≦999999999999999999999999999999999 標準入力 1234 15 標準出力 1249 解説 A=1234 B=15 Aは3桁を超えてるので123と4に分割される 123*10+B+4=1249 もしくは 1*1000+234+B=1249
946 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:31:12.94 ID:kNoTIrA7.net] >>928 >3桁に区切って の意図がわからない 普通に多桁長加算の実装じゃないのか?
947 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:50:09.31 ID:8285RMD/.net] 多桁長の演算を実装するだけのようだし 3桁に区切るって限定しなくてもいいよな。
948 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 19:55:55.39 ID:Q4JxAaLZ.net] >>906 c ・数年前に同じお題をここか別のスレでやったような気が… #include <stdio.h> int main() { struct { struct {long _a, _b;} _a, _b, space, _d, _e, _f; char _,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z; } __; #define _(v) putchar((void *)&__.v - (void *)&__) _(h),_(e),_(l),_(l),_(o),_(space),_(w),_(o),_(r),_(l),_(d); return &__ - &__; }
949 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 20:04:46.68 ID:8285RMD/.net] >>931 こりゃすごい! 今まで最短の上に可読性が高い!
950 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 20:22:45.93 ID:X4UPo+EY.net] >>931 ideoneでもローカルでもダメだったゾ https://ideone.com/hhNgqg
951 名前:930 mailto:sage [2016/11/12(土) 21:03:19.70 ID:Li4gnKYC.net] >>932 ども! でも最短じゃあないよねw >>933 ごめん sizeof(long)が8の環境で確認してた struct {struct {char a,b,c,d;} a,b,c,d;} _a, _b, space, _d, _e, _f; これでどこでも動くはず
952 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 22:58:47.72 ID:VjO69xXO.net] >sizeof(long)が8の環境で確認してた あれま? paiza.IOではちゃんと動いたけど ideoneやCodeIQではダメだったか
953 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 00:35:59.69 ID:GDVX8Ikh.net] >>931 >数年前に同じお題を >>915 のCodeIQの問題とかじゃね?
954 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 08:49:46.08 ID:y8U2/o7H.net] >>906 https://ideone.com/ST1qS2
955 名前:デフォルトの名無しさん [2016/11/13(日) 09:05:29.71 ID:FuKHFetX.net] お題:nビットのグレイコ^ドを生成する。 例 n 3 000 001 011 010 110 111 101 100 S
956 名前:デフォルトの名無しさん [2016/11/13(日) 09:14:09.45 ID:FuKHFetX.net] お題:nビットのグレイコードを生成する。 例 n=3 000 001 011 010 110 111 101 100
957 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 11:09:32.80 ID:w9Y83CjX.net] >>939 @Mathematica ideone.com/WXOxKH
958 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 12:26:26.96 ID:ArrhAnA/.net] >>939 Java ideone.com/SOEHsd brainfuckでやろうかなと思ったが、少し考えてめんどくさくなってやめた
959 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 19:09:07.56 ID:EpE2S11k.net] >>939 C# ideone.com/Gbq0NT >>941 こんな短く書けるのかw ガックリ来たわ どういうロジックかさっぱり分からんw
960 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 20:45:37.87 ID:qMZbrJPH.net] >>942 ニコニコ百科からの転載でアレだけどこれ抑えてれば理解できるんじゃね >二進数を1ビット右にシフトし(先頭は0)、元の二進数と各桁で排他的論理和をとると得られる。また、1ずつ増やした場合、グレイコードで変化する桁は、二進数で0が1に変化する桁(繰り上がる先の桁)に等しい。 入力数値の分だけ1をシフトさせてやりゃ入力数値が桁数に変換できるから あとはその桁数に達するまでforループ回して元数値と右シフト数値の排他的論理和とって2進表示し続けてる感じだと思う 無駄がなくてスマートなプログラムな感じがするけどsubstring(1)だけよく分からない
961 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 20:53:45.16 ID:ArrhAnA/.net] >>943 指定桁数の2進数を作るのに最上位ビット捨ててる n=3だと1xxxの文字列作って一番左削ってる感じ printf等で指定桁数の2進数作れりゃそっち使うんだけどw
962 名前:デフォルトの名無しさん [2016/11/13(日) 21:00:49.81 ID:qMZbrJPH.net] >>244 桁数調整の為に一旦論理和とってから最初の1だけ捨ててるのか 勉強になりました
963 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 21:09:45.44 ID:EpE2S11k.net] >>943 なるほどそういう定式化された求め方があるのか グレイコードなんて大昔学校で習って以来まったく使ったことがないから知らなかったよ。 ありがとう
964 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 04:33:29.92 ID:/TJLzgQW.net] >>939 Nim https://ideone.com/JsyrW3
965 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:10:12.87 ID:H9REv+Ri.net] >>906 J hello =: noun world =: noun ;:inv nl $~ noun
966 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:34:43.51 ID:HcDSv4MP.net] >>906 ここをクリック >>906
967 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:52:00.92 ID:k57TIQI7.net] 次スレあるの?
968 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 15:27:30.98 ID:Veyi95OJ.net] >>932 何が凄いのか分からん hello worldがコード中に埋め込まれて いるのが見えるんだが、だったら printfでhello world書いているのと同じじゃあないの?
969 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 16:32:08.46 ID:evn38iuN.net] >>951 printf("hello world");←これの""で囲まれてる部分が文字列リテラル 今回は文字列リテラルと数字を使わずにハロワを出力してみろってお題だからprintfでそのまま書いてたらアウト
970 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:08:30.22 ID:DO3IaX9S.net] >>906 のお題は文字列リテラル禁止じゃなく文字リテラル禁止だよ
971 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:30:01.74 ID:evn38iuN.net] そうかそいつはすまなかった読み違えたよ >>952 の2行目の「文字列リテラル」は「文字リテラル」に置き換えて読んでくれ
972 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:59:50.88 ID:DO3IaX9S.net] C言語なら "hello world"のダブルクオートで括るのは文字列リテラルだけど 文字リテラルはシングルクオートで括るから 文字列リテラル使うprintf("hello world")は合法だよ
973 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 19:02:18.94 ID:DO3IaX9S.net] brainfuckやwhitespaceは処理系によってはもしかすると文字リテラルや文字列リテラルあるのかもしれないけど C言語で>>906 の問題を解くなら>>931 と基本同じように文字コード計算して出力するだけだから大差ないよね
974 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 06:37:25.19 ID:NqgYpFgU.net] ?
975 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 20:12:56.69 ID:5Ihw572q.net] >>906 C# ideone.com/FHDr9j やっぱり面白くないな
976 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 21:43:19.98 ID:h+UNZgYe.net] " "や'_'を使ってるところがウケ狙いなのかもしれないけど 確かにそんなに面白くない
977 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 22:49:50.11 ID:opmi2l/i.net] 文字コードが絡む問題は悪名高いEBCDICを真っ先に思い浮かべてしまって その考慮がされてないとちょっと白ける部分がある
978 名前:デフォルトの名無しさん [2016/11/20(日) 01:25:08.34 ID:60DKtBPZ.net] >>906 ruby2 print :hello, [:s, :S].map(&:to_s).map(&:ord).inject(:-).chr, :world melpon.org/wandbox/permlink/i4MWT1u23HHuoe7P
979 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 13:28:08.49 ID:mWWihz9s.net] >>906 Haskell ideone.com/QN4BaU
980 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 08:38:02.28 ID:4Ckt/1Kw.net] >>906 F# type ``hello world`` = W printfn "%s" typeof<``hello world``>.Name
981 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 08:39:37.06 ID:4Ckt/1Kw.net] 訂正 >>906 F# type ``hello world`` = W stdout.WriteLine typeof<``hello world``>.Name
982 名前:デフォルトの名無しさん [2016/11/21(月) 18:47:44.72 ID:3NXFWxK7.net] >>939 ruby n = 3 (1 << n).times do |v| puts "%0#{n}b" % (v ^ (v >> 1)) end melpon.org/wandbox/permlink/BnpyEB9rsl73vBDI
983 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 19:50:16.01 ID:nCxXmPKB.net] >>935 (´・∀・`)ヘー 動く環境もあったのね >>936 CodeIQ見たことも聞いたこともない >>906 c ・数字つこうた ・四則演算ビット演算無し ・文字リテラル文字列リテラル無し ・移植性と他の環境で動く保障無し #include <stdio.h> int main() { int is[] = {1819043176, 1870078063, 6581362}; long long lls[] = {8031924123371070824, 6581362}; puts((char *)is); puts((char *)lls); return 0; } ↓ hello world hello world
984 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 20:56:30.60 ID:/F1fcl9l.net] 文字コードに依存するわエンディアンに依存するわ、後出しでどんだけ劣化するんだ
985 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 23:37:55.18 ID:7dMNwwBf.net] 数字もダメ というのがルール
986 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 02:14:49.59 ID:bN+iUVDf.net] 勝手に問題作り変えちゃダメだよね 国語できなさそう
987 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 04:14:16.14 ID:hJpZQ6a9.net] >>906 ideone.com/X7Wrl9 C++?? 既出の回答に感動してパクってみた。 数字自作してる時点であんまり問題の意味ないよね。 体をなしてないというか。
988 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 05:24:33.85 ID:7Ti0FWyJ.net] >>906 ideone.com/XH28rr Python3 HQ9+的アプローチで数値計算してない
989 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 08:07:22.61 ID:ofQaf/jO.net] リバースエンジニアリングしてもコード中にリテラルが無いので解読されにくいという事だよね
990 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 08:58:18.46 ID:hJpZQ6a9.net] 秘密主義は技術の向上を阻害するのであんまり興味ないな。
991 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 11:24:14.19 ID:O62ysXRT.net] でも「神秘的!ステキ!」とか言われてクラッカーやハッカーにモテるかもよ
992 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 20:14:09.73 ID:svcAyLEK.net] >>906 Common Lisp https://ideone.com/jcgKGl
993 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 21:11:42.55 ID:0aK0hXHG.net] >>906 c https://ideone.com/5oPjJu ・数字無し ・四則演算ビット演算無し ・文字リテラル文字列リテラル無し ・移植性と他の環境で動く保障無し >>906 ruby ・バッククォートつこうた puts `echo hello world`
994 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:00:15.16 ID:GG9ZZPlA.net] >>976 cの方面白い 細かいけどreturn 0;に数字使われて
995 名前:るのに笑ってしまった [] [ここ壊れてます]
996 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:12:48.53 ID:bzMDKvPC.net] bash $echo hello world
997 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:32:08.95 ID:GG9ZZPlA.net] それがありなら c++ https://ideone.com/5fVbir
998 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:33:06.33 ID:GG9ZZPlA.net] もう出てたか
999 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 03:02:34.05 ID:1DVlaY/L.net] >>976 その手があったか。思いつかなかった
1000 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 16:23:56.87 ID:zVQCWlzE.net] >>977 > return 0;に数字使われてる どわーっ!! >>906 c codepad.org/4F3U6t52 ・移植性と他の環境で動く保障無し (少なくともideoneじゃコンパイルエラー 変形して通しても次の問題が出てきて駄目)
1001 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 17:00:53.66 ID:v3lmFY9L.net] bash $cat message.txt
1002 名前:164 mailto:sage [2016/11/28(月) 21:11:05.16 ID:rbBqsttl.net] >>906 Perl sub AUTOLOAD {($AUTOLOAD =~ /::(.+)$/)[0]} print Hello()." ".World()."\n";
1003 名前:164 mailto:sage [2016/11/28(月) 21:24:43.26 ID:rbBqsttl.net] >>984 しまった、listのindexに0を使っちゃってる。 return 0;がダメ?かもしれないならば数字使っちゃダメ?? ならばこうか… >>906 Perl sub AUTOLOAD { $AUTOLOAD =~ s/^.*:://; $AUTOLOAD } print hello()." ".world()."\n";
1004 名前:164 mailto:sage [2016/11/28(月) 21:42:11.18 ID:rbBqsttl.net] >>906 Perl つか、これでイイジャン。 package hello_world; print join ' ', split '_', __PACKAGE__; 連投スマソ
1005 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 21:56:43.31 ID:dQXmDcQq.net] 文字リテラル知らんのか?
1006 名前:164 mailto:sage [2016/11/28(月) 22:24:35.04 ID:rbBqsttl.net] "hello world"の文字列リテラルだけじゃなく " "もダメてことか…orz ' 'は一応「文字」だけどまぁ歓迎されない感じだな もうひと工夫いるけどマンドくさくなってきた
1007 名前:デフォルトの名無しさん [2016/11/29(火) 19:26:40.96 ID:LsagP9/y.net] コードとコンパイラによっては最適化で文字が埋め込まれることに
1008 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:35:16.55 ID:1MA0K2jV.net] 先入れ中出しのアルゴリズムを実装せよ
1009 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:39:13.43 ID:+UdcctZr.net] やだ、できちゃう
1010 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:49:39.94 ID:PX7t+lnB.net] 先っちょだけだから
1011 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 01:45:20.18 ID:b7dyxQXg.net] >>990 C++にはSTLにQueueあるからねぇ。 今更、作る意義がわからない。
1012 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 04:13:31.77 ID:b7dyxQXg.net] って、ネタかよ。真面目に答えるんじゃなかった。
1013 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 12:22:48.19 ID:y2jQ/DIV.net] STLは知らないけど.NETのキューって要素1つずつしか出し入れできないんだよね これだとバッファーとしては使いづらいから自作したわ
1014 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 12:44:08.74 ID:UIwN06Hs.net] LINQ使えばいいんじゃね
1015 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 23:47:33.27 ID:8E5tVjA8.net] Queueって先入れ中出しなん?
1016 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 00:54:11.48 ID:NHXaAvDm.net] それもネタなんだろ
1017 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 06:10:42.69 ID:I/74Zq7s.net] 次スレありますでしょうか。
1018 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 15:05:04.44 ID:HhJrKDKy.net] t
1019 名前:小倉優子 ◆YUKOH0W58Q mailto:sage [2016/12/01(木) 15:05:24.69 ID:HhJrKDKy.net] ∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J
1020 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています