プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part15
http://mevius.5ch.net/test/read.cgi/tech/1564310397/
探検
プログラミングのお題スレ Part16
■ このスレッドは過去ログ倉庫に格納されています
2019/11/17(日) 09:00:22.10ID:xqEdXdr6
2019/11/17(日) 10:53:15.74ID:uilOlN75
>>1 おつ
3デフォルトの名無しさん
2019/11/17(日) 17:37:39.46ID:8gWobnsK val 乙 = "乙"
prontln(乙)
prontln(乙)
2019/11/18(月) 02:35:04.18ID:t9gVOJNg
お題:
https://i.imgur.com/JsMU4uh.jpg
明度が0〜9までのグレーの四角がグラデーション状に横並びにならんでいるとします
この状態だと隣接している四角と四角の明度の差が少ないので境目が見えづらいです
全ての四角同士の明度差ができるだけ大きくなるように並び替えるにはどういうロジックが考えられるでしょう?
四角の数が増えても対応できるような汎用的なロジックが望ましいです
両端は固定のままが理想ですが必須要件ではありません
・ボツ例:1〜4まで一つおきに左右端を入れ替える
(1) 1と8を入れ替える
(2) 2と7はそのまま
(3) 3と6を入れ替える
(4) 4と5はそのまま
※これだと4と5が隣り合ったままで明度差が少ない箇所が残るので最適解ではない
https://i.imgur.com/JsMU4uh.jpg
明度が0〜9までのグレーの四角がグラデーション状に横並びにならんでいるとします
この状態だと隣接している四角と四角の明度の差が少ないので境目が見えづらいです
全ての四角同士の明度差ができるだけ大きくなるように並び替えるにはどういうロジックが考えられるでしょう?
四角の数が増えても対応できるような汎用的なロジックが望ましいです
両端は固定のままが理想ですが必須要件ではありません
・ボツ例:1〜4まで一つおきに左右端を入れ替える
(1) 1と8を入れ替える
(2) 2と7はそのまま
(3) 3と6を入れ替える
(4) 4と5はそのまま
※これだと4と5が隣り合ったままで明度差が少ない箇所が残るので最適解ではない
2019/11/18(月) 05:41:33.12ID:8+qUVevR
Σ|a_n - a_{n+1}| を最大化する問題なのか
inf{|a_n - a_{n+1}|} を最大化する問題なのか
どっちなんだ?
inf{|a_n - a_{n+1}|} を最大化する問題なのか
どっちなんだ?
2019/11/18(月) 11:50:33.33ID:BCetHxzu
2019/11/18(月) 18:43:37.24ID:DjoGz+4S
8デフォルトの名無しさん
2019/11/18(月) 20:03:36.58ID:EbN/HVpO >>4
両端固定で最小隣接差を最大化する条件で回答する。Rですべての並べ方を虱潰しに
調べるのが https://ideone.com/paKF2d で、結果は>>6が言う通りになる。
n = 10 ではすぐに終わるが、それを超えると時間がかなりかかるし、環境によっては
メモリ不足になる。
もう少し効率的に調べるのが https://ideone.com/OsmpbQ で、n = 16 までは
すぐに終わる。それを超えると時間がかかるように段々なるので、さらなる効率化が
必要。
n = 10 と n = 16 の結果から、nが偶数の場合は>>6が言うように規則性が見られ、
nが大きくなっても並べ方は常に2通りで、例えば n = 256 のときは
0, 127, 254, 126, 253, 125, 252, ..., 2, 129, 1, 128, 255
0, 128, 1, 129, 2, 130, 3, ..., 253, 126, 254, 127, 255
になると予想されるが、それが正解であることを理論的に説明しないといけないな。
両端固定で最小隣接差を最大化する条件で回答する。Rですべての並べ方を虱潰しに
調べるのが https://ideone.com/paKF2d で、結果は>>6が言う通りになる。
n = 10 ではすぐに終わるが、それを超えると時間がかなりかかるし、環境によっては
メモリ不足になる。
もう少し効率的に調べるのが https://ideone.com/OsmpbQ で、n = 16 までは
すぐに終わる。それを超えると時間がかかるように段々なるので、さらなる効率化が
必要。
n = 10 と n = 16 の結果から、nが偶数の場合は>>6が言うように規則性が見られ、
nが大きくなっても並べ方は常に2通りで、例えば n = 256 のときは
0, 127, 254, 126, 253, 125, 252, ..., 2, 129, 1, 128, 255
0, 128, 1, 129, 2, 130, 3, ..., 253, 126, 254, 127, 255
になると予想されるが、それが正解であることを理論的に説明しないといけないな。
9デフォルトの名無しさん
2019/11/21(木) 21:52:25.50ID:1mUnuvuP >>4
【nが偶数の場合の>>8の予想を理論的に説明する】(等幅フォントでの表示推奨)
n = 10のとき、最小階差をd >= 6と仮定すると 0: 4, 5, 6, 7, 8
4に隣接できる数はなく、d = 5と仮定すると9だ 1: 5, 6, 7, 8, 9
けなので、数列が途切れてしまって続かない。 2: 6, 7, 8, 9
よってd >= 5はあり得ず、d = 4から調べれば良 3: 7, 8, 9
い。d = 4のとき各数が隣接できる数を列挙する 4: 0, 8, 9
と、右図のようになる。 5: 0, 1, 9
6: 0, 1, 2
7: 0, 1, 2, 3
8: 0, 1, 2, 3, 4
9: 1, 2, 3, 4, 5
これらの候補からそれぞれ2個(両端の0と9では 0: (4), (5), >6<, >7<, >8<
1個)ずつを選ぶ問題となる。4で、0と9を両方選 1: [5], 6, 7, 8, >9<
ぶと0→4→9で順列が終わってしまうため片方し 2: 6, 7, 8, >9<
か選べないから、8を必ず選ぶことが確定する。 3: 7, 8, >9<
同様に5で1が確定する。選択確定に[]、どちら 4: (0), [8], (9)
か一方を選択に()、非選択の確定に><の印をつ 5: (0), [1], (9)
けると、右図になる。 6: >0<, 1, 2
7: >0<, 1, 2, 3
8: >0<, 1, 2, 3, [4]
9: >1<, >2<, >3<, (4), (5)
【nが偶数の場合の>>8の予想を理論的に説明する】(等幅フォントでの表示推奨)
n = 10のとき、最小階差をd >= 6と仮定すると 0: 4, 5, 6, 7, 8
4に隣接できる数はなく、d = 5と仮定すると9だ 1: 5, 6, 7, 8, 9
けなので、数列が途切れてしまって続かない。 2: 6, 7, 8, 9
よってd >= 5はあり得ず、d = 4から調べれば良 3: 7, 8, 9
い。d = 4のとき各数が隣接できる数を列挙する 4: 0, 8, 9
と、右図のようになる。 5: 0, 1, 9
6: 0, 1, 2
7: 0, 1, 2, 3
8: 0, 1, 2, 3, 4
9: 1, 2, 3, 4, 5
これらの候補からそれぞれ2個(両端の0と9では 0: (4), (5), >6<, >7<, >8<
1個)ずつを選ぶ問題となる。4で、0と9を両方選 1: [5], 6, 7, 8, >9<
ぶと0→4→9で順列が終わってしまうため片方し 2: 6, 7, 8, >9<
か選べないから、8を必ず選ぶことが確定する。 3: 7, 8, >9<
同様に5で1が確定する。選択確定に[]、どちら 4: (0), [8], (9)
か一方を選択に()、非選択の確定に><の印をつ 5: (0), [1], (9)
けると、右図になる。 6: >0<, 1, 2
7: >0<, 1, 2, 3
8: >0<, 1, 2, 3, [4]
9: >1<, >2<, >3<, (4), (5)
10デフォルトの名無しさん
2019/11/21(木) 21:53:22.41ID:1mUnuvuP 3と6で候補がそれぞれ2個に絞られたから、それ 0: (4), (5), >6<, >7<, >8<
らが選択確定となり、右図になる。 1: [5], [6], >7<, >8<, >9<
2: [6], 7, >8<, >9<
3: [7], [8], >9<
4: (0), [8], (9)
5: (0), [1], (9)
6: >0<, [1], [2]
7: >0<, >1<, 2, [3]
8: >0<, >1<, >2<, [3], [4]
9: >1<, >2<, >3<, (4), (5)
2と7で残り候補がそれぞれ1個に絞られたから、 0: (4), (5), >6<, >7<, >8<
それらが選択確定となり、結局、可能な並べ方 1: [5], [6], >7<, >8<, >9<
は右図のように0の次に4か5から始まる2通りし 2: [6], [7], >8<, >9<
かないことが分かる。 3: [7], [8], >9<
4: (0), [8], (9)
5: (0), [1], (9)
6: >0<, [1], [2]
7: >0<, >1<, [2], [3]
8: >0<, >1<, >2<, [3], [4]
9: >1<, >2<, >3<, (4), (5)
同様にして、nが偶数の場合を一般化し、中央の2つの数n / 2 - 1とn / 2でそれぞれ
n - 2と1を選択確定、0とn - 1を一方選択とするところから始めて、順々に選択確定
させていくことができる。
>>8の予想を理論的に説明できたので、それに基づくプログラムを晴れて作成すると、
https://ideone.com/D3zdgX になる。
らが選択確定となり、右図になる。 1: [5], [6], >7<, >8<, >9<
2: [6], 7, >8<, >9<
3: [7], [8], >9<
4: (0), [8], (9)
5: (0), [1], (9)
6: >0<, [1], [2]
7: >0<, >1<, 2, [3]
8: >0<, >1<, >2<, [3], [4]
9: >1<, >2<, >3<, (4), (5)
2と7で残り候補がそれぞれ1個に絞られたから、 0: (4), (5), >6<, >7<, >8<
それらが選択確定となり、結局、可能な並べ方 1: [5], [6], >7<, >8<, >9<
は右図のように0の次に4か5から始まる2通りし 2: [6], [7], >8<, >9<
かないことが分かる。 3: [7], [8], >9<
4: (0), [8], (9)
5: (0), [1], (9)
6: >0<, [1], [2]
7: >0<, >1<, [2], [3]
8: >0<, >1<, >2<, [3], [4]
9: >1<, >2<, >3<, (4), (5)
同様にして、nが偶数の場合を一般化し、中央の2つの数n / 2 - 1とn / 2でそれぞれ
n - 2と1を選択確定、0とn - 1を一方選択とするところから始めて、順々に選択確定
させていくことができる。
>>8の予想を理論的に説明できたので、それに基づくプログラムを晴れて作成すると、
https://ideone.com/D3zdgX になる。
11デフォルトの名無しさん
2019/11/21(木) 21:54:24.25ID:1mUnuvuP nが奇数の場合にも偶数の場合と似たようにしてd >= (n - 1) / 2 はあり得ず、
d = (n - 1) / 2 - 1 から調べれば良いことが分かるが、偶数の場合と違い
選択確定できる数はない。>>8の元請け関数のforループの開始値をnではなく
n %/% 2 - 1に置き換えるだけでは、実行時間は5〜6%くらいしか短縮されない。
偶数の場合のような図の作成により、調べる組み合わせを減らしていくことは
できるが、プログラムを書くのはかなり面倒そう。
d = (n - 1) / 2 - 1 から調べれば良いことが分かるが、偶数の場合と違い
選択確定できる数はない。>>8の元請け関数のforループの開始値をnではなく
n %/% 2 - 1に置き換えるだけでは、実行時間は5〜6%くらいしか短縮されない。
偶数の場合のような図の作成により、調べる組み合わせを減らしていくことは
できるが、プログラムを書くのはかなり面倒そう。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」★2 [ぐれ★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★5 [蚤の市★]
- 神田沙也加さん元恋人で元俳優の前山剛久 六本木のメンズラウンジ勤務を報告「真叶(まなと)です。よろしく」 [muffin★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★5 [蚤の市★]
- ハリウッド実写版『ストリートファイター』初映像解禁 リュウ&春麗らのビジュアルも公開 [muffin★]
- 【麻雀】プロ雀士の岡田紗佳さんが勝訴、点数計算めぐる発言は「違法とは言えず」 大宮簡裁 [征夷大将軍★]
- ムミィ🥺いる❓🏡
- 【高市悲報】片山さつき「かじ取り間違えてデフレになったらどうすんの!😡」😲 [359965264]
- 【乞食速報】43インチ4Kモニターが19800円。テレビも見れるぞ [419111196]
- ママカースト、地獄すぎるwwwwwwwwwwwwwwwwwwwww [977790669]
- VTuber叩きが大流行してる理由、1枚の画像で解説される…!! [858219337]
- 寒すぎる(´ ・ω・`)
