クラフトフェア松本2018(51)







d0108132_11170973.jpg
行列ができるブースの2軒目。
FRP樹脂で作った時計や電球の傘。

------------



今日は墓参りに行って、お昼を食べて帰ってきた。
午後、雑誌を読んでいたら数独が載っていたのでやってみた。
まだよくわかっていないPythonで10行あまりの再帰プログラム(数独のデータを除く)を
書いてラスベリーパイに試行錯誤をやらせるのだが、一瞬で答えが出てくる。
numpyというライブラリーで行列を扱ったので簡単にできた。

import numpy as np

org = np.array(
[[0,0,3, 0,7,0, 0,0,1],
[0,5,0, 2,0,6, 0,7,0],
[0,6,0, 0,0,5, 3,0,0],

[0,0,2, 0,0,0, 0,0,4],
[4,1,0, 0,0,0, 0,9,5],
[9,0,0, 0,0,0, 7,0,0],

[0,0,7, 1,0,0, 0,6,0],
[0,8,0, 7,0,4, 0,1,0],
[3,0,0, 0,5,0, 4,0,0]]
)

t = org.copy()


def place(pos):
   if pos > 80: print t; debug = raw_input('finish ')
   if t[pos//9,pos%9] == 0 :
      for x in range(1, 10):
         # 行にxがあるか
         if x in t[[pos//9],:]: continue
         # 列にxがあるか
         if x in t[:,[pos%9]]: continue
         # ブロックにxがあるか
         if x in t[:,range(pos%9//3*3,pos%9//3*3+3)][range(pos//9//3*3,pos//9//3*3+3),:]: continue
         t[pos//9,pos%9] = x
         place(pos+1)
         t[pos//9,pos%9] = org[pos//9,pos%9]
   else: place(pos+1)


place(0)




.



[PR]

by tullyz1 | 2018-09-23 16:25 | Comments(8)

Commented by roxanne6 at 2018-09-23 20:54
数字がいっぱいで頭が痛くなりそうです
電球の傘よさそうです
Commented by sacra fragola at 2018-09-23 22:36 x
こんばんは。
数独、やり始めるとちょっとはまりますよね。
しかし、ラズベリーパイにやらせるとは・・・
やはり頭の良い方は考える事が違いますね、私のような
低能力者にはサッパリの世界です。
Commented by tullyz1 at 2018-09-23 23:34
>roxanne6さん
¥マークの付く数字にはお強いのでしょう^^ 
電球の傘は悪くないのですが、お値段が^^; 国産レンズが買えそうです。
Commented by tullyz1 at 2018-09-23 23:42
>sacra fragolaさん
数独とかの単純作業をやっているとすぐ眠くなるんです^^; 
会社でもワンパターンな仕事は超苦手です。すぐ間違えるし。自動化するのはワクワクするんですが。
仕事のプログラムは面白くないですが、こういうパズルみたいなものは
頭の体操になっていいですよ。いや、これからはボケ防止に必要なのかも^^
Commented by Neoribates at 2018-09-24 10:14
あは,数独をやらせるとはヽ(  ̄д ̄;)ノ オテアゲー
電球の傘,そんなにお高いのですかぁ~
少量しか作らないから高くなるのでしょうが,とにかく作家モノは名が出ていようと出ていまいと高く値付けをするので,腹が立ってしょうがなくなります.気に入ったものなら良いじゃないか,と思ってもそれがある意味法外な値付けがよくあるのですよね.
Commented by tullyz1 at 2018-09-24 14:08
>Neoribatesさん
もう少し難しいかと思ったのですが、10行程度でプログラムが書けたのにはちょっと驚きました。
人間がやるのとは違い、隅から埋めていき、途中で矛盾が出たら一歩戻ってやり直すことを
ひたすら繰り返します。それでも1秒もかからず一瞬で答えが出ます^^
FRP樹脂の置時計を求めてたくさんの人が並んでいました。たくさん作ればいいのにと思うのですが、
作るのがかなり面倒なようで今年も数が限られていました。黄色味を帯びた乳白色が他にないといえば
そうなのですが・・・。
Commented by minton at 2018-09-27 16:20 x
この傘、数年前にあがたの森で見た記憶があります。

数独をちゃんと理解していなかったのですが、3x3のブロックが3x3で構成されているので穴埋めをするものと配列が9x9なんですね。
初期値をstaticに指定しているのでこの行数に収まっているということですか。
こういうプログラミングは楽しそうです。
Commented by tullyz1 at 2018-09-27 16:46
>mintonさん
そんなに前からありましたかね。まあ、毎年見ているような記憶はありますが^^

数独って月刊誌みたいなのもありますし、問題を印刷する機能?をもった海外プリンターもあります^^
海外ではsudokuと呼ばれています。
結構ハマってやっている人がいますよ。
9x9の配列を入力するだけで結構手間がかかりますし、間違って入力した時の対応とか入れたら
どうでもいいことに行数を取られます。
いかに短くエレガントなプログラムを書くかというのが昔は流行っていました。
再帰法なんて業務アプリでは使いませんしね^^
名前
URL
削除用パスワード

<< クラフトフェア松本2018(52) クラフトフェア松本2018(50) >>