プログラミングのお題スレ Part11

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2018/04/24(火) 20:45:14.49ID:ZY7R7Sru
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part10
https://mevius.5ch.net/test/read.cgi/tech/1514772904/

【出題と回答例】
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/

宿題は宿題スレがあるのでそちらへ。

0952デフォルトの名無しさん2018/09/18(火) 20:38:45.88ID:qJ7HW+J2
こういうのって答え公開してもいいんか?

0953デフォルトの名無しさん2018/09/18(火) 20:48:39.65ID:sp2kbyYS
企業がやってるのって大体駄目だったと思うで

0954デフォルトの名無しさん2018/09/18(火) 20:49:39.59ID:Iw2LHuqq
>>952
あくまでも過去の出題例、だからいいんじゃないですか?

0955デフォルトの名無しさん2018/09/19(水) 00:29:21.73ID:gYIP5Vsu
アウトかセーフか分からないときは答え公開しないほうが無難

0956デフォルトの名無しさん2018/09/19(水) 01:18:48.14ID:pHq1DkBS
>>955
アウトになる条件は、「エントリー後メールにて送付されるコーディング試験問題は、当社への応募以外の目的で無断使用しない」…@
だが、>>951 のリンクの問題は「エントリー後メールにて送付されるコーディング試験問題」ではないから@に反しない…A
さらに、無条件に誰でも見ることのできる問題であること…B
Aよりアウトではないと断定できるし、BがAの結論を補強する
結論として、>>951 のリンクの問題を公開しても問題ない

>>955 「アウトかセーフかわからない」という結論にどういう道筋で到達したの?

0957デフォルトの名無しさん2018/09/19(水) 19:43:34.67ID:KaiQ4rsk
お題:コンプリートパネル(出展:高校生クイズ2018)

5×5のパネルが与えられる。各パネルは赤色か白色である。
各パネルに侵入すると、そのパネルの色が赤なら白、白なら赤に変化する。
最初のステップは、場外(左下のパネルの左隣)から左下のパネルへ侵入することである。
以降のステップでは、上下左右に移動することができる。
ただし、ひとつ前のパネルや場外に移動することはできない。

すべてのパネルを白色にするための移動経路を構成せよ。

WWWRR
WWWWR
WWWWR
WWWRR
RRRRW
=> 10 RRRRURUUUL (→→→→↑→↑↑↑←)

WWWWW
WWWWW
WWWWW
WWWWW
WWWWW
=> 0 (移動の必要なし)

WWWWW
WWWWW
WWWWW
WRWWW
WWWWW
=> 21 RRRRULULLDDRULURRDRDL (必ずしも最短経路である必要はない)

0958デフォルトの名無しさん2018/09/19(水) 19:51:24.03ID:WMjcSrAA
>ひとつ前のパネルや場外に移動することはできない

全部踏めばいいんだからライツアウトの解法の亜種で解けるんじゃねえの

0959デフォルトの名無しさん2018/09/19(水) 19:59:02.78ID:ZUIw2oHI
状態を変えずに任意の場所まで移動できるなら
6箇所だけそれぞれ1つだけRだった場合を計算してあとは回転なりなんなりして重ね合わせればいけるな

0960デフォルトの名無しさん2018/09/19(水) 20:34:03.00ID:WMjcSrAA

□□□
□□□→

2*3の全パターンで、この二つの方向のどちらかに抜ける経路が存在すればいい
あとは合成で何とかなる

0961デフォルトの名無しさん2018/09/19(水) 21:11:11.50ID:zcXFtBV7
うーん。これはブルートフォースでやろうとするとかなり無駄が多くなって時間とメモリを山盛りに食いそうな予感。

0962デフォルトの名無しさん2018/09/19(水) 23:00:29.71ID:gYIP5Vsu
5x5=25マスの赤or白の2値だから25bit、現在位置25通り(5bit)に前回位置相対で4通り(2bit)、あわせて32bitパターン?

0963デフォルトの名無しさん2018/09/19(水) 23:25:52.07ID:WMjcSrAA
5x5は序の口で、100x100くらいが本命でしょう
ついでに最短の最適解も

問題も作るだけならラクだから1000x1000だって0.1秒程度で作れる
もちろん解くのは面倒

0964デフォルトの名無しさん2018/09/20(木) 01:27:25.92ID:B4lxWLis
>>957
手でしか試してないけど
解けないパターンとかありそうな予感
https://i.imgur.com/u8zgEum.png

0965デフォルトの名無しさん2018/09/20(木) 09:43:56.68ID:cMPVhU9i
プログラム考える以前に解くためのいいアルゴリズムが思い浮かばん

0966デフォルトの名無しさん2018/09/20(木) 12:37:05.73ID:B1/3j8uv
辺の長さが3以上の時は戻るの禁止ってルールは実質的に無視できそうだな
というのも閉路を2周すれば元通りに戻るわけだから

xxx
x↓x
x↑x
上に行ってまた下に戻るって進みたいときは

→↓x
↑←x // 中央「←」を3回目に踏むときは下に進む
x↑x
ってすればいいわけで
2*2 かどちらかの辺が 1 の場合以外は任意のパターンで解があることになる

0967デフォルトの名無しさん2018/09/20(木) 23:43:04.82ID:uzQ90Fqy
RWWWR
WRWWW
RWRWW
RWWRW
WRRWR

全てのパターンが解けて最長がこの形で44手かかる

となったけどできたばかりだからまだまだバグがありそう

0968デフォルトの名無しさん2018/09/21(金) 23:11:26.91ID:1M+bqJR8
https://ideone.com/S7UA0k
表示までできるようになったので
ここでは5秒超えるので結果表示されないみたい
10年前のノートで2分半かかる
結果はこんな感じ

- - - - -
- - - - -
- - - - -
- x - - -
- - - - -

RRRRULDRULLDL 13

x - - - x
- x - - -
x - x - -
x - - x -
- x x - x

RRRRRUUUULLLLDDDDRRRURUULDLDDLUURDLURRUULLDL 44

09699572018/09/22(土) 13:39:38.33ID:EQZKU8B1
最適解ではないが、人間にも実行可能なアルゴリズムを考えた
上のラインから順番に確定させていく感じ
https://ideone.com/nUgNh3

0970デフォルトの名無しさん2018/09/23(日) 05:22:08.89ID:QL0eQEru
解法全然分からないけど
枝狩りもメモ化もせず愚直に全探索すると44手目で10760814742109228通りになるのか…ヤバイな
http://codepad.org/JXkGjMKb

0971デフォルトの名無しさん2018/09/23(日) 06:45:48.27ID:QL0eQEru
>>970
メモ化のみの全探索でも厳しいね
https://ideone.com/TpZyFM

0972デフォルトの名無しさん2018/09/23(日) 07:02:07.82ID:QL0eQEru
>>962の理屈上なら>>971のstepの累積和が3,355,443,200(=25<<27)になった時点で全通り出たことになって最短の上限になるのかな?

0973デフォルトの名無しさん2018/09/23(日) 10:53:27.77ID:daMeAE67
ttps://cdn-ak.f.st-hatena.com/images/fotolife/m/motcho/20180127/20180127034515.png
連続殺人犯が全ての目撃者を消して完全犯罪を目論む

0974デフォルトの名無しさん2018/09/23(日) 12:36:34.31ID:FE85zabB
文字列のペアがn対与えられる。
s(1),t(1)
...
s(n),t(n)

この時、ペアを適切な数選び適切な順番で並べる事で
s(a1)s(a2)...s(ak) = t(a1)t(a2)...t(ak)
とできるかどうか判定せよ
(ペアを重複して選ぶのもOK)

0975デフォルトの名無しさん2018/09/23(日) 12:41:57.26ID:A0stA7Ax
>>974
それって「s(i)=t(i)となるiが1つ以上存在するか」というだけのように思えるけど、違うかな?

0976デフォルトの名無しさん2018/09/23(日) 12:42:44.79ID:A0stA7Ax
>>975は勘違いでした。取り消します

0977デフォルトの名無しさん2018/09/23(日) 13:27:09.60ID:yBlaBAG2
>>975
最初全く同じこと思ったわw
でもこれって十分条件に過ぎないんだな

a ab
bc c
s(1)s(2) = t(1)t(2) = 'abc'

0978デフォルトの名無しさん2018/09/23(日) 17:12:26.93ID:daMeAE67
応用だけは思い付いた

ATCGTTGTAC, AAATTTCTCTCTTTCT
GTGATGCGTTGCAGGT, ATGCCATGTGAC
AAATTGCTGAC, ATGTTGCGTC
ATGCGTACCCACG, AGTGCGTTCGTAC
...(以下、1万行続く)

0979デフォルトの名無しさん2018/09/24(月) 12:45:56.45ID:ZWCrk0/p
>>974
空文字列は含むの?

0980デフォルトの名無しさん2018/09/24(月) 14:31:45.91ID:twjLvrgB
重複しても良いってなっているのでどうやっていいか分からなくなった。
重複なしなら単に順列の問題で全パターン調べれば良いだけなんだけどな。

0981デフォルトの名無しさん2018/09/24(月) 14:56:44.30ID:hAv+WLv3
>>979
含むと何も並べなければOKって事になりそう

0982デフォルトの名無しさん2018/09/24(月) 15:56:26.13ID:IwP3sRIS
>>981
結果じゃなくて入力に

一つも選ばないのがOKならそもそも問題として成立しないだろ

0983デフォルトの名無しさん2018/09/24(月) 16:14:35.67ID:twjLvrgB
>>974
Kotlin
但し、重複選択は考慮していない。
https://paiza.io/projects/iRHJjFRj9BJIydX10SIn0Q

0984デフォルトの名無しさん2018/09/24(月) 19:57:46.70ID:6VO2RDhD
>>969
ルール合ってるのかどうか知らないけど
ゲーム風にしてみた (Win専用)
http://fast-uploader.com/file/7093342064119/
PASS:11957

慣れると何となく解き方のコツが見えてくる
今まで解けなかった例は無さげ

0985デフォルトの名無しさん2018/09/24(月) 20:25:58.77ID:8mxLASGw
任意のパターンで解けることはここですでに言及されてるよ

0986デフォルトの名無しさん2018/09/25(火) 00:18:48.94ID:sMuinsuC
エビングハウスの忘却曲線っていって人間のベストな復習間隔があるんだけど
例えば今日勉強したことは明日復習して3日後、1週間一ヶ月ごとに復習すると完全に長期記憶になる
これをスマホアプリで管理するプログラミングしたい
理屈は簡単、カレンダーに今日覚えたことを「○○の20-40ページ」とか記入して
明日になったら今日やる復習を表示してくれるシステム

プログラミングのプの字も知らんのだ
どの言語を使うとかもわからんmacとxcodeはある
どういう作り方すればいいかわからない教えてください個人用に使う

0987デフォルトの名無しさん2018/09/25(火) 02:12:07.33ID:JXqOIinx
ここはそういうスレではないよ

0988デフォルトの名無しさん2018/09/25(火) 02:40:25.79ID:VjhU4mZC
>>986
このスレはそういう質問するスレではなく、誰かがお題を出して回答したい人がプログラミングして回答するスレだ。

そういう質問はまずは既存のソフトでそういうことが出来るのがないか以下のスレで聞いた方が良いと思う。

気軽に「こんなソフトありませんか?」Part.176
https://egg.5ch.net/test/read.cgi/software/1529929775/

それからどうしてもプログラムを自分で作ってみたいというのであれば何らかの言語を覚える必要があるが、
MacやiPhoneの場合は何が良いのか俺はよく知らない。この頃だと Swift なんだろうか? Swift は確か xcode
使って作れたと思うが、詳細は今の俺には分からん。MacOSやiOS関係のスレを探して聞いてくれ。

0989デフォルトの名無しさん2018/09/27(木) 22:18:07.66ID:/SCmCNkm
お前らってファイルそのものへの参照を禁止したうえでquineを自力で書ける?

0990デフォルトの名無しさん2018/09/27(木) 23:09:56.51ID:TEegUJED
もう少し詳しく

0991デフォルトの名無しさん2018/09/28(金) 01:19:09.36ID:voc6Rn8M
次スレは

0992デフォルトの名無しさん2018/09/28(金) 10:09:57.20ID:phwOkayR
次スレ
プログラミングのお題スレ Part12
https://mevius.5ch.net/test/read.cgi/tech/1538096947/

0993デフォルトの名無しさん2018/09/28(金) 21:10:47.83ID:WW7qy9i/
埋め

0994デフォルトの名無しさん2018/09/28(金) 21:28:45.12ID:CwsEryp/
うめ

0995デフォルトの名無しさん2018/09/28(金) 21:28:53.05ID:CwsEryp/
うめ

0996デフォルトの名無しさん2018/09/28(金) 21:29:01.92ID:CwsEryp/

0997デフォルトの名無しさん2018/09/28(金) 21:29:15.02ID:CwsEryp/

0998デフォルトの名無しさん2018/09/28(金) 21:29:28.35ID:CwsEryp/
あさうめ

0999デフォルトの名無しさん2018/09/28(金) 21:29:36.27ID:CwsEryp/
うめ

1000デフォルトの名無しさん2018/09/28(金) 21:29:44.58ID:CwsEryp/
うめ

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 157日 0時間 44分 30秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。