プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part20
https://mevius.5ch.net/test/read.cgi/tech/1624028577/
探検
プログラミングのお題スレ Part21
■ このスレッドは過去ログ倉庫に格納されています
2022/11/13(日) 19:00:36.84ID:ZCYlhUwL
2デフォルトの名無しさん
2022/11/13(日) 19:38:30.54ID:5vwp7vxt https://mobile.twitter.com/mashino8
小中学校教諭はマクドナルドのアルバイトと同じ最低賃金でかつ資格は不要。
プログラミングを他人に教えるなら、まず自作プログラミングを模範として開陳すること。
形式よりもデザインの独自性を追求する。「車輪の再発明」はいらない。
https://twitter.com/5chan_nel (5ch newer account)
小中学校教諭はマクドナルドのアルバイトと同じ最低賃金でかつ資格は不要。
プログラミングを他人に教えるなら、まず自作プログラミングを模範として開陳すること。
形式よりもデザインの独自性を追求する。「車輪の再発明」はいらない。
https://twitter.com/5chan_nel (5ch newer account)
2022/11/13(日) 20:02:45.09ID:9nPd4Cxf
乙
4デフォルトの名無しさん
2022/11/13(日) 20:28:09.14ID:/iUKLzwe >>2
日本語でおk
日本語でおk
5デフォルトの名無しさん
2022/11/14(月) 07:52:53.78ID:p8dKwuQs それじゃあこのスレがどれだけ実力があるのかお題だすね
物体認識で手を認識させたときの指先のトラッキングをやってみてください
物体認識のモデルはすでに学習済みと仮定あとはカメラで写ってる指先の特徴点のポイントを取得するだけです
物体認識で手を認識させたときの指先のトラッキングをやってみてください
物体認識のモデルはすでに学習済みと仮定あとはカメラで写ってる指先の特徴点のポイントを取得するだけです
2022/11/14(月) 07:58:49.75ID:pZNm0HpP
じゃあその学習済みモデルくれよ…
7デフォルトの名無しさん
2022/11/14(月) 09:49:45.14ID:p8dKwuQs >>6
たしかに…無いとテストとかもできんもんな…
たしかに…無いとテストとかもできんもんな…
2022/11/14(月) 20:06:53.85ID:mWdJBHQd
お題:自然数nが奇数かどうかチェックする関数oddを定義せよ
c
https://ideone.com/gdiEYq
//int odd(int n) {return n & 1;}
int odd(int);
int even(int n) {return n == 0 ? 1 : odd(n - 1);}
int odd(int n) {return n == 0 ? 0 : even(n - 1);}
ocaml
https://ideone.com/LYsHsF
let rec even = function 0 -> true | n -> odd (n - 1)
and odd = function 0 -> false | n -> even (n - 1)
c
https://ideone.com/gdiEYq
//int odd(int n) {return n & 1;}
int odd(int);
int even(int n) {return n == 0 ? 1 : odd(n - 1);}
int odd(int n) {return n == 0 ? 0 : even(n - 1);}
ocaml
https://ideone.com/LYsHsF
let rec even = function 0 -> true | n -> odd (n - 1)
and odd = function 0 -> false | n -> even (n - 1)
9デフォルトの名無しさん
2022/11/14(月) 20:10:03.72ID:p8dKwuQs >>8
自分で書くのかよ
自分で書くのかよ
2022/11/14(月) 20:46:27.81ID:77ck4Qph
かなり昔に寿司問題というのがあってそれが難しかった記憶だが
問題を忘れた
問題を忘れた
2022/11/14(月) 20:49:33.61ID:77ck4Qph
検索したら見つかった、これ
回転寿司にやってきた私は、コンベア上の寿司をすべて食べて帰ることにしている。
コンベアは毎秒1皿分の速度で流れ、目の前の皿を取るか取らないかを選ぶことができる。
皿取ると同時に食べ始め、食べている間は次の皿を取ることができない。
私が取る以外、皿は追加されたり無くなったりしない。
コンベアの状態が次のような文字列で与えられる。
"31_2"
数字はその皿を食べ終えるのにかかる秒数を表し、_は皿がないことを表す。1文字目が目の前にあり毎秒、左へ回転する。
例えば、"31_2"で最初の皿を食べたとき食べ終わった時の状態は、"2_1_"となる。
すべての寿司を食べ終えるまで最短何秒かかるか求めよ。
"12_3" > 6秒
"313__" > 8秒
"4_35_1264_23_434" > 60秒
"123456789123456789" > 98秒
"88967472612377988186" > 149秒
"19898693316679441672" > 170秒
"93769682716711132249893" > ?
回転寿司にやってきた私は、コンベア上の寿司をすべて食べて帰ることにしている。
コンベアは毎秒1皿分の速度で流れ、目の前の皿を取るか取らないかを選ぶことができる。
皿取ると同時に食べ始め、食べている間は次の皿を取ることができない。
私が取る以外、皿は追加されたり無くなったりしない。
コンベアの状態が次のような文字列で与えられる。
"31_2"
数字はその皿を食べ終えるのにかかる秒数を表し、_は皿がないことを表す。1文字目が目の前にあり毎秒、左へ回転する。
例えば、"31_2"で最初の皿を食べたとき食べ終わった時の状態は、"2_1_"となる。
すべての寿司を食べ終えるまで最短何秒かかるか求めよ。
"12_3" > 6秒
"313__" > 8秒
"4_35_1264_23_434" > 60秒
"123456789123456789" > 98秒
"88967472612377988186" > 149秒
"19898693316679441672" > 170秒
"93769682716711132249893" > ?
2022/11/14(月) 22:20:48.72ID:bi78lbTB
1から3999までのローマ数字が与えられるのでそれを算用数字で表示する
例
IV -> 4
XLIX -> 49
CDXLIII -> 443
例
IV -> 4
XLIX -> 49
CDXLIII -> 443
2022/11/15(火) 06:20:24.94ID:JkHLyKfV
2022/11/15(火) 08:17:52.42ID:nxwaFDXa
2022/11/15(火) 12:07:08.40ID:Er9Q2z1T
寿司問題はやり方考えたが確認はしてない
再帰的に解けると想定
寿司2個を食べ終わる時間で寿司1個であるかのようにみなす (寿司セット)
たとえば寿司3個の場合なら、最も最短時間の寿司セットを作って寿司2個の場合に帰着させたら解けるはず
最も最短時間の寿司セットというは合ってるか不明だが、そういうやり方で少ない寿司の場合にもっていけるはず
再帰的に解けると想定
寿司2個を食べ終わる時間で寿司1個であるかのようにみなす (寿司セット)
たとえば寿司3個の場合なら、最も最短時間の寿司セットを作って寿司2個の場合に帰着させたら解けるはず
最も最短時間の寿司セットというは合ってるか不明だが、そういうやり方で少ない寿司の場合にもっていけるはず
2022/11/15(火) 12:09:32.73ID:Er9Q2z1T
とりあえず寿司3個の場合をランダムか総当りで生成して、2個を連結させる方法が正しいのか確認できそうだがしていない
2022/11/15(火) 12:25:07.74ID:ufTdawnB
>>14
たしかリニアオーダーでいける
たしかリニアオーダーでいける
2022/11/15(火) 13:28:00.47ID:ufTdawnB
Part9-413にコードがある
いろんな定義と証明が書いてあるメモが見つかったけど意味わからん
いろんな定義と証明が書いてあるメモが見つかったけど意味わからん
2022/11/15(火) 14:16:46.10ID:Er9Q2z1T
>>15はべつの言い方でいうと与えられたレーンで食べる順を確定させられるペアを見つけるってことだが
総時間が短いものか、空き時間が短いものか、空き時間が短いうちで最も最長のものか、そういういった組み合わせが考えられるが
正解があるかは不明
総時間が短いものか、空き時間が短いものか、空き時間が短いうちで最も最長のものか、そういういった組み合わせが考えられるが
正解があるかは不明
2019
2022/11/15(火) 16:22:52.97ID:Er9Q2z1T 単に空の時間が少ないようにペアをあわせていけば解ける気がしてきた
空は0として "313__"の場合はこうなって解ける
2行目への変化だと1秒と3秒の寿司を食べるとして4秒の寿司へ変わる
次は4秒寿司と3秒寿司が続けて食べられて7秒寿司へ
最後は一秒まって7秒寿司をたべて8秒で終わる
31300
34000
07000
空は0として "313__"の場合はこうなって解ける
2行目への変化だと1秒と3秒の寿司を食べるとして4秒の寿司へ変わる
次は4秒寿司と3秒寿司が続けて食べられて7秒寿司へ
最後は一秒まって7秒寿司をたべて8秒で終わる
31300
34000
07000
2119
2022/11/15(火) 16:42:03.18ID:Er9Q2z1T これもやってみたら手動で正解できた "123456789123456789" > 98秒
123456789123456789
303456789303456789
703056789703056789
709050789709050789
0090C07890090C0789
009000J89009000J89
0090000X90090000X9
00I0000XI0000000X0
00I0000YI000000000
00I0000Z0000000000
00W000000000000000
10以上の数値は英字で置き換えた
C 12
J 19
X 27
Y 54
Z 73
W 96
123456789123456789
303456789303456789
703056789703056789
709050789709050789
0090C07890090C0789
009000J89009000J89
0090000X90090000X9
00I0000XI0000000X0
00I0000YI000000000
00I0000Z0000000000
00W000000000000000
10以上の数値は英字で置き換えた
C 12
J 19
X 27
Y 54
Z 73
W 96
2022/11/15(火) 17:18:07.63ID:T423Zp9g
食べる、食べない=パス、の2択で再帰じゃないの?
食う カレントが値分後方へ移動、パス連続中フラグdisable
パス カレントが1つ後方へ移動、パス連続中フラグenable、パス連続可能回数セット
パスが連続出来る回数に制限があるので有限
9からパスし続けて良いのは8回まで。9回パスしたら9を食えてるよねって話
パスした次がより少ない値ならばパス連続可能回数は少ない方で上書き
> "93769682716711132249893"
だと1番目の9はパス連続可能回数8でパスした場合、2番目の3にカレントが移りパス連続可能回数は-1されて7
3のパス連続可能回数は2、7と比較し少ない方の2が上書きされる
パスした場合3番目の7へカレントを移しパス連続可能回数1
7のパス連続可能回数6と比較し少ない1
更にパスした場合、4番目の6
6の5と0を比較しパス連続可能回数0となり、ここではパスは選べない
パス連続中フラグとパス連続可能回数の2つのステータスが要る
フラグは能動的にパスしたのか食うものが無くて次に移動したかの区別
という解釈なんだけど間違ってる?もっと良い方法あるの?
食う カレントが値分後方へ移動、パス連続中フラグdisable
パス カレントが1つ後方へ移動、パス連続中フラグenable、パス連続可能回数セット
パスが連続出来る回数に制限があるので有限
9からパスし続けて良いのは8回まで。9回パスしたら9を食えてるよねって話
パスした次がより少ない値ならばパス連続可能回数は少ない方で上書き
> "93769682716711132249893"
だと1番目の9はパス連続可能回数8でパスした場合、2番目の3にカレントが移りパス連続可能回数は-1されて7
3のパス連続可能回数は2、7と比較し少ない方の2が上書きされる
パスした場合3番目の7へカレントを移しパス連続可能回数1
7のパス連続可能回数6と比較し少ない1
更にパスした場合、4番目の6
6の5と0を比較しパス連続可能回数0となり、ここではパスは選べない
パス連続中フラグとパス連続可能回数の2つのステータスが要る
フラグは能動的にパスしたのか食うものが無くて次に移動したかの区別
という解釈なんだけど間違ってる?もっと良い方法あるの?
2022/11/15(火) 18:45:27.83ID:1vmb6i3V
2択で再帰なら必然的に指数オーダーになるんじゃね
2419
2022/11/15(火) 19:36:17.27ID:Er9Q2z1T2022/11/15(火) 19:43:49.49ID:Er9Q2z1T
可能性としては、このアルゴリズム自体が最小値を出す可能性があるだけでかならずしも最小値ではないだとおもう
2022/11/15(火) 19:49:17.64ID:JkHLyKfV
27デフォルトの名無しさん
2022/11/15(火) 19:57:19.27ID:fFtAGper Pythonって{}がないの見ずらいよな
2022/11/15(火) 21:23:24.85ID:JkHLyKfV
>>25
可能性だけならただの乱数でもある
可能性だけならただの乱数でもある
2022/11/15(火) 21:35:09.43ID:Er9Q2z1T
2022/11/15(火) 21:45:59.70ID:Er9Q2z1T
大局的なこと、試行錯誤はやらずに空レーンでの待ちが少なくなるように2個セットをつくり続けて寿司個数が少ない場合に帰着させるだけ
これで正解が出させるほうが不思議
これで正解が出させるほうが不思議
2022/11/15(火) 21:59:09.72ID:JkHLyKfV
2_22
とか合う?
とか合う?
2022/11/15(火) 22:11:55.75ID:Er9Q2z1T
2022/11/15(火) 22:47:43.33ID:Ohwd0nE1
>>32
これじゃダメ?
1: *_22(取る)
2: _*22(食べる)
3: __22(休み)
4: __2*(取る)
5: *_2_(食べる)
6: _*2_(休み)
7: __*_(取る)
8: ___*(食べる)
これじゃダメ?
1: *_22(取る)
2: _*22(食べる)
3: __22(休み)
4: __2*(取る)
5: *_2_(食べる)
6: _*2_(休み)
7: __*_(取る)
8: ___*(食べる)
2022/11/15(火) 23:06:20.13ID:Er9Q2z1T
>>33
8を確認できたよ
8を確認できたよ
2022/11/15(火) 23:13:48.23ID:sZoewxQg
今上がってる
24
26
29
が線形時間で動くコード?
24
26
29
が線形時間で動くコード?
2022/11/15(火) 23:14:58.48ID:Er9Q2z1T
空なしで連続して食べれるなら食べてしまうやり方で失敗する例が2_22か
これがあるならば待ちで0か1で食べれるのに2以上待たないと駄目な例もありそうだ
ややこしい
これがあるならば待ちで0か1で食べれるのに2以上待たないと駄目な例もありそうだ
ややこしい
2022/11/15(火) 23:57:32.70ID:2AYn/DUp
これリニアオーダーで動くアルゴリズムがある事実証できてるの?
>>22はリニアになるの?
>>22はリニアになるの?
38デフォルトの名無しさん
2022/11/16(水) 00:21:37.28ID:G5qDJNLu リニアは完成しません
2022/11/16(水) 03:02:11.82ID:NCFSxcTe
連続食いアルゴリズムだと
2_22 よりも3_22や3_23の簡単だが
9以下が言えたら8では出来ないかチェックするために
寿司の総和時間が7、8となるように元の寿司を巨大化させ再チェックすればいいか
計算量はちょっと増えるがこれで見逃しはなくなるはず
2_22 よりも3_22や3_23の簡単だが
9以下が言えたら8では出来ないかチェックするために
寿司の総和時間が7、8となるように元の寿司を巨大化させ再チェックすればいいか
計算量はちょっと増えるがこれで見逃しはなくなるはず
2022/11/16(水) 05:56:24.40ID:oFhcaWBW
2022/11/16(水) 06:53:13.58ID:EsdxIXYC
2022/11/16(水) 12:57:24.30ID:NCFSxcTe
寿司をわざとデカくして連続食い優先アルゴリズムで、食べ飛ばしに対応させようとしたけど
たとえばこれだと今の寿司の時間の合計は41で、
合計が59になるように寿司増量するやり方は相当あって、その組み合わせを生成するだけでも困難な数だった
この方針は断念すべきか
"4_35_1264_23_434" > 60秒
たとえばこれだと今の寿司の時間の合計は41で、
合計が59になるように寿司増量するやり方は相当あって、その組み合わせを生成するだけでも困難な数だった
この方針は断念すべきか
"4_35_1264_23_434" > 60秒
2022/11/16(水) 13:03:55.89ID:NCFSxcTe
>>29と同じアルゴリズムと同じPythonだが
重複するコードとforを別の記述してコンパクト化
最小値候補を見つけるにすぎない、最小値を確定させるのは断念するか
https://ideone.com/1Y1x6Y
重複するコードとforを別の記述してコンパクト化
最小値候補を見つけるにすぎない、最小値を確定させるのは断念するか
https://ideone.com/1Y1x6Y
2022/11/16(水) 16:16:26.72ID:NCFSxcTe
2022/11/16(水) 17:53:26.07ID:c8CIrVo9
今のところ>>26が最小解をリニアオーダーで与える事の証明上がってこないけど5年前は誰かその証明つけてたん?
2022/11/16(水) 18:08:13.75ID:0SRtJZkl
寿司問題ってもう5年前か
時間が経つのはあっという間だな
時間が経つのはあっという間だな
2022/11/16(水) 18:09:58.47ID:73mUL53O
https://ideone.com/qPsn3a
5年前のメモです
証明が非常に簡略化して書いてあります
(書いた本人でも解読に時間がかかる)
またコードにコメントで計算量が書いてあります
参考にしてください
5年前のメモです
証明が非常に簡略化して書いてあります
(書いた本人でも解読に時間がかかる)
またコードにコメントで計算量が書いてあります
参考にしてください
2022/11/16(水) 18:16:29.54ID:KrTfkbbL
コレはわかんないな
なんかの基準で候補を絞ってその中で1番短いの見つけてるっぽいけど、その絞り込んだ候補の中に必ず最小元がある事の証明はコードだけではわからないよ
なんかの基準で候補を絞ってその中で1番短いの見つけてるっぽいけど、その絞り込んだ候補の中に必ず最小元がある事の証明はコードだけではわからないよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- フランス「G7に習近平主席を呼びたい」ドイツ「良い考えだ」 高市さん...? [237216734]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- 【悲報】中国営業に熱心な日本人タレントたち、中国のイベントが続々と中止に… まだ予定中のアイドルとか歌手とかたくさんいるけど [452836546]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
- 【悲報】SP500今日も暴落で完全に世界恐慌。高市恐慌として全世界で語り継がれそう [686538148]
