パーソナルブログメモリ

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

Pythonで良問を解いてみる

2021-08-01 | プログラムをマスター計画2021
夏の暑さのせいなのか、東京のさんたんたる現状のせいなのか、このところ気力がスーッと抜けている。 CodinGameの練習問題も難しいのばっかり残っていて、さっぱり解けない。   そこで簡単な方の部類に入る Clash of Codeの問題を 競わないで解いてみます。 この画面から承認された問題をみれます。 ここで最近承認された問題でScoreが10以上のもの対象で 後は問 . . . 本文を読む

プログラムの難問に挑む手法4 チューリングマシン

2021-07-14 | プログラムをマスター計画2021
馬車馬のように問題を解いているとプログラムの問題もそんなにパターンがあるわけでもないような気がします。 チューリングマシンも何度か作っているので... https://www.codingame.com/training/hard/turing-machine   過去ここでHaskellの学習をしていたらしいです。今となっては謎の呪文に近い。 たぶん解こうとして解けなかったの . . . 本文を読む

プログラムの難問に挑む手法3 チェスの特殊移動

2021-07-13 | プログラムをマスター計画2021
今回は仕様にはまったケース 昔からあるゲームは生き残るために独特のルールが存在していて、プログラム化泣かせだったりします。   https://www.codingame.com/training/hard/chess-moves-on-fen-position チェスの指し手からボードの状態を作成する問題 まずFENというボード状態を簡易圧縮したものを解凍するルーチンと最期に . . . 本文を読む

プログラムの難問に挑む手法2 4色塗り分けアレンジ

2021-07-13 | プログラムをマスター計画2021
今回はうまくいかなかった版、それでも手を動かすと少しは扉が開く話。 実際難問は解けないものも多い、システム開発とかでも、うまくいかないことのほうが多い。 少し前、政府系のシステム開発の案件で柔軟に折衝能力がある方という記述をみて よほど仕様を振り回す政府方なんだろうなと苦笑いしてしまった。   問題はこちら https://www.codingame.com/training . . . 本文を読む

プログラムの難問に挑む手法1 クロスワードを作る

2021-07-12 | プログラムをマスター計画2021
挑んでみたのはこちら、100%解答率が38%と低め https://www.codingame.com/training/medium/crossword   クロスワードを解く問題かと思いきや、答えからクロスワードを作る問題 水平2つ 垂直2つのワードから条件にそって作成できる数を答える。1つのみならその解答を表示     着手前に悩んだ所 1. . . . 本文を読む

Python3 listをreplaceする関数

2021-06-24 | プログラムをマスター計画2021
https://www.codingame.com/training/easy/if-then-else この問題を解くためにlistのreplaceが必要になって作成したもの(1〜6行) さらに個別パターン認識して計算をする。   問題はif elseでネストしたソースから全てのルートパスを探し出しだすというもの (テストケース数の算出などに使います)   そこ . . . 本文を読む

Pyxelでリバーシを作ってみる

2021-06-21 | プログラムをマスター計画2021
https://github.com/suginoha/trypyxel pyxelでリバーシを作ってみました。 pyxelが動作する環境で、2つのファイルを置いたフォルダを端末で開き python3 h4.pyで起動します 気を抜くと、まれに負けます。この画像から修正1つ加えています。 ポイントはびっくりするぐらいの不思議なメロディーが流れます。たぶん   . . . 本文を読む

in list型を使うならin set型のほうが速い

2021-06-16 | プログラムをマスター計画2021
変わった式に当てはまるパターンを解く問題   値が何かの2乗を計算するためにあらかじめ2乗のリストを作っておいてその中にあるかの判定 in を使ってみる しかしこの問題 時間チューニングしてあって 後半の難題がタイムアウトをおこした。   ふむ、これ以上のチューニング難しいなと思ってリストを集合型にしてみるとなんとか解けました。 (単に0.5乗したものと0.5乗して . . . 本文を読む

プログラムの問題を解く過程を5分毎にさらす (方向性をあやまる)

2021-06-14 | プログラムをマスター計画2021
プログラムの問題を解く経過を5分ごとにさらしてみる。   問題文をみてパスファインディングと作り始める。 5分 データの骨格とおおまかな流れが確定   10分 パスファインディングの部分を作成   15分 基本的には、だいたい完成か   そもそもこれは長さではなく時間なのでデータ名をごっそり変えていく この問題で特に問題と . . . 本文を読む

抽象的の意味を間違えていた話

2021-06-09 | プログラムをマスター計画2021
レオンハルト・オイラー wikipediaの紹介だと 18世紀の数学界の中心となり、続く19世紀の厳密化・抽象化時代の礎を築いた とあります。 厳密化が重要というのはBOTプログラムなどを作っているとよくわかるのですが抽象化とは はて?   間違えていたのは抽象化があいまいなものと思っていた点(実際はそういう意味もある) 知らなかったのは物事の本質を抽出するといった意味もある所 . . . 本文を読む

点が三角形の内側にあるか判定するプログラム Python3版

2021-06-07 | プログラムをマスター計画2021
点が三角形の内側にあるか判定するプログラムを作る問題があって作ってみたルーチン (参考文献の最初にあるプログラムのほぼ移植) 内積とか外積、頭が理解してくれない     ソースはこちらにおいてます https://colab.research.google.com/drive/18T4sm6Hqr-fFy3Hqe-x9HUOwAHaMbF2J?usp=shari . . . 本文を読む

Project Eulerをやってみる

2021-06-05 | プログラムをマスター計画2021
問題の答えは1つの数値 それをプログラムで解いていく、   人は山があって登り始めると続けてしまうのかもしれない。 レベル1までやってみることにした。   問題は数学よりで抽象的なものが多く100万まで計算とか多い。 正解を入力してもなんかのタイミングか正解と認識しないこともたまにあってこれには困った。 間違えると1分まちとかになります。 あと、曲がった数字を常 . . . 本文を読む

C言語は難しい デバッグ中

2021-05-29 | プログラムをマスター計画2021
5+7をそのまま表示しようとするとこうなる   キャストかなとかJavaっぽいことを適当にしてもこうなる ヒントがすぐ上 10行目にあるのに見落としている   powなのかMath.powなのかmath.Powなのかmath.powなのか言語によって異なる大文字小文字問題   変数のスコープこの頃からあったか! 初めてC言語を使った頃の . . . 本文を読む

micropython を Ubuntu 20.04.2 LTS で動かしてみる リスト操作、クラステスト、時間取得、ランダムシャッフル

2021-05-24 | プログラムをマスター計画2021
RP2040とかを使うのにmicropythonを使うそうなので、学習してみました。   インストール。   こんなところに小さくインストールされます。   リスト、クラス、時間取得、ランダムの基本的な動作確認をしてみました。 時間に関してはcpythonとかの影響があるようです。(ほぼ、わかっていません) ランダムはGitにあがっていたmyc . . . 本文を読む