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