プログラミングのお題スレ Part11
レス数が1000を超えています。これ以上書き込みはできません。
>>952
あくまでも過去の出題例、だからいいんじゃないですか? アウトかセーフか分からないときは答え公開しないほうが無難 >>955
アウトになる条件は、「エントリー後メールにて送付されるコーディング試験問題は、当社への応募以外の目的で無断使用しない」…@
だが、>>951 のリンクの問題は「エントリー後メールにて送付されるコーディング試験問題」ではないから@に反しない…A
さらに、無条件に誰でも見ることのできる問題であること…B
Aよりアウトではないと断定できるし、BがAの結論を補強する
結論として、>>951 のリンクの問題を公開しても問題ない
>>955 「アウトかセーフかわからない」という結論にどういう道筋で到達したの? お題:コンプリートパネル(出展:高校生クイズ2018)
5×5のパネルが与えられる。各パネルは赤色か白色である。
各パネルに侵入すると、そのパネルの色が赤なら白、白なら赤に変化する。
最初のステップは、場外(左下のパネルの左隣)から左下のパネルへ侵入することである。
以降のステップでは、上下左右に移動することができる。
ただし、ひとつ前のパネルや場外に移動することはできない。
すべてのパネルを白色にするための移動経路を構成せよ。
WWWRR
WWWWR
WWWWR
WWWRR
RRRRW
=> 10 RRRRURUUUL (→→→→↑→↑↑↑←)
WWWWW
WWWWW
WWWWW
WWWWW
WWWWW
=> 0 (移動の必要なし)
WWWWW
WWWWW
WWWWW
WRWWW
WWWWW
=> 21 RRRRULULLDDRULURRDRDL (必ずしも最短経路である必要はない) >ひとつ前のパネルや場外に移動することはできない
全部踏めばいいんだからライツアウトの解法の亜種で解けるんじゃねえの 状態を変えずに任意の場所まで移動できるなら
6箇所だけそれぞれ1つだけRだった場合を計算してあとは回転なりなんなりして重ね合わせればいけるな ↑
□□□
□□□→
2*3の全パターンで、この二つの方向のどちらかに抜ける経路が存在すればいい
あとは合成で何とかなる うーん。これはブルートフォースでやろうとするとかなり無駄が多くなって時間とメモリを山盛りに食いそうな予感。 5x5=25マスの赤or白の2値だから25bit、現在位置25通り(5bit)に前回位置相対で4通り(2bit)、あわせて32bitパターン? 5x5は序の口で、100x100くらいが本命でしょう
ついでに最短の最適解も
問題も作るだけならラクだから1000x1000だって0.1秒程度で作れる
もちろん解くのは面倒 プログラム考える以前に解くためのいいアルゴリズムが思い浮かばん 辺の長さが3以上の時は戻るの禁止ってルールは実質的に無視できそうだな
というのも閉路を2周すれば元通りに戻るわけだから
xxx
x↓x
x↑x
上に行ってまた下に戻るって進みたいときは
→↓x
↑←x // 中央「←」を3回目に踏むときは下に進む
x↑x
ってすればいいわけで
2*2 かどちらかの辺が 1 の場合以外は任意のパターンで解があることになる RWWWR
WRWWW
RWRWW
RWWRW
WRRWR
全てのパターンが解けて最長がこの形で44手かかる
となったけどできたばかりだからまだまだバグがありそう https://ideone.com/S7UA0k
表示までできるようになったので
ここでは5秒超えるので結果表示されないみたい
10年前のノートで2分半かかる
結果はこんな感じ
- - - - -
- - - - -
- - - - -
- x - - -
- - - - -
RRRRULDRULLDL 13
x - - - x
- x - - -
x - x - -
x - - x -
- x x - x
RRRRRUUUULLLLDDDDRRRURUULDLDDLUURDLURRUULLDL 44 最適解ではないが、人間にも実行可能なアルゴリズムを考えた
上のラインから順番に確定させていく感じ
https://ideone.com/nUgNh3 解法全然分からないけど
枝狩りもメモ化もせず愚直に全探索すると44手目で10760814742109228通りになるのか…ヤバイな
http://codepad.org/JXkGjMKb >>962の理屈上なら>>971のstepの累積和が3,355,443,200(=25<<27)になった時点で全通り出たことになって最短の上限になるのかな? ttps://cdn-ak.f.st-hatena.com/images/fotolife/m/motcho/20180127/20180127034515.png
連続殺人犯が全ての目撃者を消して完全犯罪を目論む 文字列のペアがn対与えられる。
s(1),t(1)
...
s(n),t(n)
この時、ペアを適切な数選び適切な順番で並べる事で
s(a1)s(a2)...s(ak) = t(a1)t(a2)...t(ak)
とできるかどうか判定せよ
(ペアを重複して選ぶのもOK) >>974
それって「s(i)=t(i)となるiが1つ以上存在するか」というだけのように思えるけど、違うかな? >>975
最初全く同じこと思ったわw
でもこれって十分条件に過ぎないんだな
a ab
bc c
s(1)s(2) = t(1)t(2) = 'abc' 応用だけは思い付いた
ATCGTTGTAC, AAATTTCTCTCTTTCT
GTGATGCGTTGCAGGT, ATGCCATGTGAC
AAATTGCTGAC, ATGTTGCGTC
ATGCGTACCCACG, AGTGCGTTCGTAC
...(以下、1万行続く) 重複しても良いってなっているのでどうやっていいか分からなくなった。
重複なしなら単に順列の問題で全パターン調べれば良いだけなんだけどな。 >>979
含むと何も並べなければOKって事になりそう >>981
結果じゃなくて入力に
一つも選ばないのがOKならそもそも問題として成立しないだろ >>969
ルール合ってるのかどうか知らないけど
ゲーム風にしてみた (Win専用)
http://fast-uploader.com/file/7093342064119/
PASS:11957
慣れると何となく解き方のコツが見えてくる
今まで解けなかった例は無さげ 任意のパターンで解けることはここですでに言及されてるよ エビングハウスの忘却曲線っていって人間のベストな復習間隔があるんだけど
例えば今日勉強したことは明日復習して3日後、1週間一ヶ月ごとに復習すると完全に長期記憶になる
これをスマホアプリで管理するプログラミングしたい
理屈は簡単、カレンダーに今日覚えたことを「○○の20-40ページ」とか記入して
明日になったら今日やる復習を表示してくれるシステム
プログラミングのプの字も知らんのだ
どの言語を使うとかもわからんmacとxcodeはある
どういう作り方すればいいかわからない教えてください個人用に使う >>986
このスレはそういう質問するスレではなく、誰かがお題を出して回答したい人がプログラミングして回答するスレだ。
そういう質問はまずは既存のソフトでそういうことが出来るのがないか以下のスレで聞いた方が良いと思う。
気軽に「こんなソフトありませんか?」Part.176
https://egg.5ch.net/test/read.cgi/software/1529929775/
それからどうしてもプログラムを自分で作ってみたいというのであれば何らかの言語を覚える必要があるが、
MacやiPhoneの場合は何が良いのか俺はよく知らない。この頃だと Swift なんだろうか? Swift は確か xcode
使って作れたと思うが、詳細は今の俺には分からん。MacOSやiOS関係のスレを探して聞いてくれ。 お前らってファイルそのものへの参照を禁止したうえでquineを自力で書ける? このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 157日 0時間 44分 30秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。