1 名前:デフォルトの名無しさん mailto:sage [2019/07/28(日) 19:39:57.54 ID:832c/ukY.net] プログラミングのお題スレです。 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 結果がある場合はそれも 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part14 mevius.5ch.net/test/read.cgi/tech/1558168409/
970 名前:デフォルトの名無しさん [2019/11/12(火) 22:38:04.89 ID:SyoIDDRx.net] windowsのロングパス対応の重複ファイル検索するコードない?
971 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 04:07:44 ID:eXHRJefh.net] >>941 Pharo/Squeak Smalltalk | fn | fn := [:m | | table | table := #(98 100 198 200 250 298). table detectMin: [:x | (x - m) abs] ]. fn value: 50. "=> 98 " fn value: 195. "=> 198 "
972 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 14:07:45.70 ID:9sxFrKBI.net] >>941 https://ideone.com/wJ8lPk C++。多分動いてるけど、境界線系のエラーハンドリングは適当。
973 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 15:30:27.12 ID:EqcpRCSG.net] どう考えても線形探索の方が簡単で速い 1回だけなら
974 名前:デフォルトの名無しさん [2019/11/13(水) 18:24:57.67 ID:utJBi2wY.net] >>941 Lua function f(a, x) local res = a[1] for i = 2, #a do if math.abs(res - x) > math.abs(a[i] - x) then res = a[i] end end return res end
975 名前: mailto:sage [2019/11/13(水) 20:03:11.45 ID:ESFhNQze.net] >>944 https://mevius.5ch.net/test/read.cgi/tech/1434079972/53
976 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 20:28:42.98 ID:6mLuLK4e.net] >>941 octave https://ideone.com/kbVTGp
977 名前:デフォルトの名無しさん [2019/11/13(水) 20:40:25.65 ID:H1DP2m/6.net] >>944 >>1002
978 名前:デフォルトの名無しさん [2019/11/13(水) 20:48:13.08 ID:CMaH4qd1.net] >>941 C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。 https://ideone.com/KJ134u この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で 速そうだな。 https://ideone.com/ef553N
979 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:39:03.09 ID:Fqkv69gY.net] なんで順番に5回も比較してんの?
980 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:47:59.14 ID:kE3A4AyF.net] 10回比較するわけにはいかないからでしょ
981 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:53:11.46 ID:RzCRvdkP.net] まずは199との比較では? あとは範囲を絞ったテーブルとか int全てをカバーするテーブルも intが32bitな64bit環境なら一応は可能
982 名前:蟻人間 mailto:sage [2019/11/13(水) 22:09:59.79 ID:SHPlbPC2.net] お題: 自動塗り絵。 白地に黒い線で図形が描かれているモノクロ画像が与えられる。 白い領域をそれぞれ適当な単色で塗りつぶせ。可能ならOpenCVを使ってもいい。
983 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 22:51:59.05 ID:RzCRvdkP.net] ペイントブラシ + スクリプト で出来そう
984 名前:デフォルトの名無しさん [2019/11/13(水) 23:03:48.70 ID:CMaH4qd1.net] >>955 「一番速い」ではなく「一番簡単で速い」だからね。可読性とかバグの 混入しにくさとかも考えると、順番に5回比較するのが一番良いだろ。 特に https://mevius.2ch.net/test/read.cgi/tech/1573214616/3 への 回答としては、最も適している。
985 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 23:40:49.81 ID:RzCRvdkP.net] 一番速くもないし一番簡単でもない 一番「簡単で速い」? 簡単と速いは相反するので一番なんて無い
986 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 23:42:10.65 ID:RzCRvdkP.net] 凡人が安易に「一番」とか言わない方が良いよ
987 名前:デフォルトの名無しさん [2019/11/14(木) 01:06:49.29 ID:4AhPUV/Y.net] 俺が一番
988 名前:デフォルトの名無しさん [2019/11/14(木) 06:15:22.98 ID:BnXMw1SX.net] >>941 Io f:=method(a,x, a map(v,list((v-x)abs,v))min last ) d:=list(98,100,198,200,298) f(d,120) println 実行結果 100
989 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 09:31:40.70 ID:baSi3t2K.net] 一番簡単で速いってなんだよ 一番簡単かつ一番速いなら一番速いって言えばいいだけだろ ってC++の人かよ
990 名前:デフォルトの名無しさん mailto:age [2019/11/14(木) 12:32:18.21 ID:WVE0j82D.net] 一番に過剰反応してるみなさんwww
991 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 13:14:51.59 ID:/NpdgKVA.net] 一番とか最も適しているとか 頭が悪いやつが良く言うセリフ
992 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 13:27:39.39 ID:isT1FYJS.net] それな あと「頭悪いやつがよく言う」ってのも頭悪いやつよく言うセリフだわ
993 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 15:14:06.76 ID:1CVvHcAw.net] >>941 python https://ideone.com/g2dWOw
994 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 16:23:41.28 ID:bZ2yXVXr.net] >>963 俺、よくmakehoge書いてる人だけど、その二分探査書いた人は別人。 偶に、俺じゃない人がC++書いてくことがある。 まぁ、俺も貢献度が高いかというと解らんけど。
995 名前:デフォルトの名無しさん [2019/11/14(木) 22:16:17.11 ID:ya/1xYDt.net] >>963 「一番簡単で速い」は「一番簡単」かつ「速い」という意味だよ。 一番簡単なコードを書いてみて充分に速ければ、さらに手を加える必要はないってこと。 昨今はCPUが速いので、簡単なコードをささっと書いて終わりにできる場合が多いし、 Cを使うまでもなくRやPythonなどでも実用に耐える。処理条件が変わって速度に 不満が生じたときだけ、書き直せば良い。
996 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 22:21:25.20 ID:KjmBL3+S.net] 配列をキャッシュに乗せるだけで早くなる 配列にするだけで早くなる
997 名前:デフォルトの名無しさん [2019/11/14(木) 23:43:50.36 ID:ya/1xYDt.net] >>970 >>941 の最も近い値を求める処理(Aと呼ぶ)だけを複数回連続して行う場合はそうだが、 間に別の処理(Bと呼ぶ)がたくさん入る場合はキャッシュから外れるかも知れないし、 AよりもBの方で相対的にだいぶ長い時間がかかっているならば、Aを高速化する 意味はない。 Aを簡単に書き終え、Bを書き進めてプログラム全体を完成させ、各部分の実行時間を デバッガで分析し、Aを高速化する必要があるか判定するのが効率的な開発方法。 必要なときだけAを書き直してみて、元のAと実行時間を比較し、顕著に速い場合だけ 採用する。あまり変わらない場合は元の
998 名前:簡単な方に戻す。 [] [ここ壊れてます]
999 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 06:08:37 ID:/dDy1LQy.net] >>969 なぜ 一番簡単 だと思ったのか
1000 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 06:11:01 ID:/dDy1LQy.net] 中途半端に最適化するくらいなら 意味通りをそのまま記述した方が良いよ トリッキーなマクロとか使わないで普通にループでいいし
1001 名前:デフォルトの名無しさん [2019/11/15(金) 07:24:03.38 ID:YlbiRAmO.net] >>941 J f =: 4 : 0 {. x /: | x - y ) a =: 98 100 198 200 250 298 a f 199 198
1002 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 08:39:52.88 ID:zGnI3whh.net] >>491 python 整数の範囲を 1000000000 にして、リストのサイズをその1/10の 100000000 にしてやった物 https://ideone.com/JL4ZtG
1003 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 08:46:57.30 ID:pd2oXw5y.net] お題はどれ?
1004 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 10:34:11.71 ID:zGnI3whh.net] >>975 は、>>941 のお題の間違い。
1005 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 10:34:39.11 ID:kGxI2dsU.net] >>972 もっと簡単なのがあると言うなら提示すりゃいいだけ
1006 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 10:37:36.49 ID:Dg2kwGpJ.net] そんなら一番簡単なんて言ったもん勝ちやんアホクサ
1007 名前:デフォルトの名無しさん mailto:age [2019/11/15(金) 11:19:40.93 ID:y6ix6SXf.net] >>979 どういうこと?
1008 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 13:20:35.16 ID:pd2oXw5y.net] 発言者に証明責任がある 当たり前
1009 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 13:22:00.36 ID:pd2oXw5y.net] 簡単じゃない部分は書いたけどね
1010 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 13:25:38.61 ID:pd2oXw5y.net] 本当に一番簡単だと思ってるなら 非常に頭が弱い というしかない
1011 名前:デフォルトの名無しさん mailto:age [2019/11/15(金) 16:04:20.43 ID:y6ix6SXf.net] 証明責任が
1012 名前:デフォルトの名無しさん [2019/11/15(金) 18:45:17.65 ID:YlbiRAmO.net] >>941 Ruby def f(a,x) a.min_by{|v|(v-x).abs} end
1013 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 22:18:10.52 ID:1XAUh39O.net] >>982 ひょっとして>>973 か? 頓珍漢な指摘でドヤられても困るw
1014 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 07:59:12.18 ID:PKd8UO5d.net] お前ちょっとしつこいよ 二人ともどっか行ってくれ
1015 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 09:38:56.12 ID:R3eXoa4h.net] お題: 標準入力から読み取った文字列に対して変換候補の単語を表示するスクリプトを作れ 変換候補は https://www.cs.cmu.edu/~rgs/alice-table.html のテキストを元にし、英文のみの対応とする 例: in < on out > ['on', 'once', 'one', 'only'] in < we out > ['well', 'went', 'were']
1016 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 09:39:44.99 ID:R3eXoa4h.net] >>988 URL訂正: https://www.cs.cmu.edu/~rgs/alice-I.html
1017 名前:10-11 mailto:sage [2019/11/16(土) 11:43:03.30 ID:nyexrMnj.net] Mathematica ビットテーブル使ったからいまいち f[x_]:=Round[Exp[x*49/2^9]*10]+Mod[BitShiftRight[8518656,x],2] f[Range[0,23]] {10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,91}
1018 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 13:01:44.00 ID:9Ne+J8hx.net] >>988-989 PowerShell $Words = ([RegEx]"\w+").Matches((Invoke-WebRequest 'https://www.cs.cmu.edu/~rgs/alice-I.html').Content) | Select-Object -ExpandProperty 'Value' | Sort-Object -Unique 'on', 'we' | %{ "'$_' => ['$($Words -cmatch "^$_.*$" -join ''', ''')']" } -- 'on' => ['on', 'once', 'one', 'only'] 'we' => ['well', 'went', 'were']
1019 名前:蟻人間 mailto:sage [2019/11/16(土) 14:12:37.63 ID:wI2tFyzM.net] そろそろ次スレ
1020 名前:デフォルトの名無しさん [2019/11/16(土) 20:00:42.94 ID:ycfnvugG.net] >>987 誤解がないように一応言っておくが、同一人物なのは943, 952, 958, 969, 971, 993だけで、 978や986は別人ね。
1021 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 20:11:13.21 ID:SjIOWxyj.net] どうでもいい 匿名掲示板
1022 名前:デフォルトの名無しさん mailto:sage [2019/11/16(土) 22:09:51.31 ID:ByTTIV4m.net] >>988 @Mathematica https://ideone.com/3Ad2Nv
1023 名前:デフォルトの名無しさん mailto:sage [2019/11/17(日) 09:01:36.94 ID:xqEdXdr6.net] 次スレ プログラミングのお題スレ Part16 mevius.5ch.net/test/read.cgi/tech/1573948822/
1024 名前:990 mailto:sage [2019/11/17(日) 15:37:45.58 ID:WMPUR+bY.net] BitGet使うんだった(Mathematicaに慣れてないのばればれ) (* 49/2^9 = 0.095703125 *) f[x_]:=Round[Exp[x*0.095703125]*10]+BitGet[8518656,x] もう少し頑張っても16ビット以内にビットテーブルは縮小出来ず…。 (* 785/2^13 = 0.0958251953125 *) f[x_]:=Round[Exp[x*0.0958251953125]*10]+BitGet[130048,x]
1025 名前:デフォルトの名無しさん [2019/11/21(木) 12:06:42.30 ID:p+kY48sO.net] >>941 julia a=[98,100,198,200,250,298] f(a,x)=a[argmin(map(abs ,a.-x))] f(a,50)
1026 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 17:12:54.10 ID:x85mexbT.net] >>988-989 Squeak Smalltalk。関数で。 | contents words fn | contents := (HTTPClient httpGet: 'https://www.cs.cmu.edu/~rgs/alice-I.html') contents. words := (contents replaceAll: Character lf with: Character space; asTextFromHtml) asString subStrings: ' !"''()*,-.:;?`'. words := words asSet asSortedArray. fn := [:in | words select: [:word | word beginsWith: in]]. fn value: 'on'. "=> #('on' 'once' 'one' 'only') " fn value: 'we'. "=> #('well' 'went' 'were') " "for Pharo => ws.stfx.eu/DK48GF5ZH8SF "
1027 名前:蟻人間 mailto:sage [2019/11/21(木) 20:01:07.49 ID:KAM+noJg.net] はかい こうせん せんもんがっこう
1028 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 116日 0時間 21分 10秒
1029 名前:1002 [Over 1000 Thread.net] 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ https://premium.5ch.net/ ▼ 浪人ログインはこちら ▼ https://login.5ch.net/login.php
1030 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています