以前作成したA*アルゴリズムを使った迷路作成と解法
高速化版
これを作るために改良しました。
迷路作成部分の方はどうもいまひとつ遅い。設計上の最大のサイズだと10s以上かかる。
if文でinを条件にするときlist型よりset型の方が全然速そうな記事を見つけて
それなら検討していた別のアルゴリズム使えるかもと実装してみる . . . 本文を読む
プログラムの作成のパターンを説明してみます。
これはウラムという人が会議の最中に暇つぶしに書いたもので、
素数に何らかの規則性があるのではないかという図。
ウラムさん最初に数字を順にらせんに書いて
その数字の中で素数だけ色をつけたもの。
下が39999までやってみた例です。なぜか縦横斜めに線が現れます。
<プログラムの作成手順>
着手しようとし . . . 本文を読む
ブログの記事からだと2年ぶり、時が立つのは速い。
Processingでちょっとやってみたいことがあってversion 3.5.3をダウンロード
解凍してprocessing-3.5.3のフォルダーを端末で開く
端末で
./processing
Enterで起動
これだけで開発環境が完成!
かなり汎用的なプログラムも作れるはずなんんだけど . . . 本文を読む
MENSAの本の問題をながめていて、
Pythonで解けそうなので
3問ほどぐるぐる回して解いてみました。
1問目 math.gcd()をうまく使えば5行で書けます。
2問目 配列を==で判断できるところがPython。
3問目 本の答えは32、プログラムは別の答えも見つけてしまいました。 . . . 本文を読む
以前、何故かこんなタイトルの記事を書いている。
見直してみるとおそらくその1で挫折するのではないかという内容
1日でpythonをマスターできるような記事をめざして書いてみる その1
ほー、いきなりevalとか普通使わない命令を使っています。
eval("命令")でなかの文字列をプログラムとして実行するすごいやつです。
&nbs . . . 本文を読む
数年放置していたもう一つのブログに記事を久しぶりに書いてみました。
主にコンピュータ
3つ追加してみました。
Python3 三目並べで☓の勝つ全パターンを数える(想定レベル そんなに育っていないポチ級)
ブラウザーのみでPython3プログラムした動画を作成してみる。難易度は入門編(YouTubeの動画)
ChromeでPython(FC2の動画) . . . 本文を読む
2020年までにプログラムをマスターさせる計画を1から見直してみます。
<問題 中学3年級>
無限多重根号で答えが整数値になりそうなものと、その無限多重根号内で繰り返される数値(2から10000まで範囲)を表示してください。
(ただし根号の繰り返し計算は無限ではなく30回として、その答えが整数値との誤差が0.0001内ならその整数値を答えとみなします)
&n . . . 本文を読む
誰かがすでに言っている?それともアルゴリズムの世界ではすでに常識、私自身知っていたが忘れた、かは知らない。
(かなり明快なので誰も気づかないとは思えないけど...)
複数点を結ぶ最短距離は交差しない
100個程度の座標を最短距離で結ぶアルゴリズム
全点の中の数点を選びその入れ替えを全パターン試してもっとも短いものを選択していく
これを延々繰り返す。
&n . . . 本文を読む
最短経路問題に簡単な鬼ループで迫ってみたい
データを作るのはけっこう面倒
最初に緯度経度のCSVデータを探して、まず表示させることに
<参考資料>
万物はすべて座標値(経緯度数値)を持っている
<プログラムイメージ>
CSVデータを読み込みSiroクラスへ
緯度経度のデータから緯度経度の範囲を求める
700x500の表示範囲に収ま . . . 本文を読む
前回
pygameでA* アルゴリズム 要件定義、基本設計
(2022 7/1 追記 実はA*ではありませんでした。A*はこんなものだなと想像で
別の似たようなアルゴリズムを開発してしまった記事になります)
動画はこちら
<プログラムの説明>
表示位置の指定
pygameの初期設定
迷路の作成部分
mz33は迷路のひと . . . 本文を読む
タイトルのようなことをどうやって実装しようかと
python 優先順位 挿入でググると最初にheapqというPython3のドキュメントがヒットしたのでそれを検証
heappush後にprintしてみると順番がよくわからない。
しかしheappopで最小のものを取り出しているのでOK!
. . . 本文を読む
ゴールまでのX,Y座標の小さいものを優先順位として、探索量を少なくします。
<要件定義>
迷路を描いて、解答までの過程を表示
A*アルゴリズムの利用
開発環境
OS ubuntu 18.04
言語 Python 3.7.3
利用ライブラリ pygame 1.9.6
開発ツール Atom
<基本 . . . 本文を読む
またCodinGameの問題Practice Classic puzzle - Easy Organic Compoundsをいろいろな言語で解いてみます。
問題
文字列の数Nが最初に渡され
以下文字列の炭素結合(たぶん高校の化学で学びます)が正しければVALID間違っていればINVALIDと答える。
各CHnのまわりに(n)があり、その上下左右 . . . 本文を読む
プログラムを学んで何をするかというとシステム開発が主な仕事
企業から何かを依頼され、それに対応したシステム開発をする。
プロジェクトとしてゲームの開発は経験ないですが、あまり変わらないと思います。
それらに一連に関して今までやってきた開発の話をちょこっと添えて全体像を書いてみます。
この記事にかかれている「〇〇の基本」のキーワードを画像検索して画像をみてくだ . . . 本文を読む
言語は1つマスターしてしまえば同じ系列のものに流用できます。
言語特有のものであってもそれが有意義なものなら他の言語にも付随していくことも多いです。
CodinGameの最新のコンテストの参加者が主に使っている言語はPython3、C++、Java、C#、続くのはJavaScript
この5つ言語で2160人の参加者の85%占めています。
そこで、Codin . . . 本文を読む