「ナンプレ」で遊ぶ

数あそびが面白い。「ナンプレ」という。下図のように3x3のマス目のブロックが縦横9個ある。

問題は各ブロックに1から9までの整数をだぶらないよいう入れる。且つ縦9個、横の9個のマスにも1から9までがだぶらないようにする。これが問題。例えば、中段左のブロックを考えてみよう。数1は7のマスの左の空マスのみ(一意)に書ける。だからそこに1と書く。数2は2つの空マスが候補として残るので何もしない。等等。

上の例は「初級」の問題でかなりのマス目に既に数が入っている。級があがるとその個数はずっと少なくなる。

攻略法は

(1)各ブロックで欠けている数が条件にあったところが一意に決まるか試す。一意に決まればその数をそこに書く。一意に決まらなければ何もしない。この作業を全てのブロックについて実行する。

’(2)この作業が一巡したら、最初のブロックで同じ作業を始める。ほかのブロックで条件にあった数が増えているので当該のブロックでも一回目の作業より新に条件を満たす数があるはず。

(3)二巡、三巡と作業を繰り返す。「初級」「中級」ではこの作業で完成までいける。

(4)作業が頓挫してしまったときはどこかで間違いをしてしまったので最初からやり直す。途中の間違いを探すのは大変。

(5)「名人級」の問題はこと戦略がどうも通用しない。

「言うまいと思えど、、、寒さかな」

今朝は寒かった。この冬一番の寒さ。仙台も地表の最低気温は-7度、起掛けの部屋の温度も9度とこの冬初めて一桁になった。思わずそこで「寒い」と言ってしまった。

連想で「言うまいと思えど、、、寒さかな」という川柳(?)を思いだしたが途中が出てこない。

「言うまいと 思えど今朝の 寒さかな」

これにはいろんなヴァリエーションがあって、

「言うまいと 思えど今日の 寒さかな」

「言うまいと 思えど今日の 暑さかな」

となる。作者が不詳だそうだ。

実身(じっしん)と仮身(かしん)

資料の整理をしていたら「超漢字4」のパッケージが出てきた。懐かしかったので古いPCにインストールしてみた。

この「超漢字4」はBTRONを実装化したものでOSからのインストールである。

TRONのおおきな特徴はファイル構造にあると言われている。よく使われている「ツリー構造」ではなく、「ネットワーク構造」を採用していることにある。それが「実身」・「仮身」モデルである。「実身」はファイルの実体であるがが直接操作するはできない。「仮身」はそのファイルに紐付けされたハイパーリンクであり、そのファイルへの操作は対応する「仮身」を通じてのみ可能となっている。だからユーザはそのファイルがどこにあるかを記憶する必要がない。

超漢字4では「原稿用紙」(ワープロ)「画用紙」(お絵描き)等の実身を処理するプログラムが用意されていてそのためのテンプレート(原紙)が用意されている。この原紙をキャビネットにドラックすると実身が作られ、その仮身がキャビネットに現れる。これをクリックすると実身に操作を加えることができる窓が出現する。

画用紙(実身)の一例

画像は画用紙(実身)窓の一例である。馬は画像ファイルを張り付けたもの、短冊状のものは別な「原稿用紙」の仮身を張り付けたもの、そのほかは文字である。漢字の読みは「あい」である。中上は現代の形象文字でる「トンパ」文字の1つである。

ファイル構造を意識しない「字身」・「仮身」モデルは結構面白いとおもった。

トンガ山噴火」で日本に「気象津波」:「共鳴」で増幅

今朝の新聞の記事のタイトルである。

2022年1月の南太平洋のトンガ山で起きた噴火で大気と海洋を伝わる強い非線形音波が発生した。この2つの波は震源から海洋と大気を媒体として広がった。これらの波動は8000キロメートル離れた日本にも到達し10~20cmの海面上昇を見せる「気象津波」として観測された。

海洋研究開発機構の研究チームがこの気象津波をスーパーコンピュータでシミュレーションした。機構を解明したという記事である。

海面を伝わる波の速度は水深で決まる。一方大気を伝播する非線形音波にはラム波とぺケレス波があり、伝播速度は300m/秒と240m/秒と異なっている。

海底の地形を見ると北西太平洋海盆地(深さ6000m)で水面波の伝播速度が240mとぺケレス波の伝播速度に近い。

この「ブラウトン共鳴」で海面上昇が起きた。これが今回の気象津波。

 

iphoneでPythonプログラミング(続)

前の投稿でiphoneでPythonプログラミングの基本的な環境を作る話をした。

ところでpc(win10)を使って多くのPythonプログラムを作ってきた。これらがiphoneのPythonで正常に動くか確かめたい。

まずpcにあるプログラムをiphoneに転送する。これには様々な方法があるが今回使ったものはFTPManagerである。win10ではSSHサーヴァを簡単に起動できるのでiphoneではSSHクライアントを起動してsFTPプロトコールによるファイル転送を使う。

FTPManagerをインストールして起動する。「+」アイコンで新規接続を設定する。

サーヴァーのipアドレス
サーヴァーの利用者名
そのパスワード
利用者のホームディレクトリのパス名
これで接続をするとpcのホームディレクトリ下のホルダー・ファイルの一覧が現れる。
それらのホルダーやファイルにはFTPManagerd独自のタグ(3つの点)が付いているので転送したいもののタグをタップするとメニューが出てくる。「にコピー」を選択し、iphone内でFTPManagerが用意した「私のファイル」などを選択「保存」をタップすると転送が始まる。
転送が終わり「私のファイル」をタップすると転送したホルダーやファイルを確認できる。「私のファイル」は他のアプリからは見えないのでホルダーやファイルを移動する。今の目的からa-Shellアプリのディレクトリpythonに移動する。
これにはiphoneの選択・コピー機能を使う。「私のファイル」内にある転送したいファイルをiphoneの選択機能(丸ボタンのタグ)を使い、画面の右下にあるメニューを開き「共有」のタップ、新な画面で「”ファイル”へコピー」の選択。ファイルアプリの画面でコピー先、今の目的ではa-Shellエントリーのpythonホルダーを
選択、保存する。
a-Shellの画面でこのホルダーやファイルがあることを確認する。
Pythonプログラムファイルの実行は以下のよう:
$python ******.py
で実行する。
因みに以下のようなプログラムを実行してみた:

#coding: utf-8
class Garden:
  def __init__(self, plants):
    self.plants = plants
  def __str__(self):
    t = [ object.__str__(self) + '咲いている草花は' ]
    for obj in self.plants:
      s = ' ' + object.__str__(obj)
      t.append(s)
    return '\n'.join(t)

mygarden=Garden(['なずな','はこべら','ほどけのざ'])
print(mygarden)

正常な結果が得られることを確認した。

iphoneでPythonプログラミング

久しぶりのPythonの話題である。

古いiphoneが手元にあったので、これを使ってPythonプログラミングができないか調べてみた。

いろいろなやり方があるが、iOSが持っているPythonを使うのが簡単。そのためにターミナルアプリをインストールした。使ったアプリはa-Shell

a-Shellを起動するとshellの画面が現れる。

$cd
$pwd

を入力するとホームディレクトリが~/Documentsであることがわかる。ここにファイルを作ってよいが他のアプリでアクセスできないのでこのDocuments下にホルダーを作る。

iphoneのファイルアプリを開き「このiphone内」を選ぶとa-Shellのエントリーが見えるのでそれをタップする。ここでホルダーの新規作成をする。ホルダー名を例えば「python」とする。

a-Shellの画面に戻るとDocuments下にpythonというディレクトリができていることがわかる。そこに移動する。このディレクトリをpythonプログラミングの作業場にする。a-Shellではvimエディターが使えるのでプログラム作成にはこれを使う。

尚最新のiOS5.6では既存のPythonのヴァージョン3.11である。