パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

カックロの問題を解くアルゴリズム1

2021-01-10 | プログラムをマスター計画2020

カックロのデータ設計の続き

どうしたらいいのか確定する前にできるところから始める。

下のプログラムもまだまだな気がするけど、何度も練り直したものだったりする。最初は変数名もaとかbばっかり。

少し丁寧な命名にすると、今度はソースをざっと把握しにくかったりしてバランスが難しい。

num_pattarn 1行の問題を候補値を返す

num_set 全体をnum_pattarnを読み出して、全ての地点の候補値を設定

one_set 2つの条件から絞り込めたものを解答用マップに書き込む

 

 

メインルーチン

こちらはまだ練り直しが少ないバージョン、今はいいけど、あとから見返した時、相当苦労しそう。

縦横のマージをして1つなら設定を繰返す。現在、少し難しい問題は解けない。

 

候補が2つだったら仮おきして計算ということができない。

仮おきが1回ならいいけど、複数回になるとするとその処理全体を木構造にしないといけなくて

木構造のデータはまだ検討中。検索済みをどのように持たせるか悩みどころ。

焦って作ると一気に瓦解しかねない。

縦と横から確定した数を入れている。

縦の問題を回転させて横の問題として解き、ロジックを簡単にしたつもり。

 

 

少し大きいサイズが解けたレアケース

アルゴリズム2まで到達できるかは微妙

 

追記

その後まとまらないまま、

一気に作ろうとして瓦解しました。

数時間真っ白になったあと カックロの問題を解くアルゴリズム2 完結編に続く


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。