The Fool In The Valleyの雑記帳

-- 好奇心いっぱいのおじいちゃんが綴るよしなし事 --

コンピュータ

お化けテレビの正体

月曜日の夜明け前、暗いはずのリビングルームが明るくなっていて音がするのに驚くとテレビがついている。不思議だったが、消してそれ以上は何も考えなかった。それが、火曜日の朝も自動的についた。タイマーが誤ってセットされているかと疑ったがそうはなっ…

Mindstorms最新事情

LEGOのMindstormsの20年来のファンで、写真に示すように初代のRCXからNXT、EV3と使ってきました。 これまで、7,8年ごとに進化してきているので、そろそろ次が計画されているかと思って調べたら色々と事情が変わって来ているようです。 ① Scratchの採用EV3…

数独でPythonを 10

Javaで書いたプログラムをPythonに移植するという作業を通してPythonに慣れよう、ということでスタートしたプロジェクトですが、「数独でPythonを 1~9」で書いてきたように、処理を①静止画から数独の問題を抽出する、②抽出した問題を解く、という二つのモジ…

ハノイの塔

「箱入り娘」をロボットに解かせるというプロジェクトの準備としてリアルなパズル盤をAmazonで探しました。将棋をテーマにした「王将出陣」という商品があったのでそれを購入することにしたのですが、その時、「よく一緒に購入されている商品」として「ハノ…

箱入り娘

「箱入り娘」と呼ばれるパズルがあります。ひょんなことからこれをスマートフォンに入れてみたら結構難しくてハマってしまいました。 パズルは上の画像に示すようなもので、形の異なるブロックを縦横にスライドさせて、一番上にあるピンクの大きなブロックを…

数独でPythonを 9

「数独でPythonを6」で記した数独の解法アルゴリズムを実装するために、いくつかのクラスを定義する。● 数独の各マスをオブジェクトとして扱うためのクラス class TableElement: def __init__(self): self.defVal = 0 self.candList = [1,2,3,4,5,6,7,8,9] …

数独でPythonを 8

「数独でPythonを 6」で書いた探索のアルゴリズムを実装するには、仮定を置いた時の状態を記憶していく必要があるが、それには連結リスト(linked list)を使うのがいいだろう。 連結リストは、一連のノードが、任意のデータフィールド群を持ち、次(および…

数独でPythonを 7

Pythonでコードを書き出したとき、最初に引っかかったことについて、忘れないようにメモ。 動的型付け mutable/immutable shallow copy/deep copy プログラミング言語には、動的型付けと静的型付けという大きな区分がある。Pythonは動的型付け言語で、プログ…

数独でPythonを 6

数独解法のアルゴリズム数独のルールは単純である。 横9マス、縦9マス、3×3のブロック内に同じ数字が入らない、というルールに従って解くとすれば、解法のアルゴリズムは次のような疑似コードで描くことができる。 while 確定したマスの数が81個より少ない…

数独でPythonを 5

前回までで、カメラで撮影した画像から、数独盤面の画像を切り出すことができた。次のステップはその盤面の画像の各マスの文字を認識し、問題をコンピュータで処理できる数学的表現に置き換えることである。そこで、盤面の画像をOCRを使って二次元のリストに…

藤井二冠のPC

先月、AbemaTVトーナメントで優勝した藤井二冠が、賞金の使い道を聞かれて、「パソコンのパーツ」と言っているのをネットTVで見ました。 times.abema.tv それを見ながら、高校生らしいなあとほほえましく思ったのですが、この人の場合、やはり格が違いました…

数独でPythonを4

Python-OpenCVの開発環境の準備ができたのでプログラムの作成を開始しました。 目標とするプログラムは、 数独の問題を取り込む処理 数独の問題を解く処理 の2段階に分けて考えることができます。1はPCに接続したWebカメラで数独の画像を撮影し、その画像か…

数独でPythonを3

使い続けていると当たり前のことになってわざわざメモする必要もないと感じることでも、一年、いや半年も使わないでいると、あれ?どうなってたっけということがままあります。還暦をとうに過ぎるとそれが普通です。(笑)というわけで、Pythonのプログラム…

数独でPythonを2

開発環境を準備しました。そのステップを備忘のため記しておくことにします。ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Pythonを使うための環境としては、 The Python Package Index(PyPI) かAnacondaがある。ここでは、データサイエン…

MNIST Database 

数字認識のための学習用データセットとして、手書き数字の画像を集めたMNIST (Modified National Institute of Standards and Technology) databaseが広く使われています。このデータセットは、文字通り、NIST(アメリカ国立標準技術局)の持つ大規模データ…

数独でPythonを1

2年前、数独の問題をカメラで撮影して自動的に解くプログラムをJava-OpenCVで作りました。それは Webカメラでカラー画像を取り込む 白黒二値化、反転して膨張処理 輪郭抽出して四角形で近似し、コーナー座標を抽出 透視変換して文字認識用のイメージ生成 文…

1998年の論文

最近読んだ本の中にSergey BrinとLarry Pageが1998年にGoogleについて最初に記した論文(”The Anatomy of a Large-Scale Hypertextual Web Search Engine")のことが言及されていました。彼らの論文を実際に読んだことはありませんでしたが、Stanfordの学生だ…

ルービック・キューブ・ソルバ―

Mindstormsはアイデアと工夫で様々なロボットや機械を作ることができるLEGOの商品で、世界中で楽しまれています。そのMindstormsで作られた作品がいろいろと公開されていてYoutube等で見ることができますが、以前ルービック・キューブを解くロボットが作られ…