X



プログラミングのお題スレ 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/

宿題は宿題スレがあるのでそちらへ。
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秒程度で作れる
もちろん解くのは面倒
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
0969957垢版2018/09/22(土) 13:39:38.33ID:EQZKU8B1
最適解ではないが、人間にも実行可能なアルゴリズムを考えた
上のラインから順番に確定させていく感じ
https://ideone.com/nUgNh3
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)
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万行続く)
0980デフォルトの名無しさん垢版2018/09/24(月) 14:31:45.91ID:twjLvrgB
重複しても良いってなっているのでどうやっていいか分からなくなった。
重複なしなら単に順列の問題で全パターン調べれば良いだけなんだけどな。
0981デフォルトの名無しさん垢版2018/09/24(月) 14:56:44.30ID:hAv+WLv3
>>979
含むと何も並べなければOKって事になりそう
0986デフォルトの名無しさん垢版2018/09/25(火) 00:18:48.94ID:sMuinsuC
エビングハウスの忘却曲線っていって人間のベストな復習間隔があるんだけど
例えば今日勉強したことは明日復習して3日後、1週間一ヶ月ごとに復習すると完全に長期記憶になる
これをスマホアプリで管理するプログラミングしたい
理屈は簡単、カレンダーに今日覚えたことを「○○の20-40ページ」とか記入して
明日になったら今日やる復習を表示してくれるシステム

プログラミングのプの字も知らんのだ
どの言語を使うとかもわからんmacとxcodeはある
どういう作り方すればいいかわからない教えてください個人用に使う
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関係のスレを探して聞いてくれ。
0993デフォルトの名無しさん垢版2018/09/28(金) 21:10:47.83ID:WW7qy9i/
埋め
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 157日 0時間 44分 30秒
10021002垢版Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況