[Home]-[以前のひとこと]-[2003年1月後半]

以前の「ひとこと」 : 2003年1月後半




1月16日(木) 正六角形から正八面体を折る

 昨日の正六角形から、正八面体を折ってみました。これは伏見康治・満枝著の「折り紙の幾何学」という本に載っていたものです。

図 1

 最初に正六角形に図1のように山折り(一点鎖線)、谷折り(点線)を入れて、正六角形の6分の1の正三角形に畳みます。すると、図2のようになります。もともとの正六角形の頂点が正三角形の底角になり、そのひだが左右に3つずつになります。

図2 図3 図4 図5

 図3のように、右側のひだを1つ折り上げます。これによって図2の正三角形が4つの小さな正三角形になります。図3で折り上げたひだは、ちょうど左側がポケットのように空いていますので、そこに左側のひだを2枚、折り上げて差し込みます(図4)。これでひだは左側に1つ、右側に2つ残っています。

 これを裏返して、図3、図4と同様に右側から1つ、左側から2つ折り上げて差し込むと、ひだは全て畳み込まれて図5のように菱形の形になります。この菱形の底の頂点の部分は、ちょうど紙風船のように穴があいていますので、そこにプッと息を吹き込んで膨らますと、

図 6

写真のように正八面体になります。

 これはシンプルで大変美しい折り紙だと思います。「折り紙の幾何学」には、同じ原理のものを不切正方形から折り出す方法とか、正六角形からはじめて、この正八面体と同じように平面状に畳んでおいて、息を入れてふくらませる正二十面体は作れるんだろうか?という議論などが載っています。(ちなみに伏見康治氏は「できないんじゃないか」と思われたそうで、共著の満枝氏は「できそうだ」と思われたそうです。) お勧めの本です。

 <おまけのひとこと>
 今日は寒いです。




1月17日(金) 正八面体・正四面体

 同じく、一枚折で簡単に折れる正八面体・正四面体をいくつか作ってみたので写真を載せておきます。

写真 1

 これは、普通の1対ルート2の長方形を細長く縦に2等分してできる、帯のような長方形から折る正八面体です。布施知子さんのデザインのものです。細長い帯状の長方形は、浅いお皿のような筒折の六角箱などを折るときに便利なので、長方形を2つに分けて、片方でこの正八面体を折って、もう片方で浅い箱を折ってみたりしています。

写真 2 写真 3

 写真2、写真3は同じく布施さんの一枚折りの正四面体です。これは普通の長方形からはじめます。余計な折り線は出ませんし、箱のように1つの面を開いたり閉じたりできます。出来上がりのたいへんきれいな折り紙だと思います。折り方は若干複雑です。

写真 4 写真 5

 写真4,5は、伏見康治さんの本に載っていた、正三角形1枚から折る正四面体です。この折り紙も「紙風船方式」の応用の1つで、完全に平らに折っていって、ポケットを作ってひだを畳み込んで、最後にプッとふくらませると多面体になる、という設計です。写真のものは、余った小さな紙から正三角形を切り出して折ったため、相対的に紙が厚くなってしまってごわごわした雰囲気になってしまいました。もっと薄くて大きな紙で作れば、もっときれいになるはずです。

 正三角形は、のりしろを考えなければ正四面体の展開図そのものですが、かなり何重にも重なっています。写真5のように、四面体の4つの面のうちの1つは3枚が組み合わさった形になります。こちらの正四面体は、設計がたいへんシンプルで美しいと思います。

 <おまけのひとこと>
 年末年始休みに何十個か折った多面体や箱の折り紙のうち、ご紹介してもよいかなと思えるものはこれで一通り終わりました。明日からはまた別の話を書きたいと思います。




1月18日(土) 将棋の駒を入れ替える

 一手詰めとか三手詰めといった、ごく簡単な詰将棋を並べて、子供たちと遊んでいます。私がいつも玉方で、子供たちが交替で攻方をやって、先に玉を詰ませたら勝ち、という雰囲気で遊んでいます。自分の王様をとられて負ける、ということがないのと、局面がテンポよくかわってゆくところが楽しいようです。

 詰将棋というのは、例えば数学者の野崎昭弘氏が「世界で一番面白い一人遊びなんじゃないかと思う」などと述べられているように、大変奥が深くて面白い遊びです。パズルという側面から見ても、いろいろ面白い問題がたくさんあります。例えばチェスのナイト(Knight)という駒も、その動きの面白さからいろいろなパズルになっていますが、将棋の駒の動きも特徴的なので、パズルにしたら面白そうです。

 古典的な例ですが、たとえば将棋の駒というのはこのように並べます。

       

 ある人が間違って飛車と角を反対においてしまいました。これを、将棋の駒の動きのルールに従って飛車と角を入れ替えるには、何回の移動でできるでしょうか? もちろんそのほかの駒は全部初期位置に戻っていなければいけません。

       

 ごく初心者のころ、飛車と角がどっちがどっちに置くのか忘れてしまうことがありました。ちょっと慣れるとこれが逆だと気持ちが悪くてたまりません。将棋の駒の動きは全て左右対称ですから、敵味方とも配置が逆になってもゲームとしては全く同じことなのですが、おそらく定石とかがとても考えにくいでしょう。

 チェスでも、キングとクイーンをどのように配置するか、注意が必要です。またチェス盤の場合はマスが正方形の市松模様になっていますが、その置き方にも決まりがあります。チェスについては見た瞬間に気持ちが悪いと思うほど慣れてはいません。

 <おまけのひとこと>
 久々に更新を一日お休みしました。ちょっとプログラムを作っていたものですから…




1月19日(日) 将棋の駒を入れ替えるパズル

 将棋の駒の動きのパズルというと、昔何かの本で、3×3の小さな盤の上に8個の駒を置いて、将棋の駒の動きのルールでそれを入れ替えるといったパズルがあります。具体的にどんな問題だったか覚えていないので、2つ3つ考えてみました。

 
 

 このくらい頭の中でできるよ、という方もいらっしゃるとは思いますが、久々にJAVAアプレットを作ってみました。(例によって昔のコードを使いまわしています。)いずれ問題を増やして「あそびのページ」の方に整理しますが、とりあえず今日のところはこれらの問題を遊んでみるページをこっそり置いておきます。1.左から右に移動する問題2.右からから左へ移動する問題です。アプレットが起動すると、左側に大きな3×3の盤と、右側に小さな盤が現れます。右側の小さいほうが「目標」で、これと同じになるように左側の大きな盤の駒を動かしてください。動かしたい駒のマスをクリックすると、ルール上移動可能であればその駒が空いたマスに移動します。

 
 

 同様にこんな問題も考えてみました。こちらは行きも帰りも同じ問題になります。問題3です。お試しください。

 <おまけのひとこと>
 最短手数を表示するようにしようと思っているのですが、そのためにはその問題の最短手数を調べる必要があるので、そのためのプログラムを書こうと思っています。




1月20日(月) 将棋の駒を入れ替えるパズル(その2)

 昨日ご紹介した、3×3の盤面で将棋の駒8枚を動かして入れ替えるパズルですが、以前、昨年の10月17日のひとことで表紙の写真をご紹介した、『芦ヶ原伸之の究極のパズル』(講談社 昭和63年4月8日発行 680円)に載っていたのを思い出しました。“丸尾学 紹介” と書かれていて、次の問題が出ていました。

 
 

 これは歩があるので、一方通行です。昨日の問題のように元には戻せません。これもアプレットにしてみました。問題4です。

 この問題は、歩の隊列の下に、縦横にしか動けない飛車をどうやって回り込ませるかというところがポイントです。では、飛車が2つに増えたらどうなるんだろうと思って、こんな問題も作ってみました。

 
 

 問題5です。どうぞ。

 <おまけのひとこと>
 また今朝も雪が積もりました。今日は地域の雪かきの呼び出しはなかったのですが、せっかく早起きしたので自分の家の前の雪かきをしました。凍った道の上に雪が積もっていて、とても滑りやすくなっていました。先日、融雪剤(塩化カルシウム)の25kg入りの袋を買ってみました。1,980円でした。これを氷の上に撒くと、ぱりぱりと音がして氷が解けて、とても面白いです。これは凝固点降下(モル沸点上昇、モル凝固点降下なんていう言葉がなつかしいですね)によるもので、マイナス15度以下になると効果がないのだそうです。(そこまでしか凝固点が下がらない。) そのため、北海道などでは融雪剤はあまり使わないと聞きました。




1月21日(火) 将棋の駒を入れ替えるパズル(その3)

 今回ご紹介しているJAVAアプレットは、週末に自宅のパソコンに JDK1.4.1 をインストールして作ったものだったのですが、開発したパソコン以外のPCに持って行くと、class not found と言われて動作しないことがあるようです。メールでも教えていただきました。ありがとうございます。

 JAVAは普段使っていないので本当に素人なので、理由がよくわかりません。今朝、とりあえず JDK1.2.2 という以前のバージョンの開発環境をダウンロードしてきて全く同じソースからclassを作ってみたら、これまで動かなかったPCでも動くようになりました。といってもまだ1台しかテストしていないのですが(自宅なので)、いかがでしょうか。昨日・一昨日の問題が動かなかったとおっしゃる方がいらしたら、もう一度お試しいただけたらと思います。それでもだめだったらごめんなさい。

 おわびに、というわけでもないのですけれども、とりあえずこのパズルを解いてくれるプログラムを作りました。例えば一昨日のひとこと問題1ならば、こんな感じの出力を出してくれるプログラムです。(C言語で400行くらい、そのうち150行くらいはテーブルです。めんどうなので移動可能先は全部一覧表にしてしまいました。)このプログラムで探索した、問題1から問題5までの最短手数を載せておきます。

問題114手
問題214手
問題314手
問題426手
問題532手

 プログラムをちょっと改造して、問題4や5のように上下段を入れ替える問題で、駒の配置が左右対称で、普通の将棋の駒1組で実現できるもので(つまり飛車や角は最大でも2枚まで、金や銀は4枚までしか使えない)、一番手数のかかる問題はなんだろうというのをコンピュータに探してもらったら、こんな例が見つかりました。

 
 

 これもアプレットにしてみました。問題6です。いきなり一番難しい問題を出してしまいました。これはちゃんと解けます。答が知りたい方、問題を解くプログラムのソースが欲しい方がいらしたらご連絡ください。(ただし1時間ちょっとで殴り書きしたプログラムなので汚いです。) この問題6を解いていて、自分のJAVAアプレットにUndo機能(1手戻し)が欲しくなりました。特に歩を動かすタイミングを間違えると悲惨です。

 <おまけのひとこと>
 昨日に続いて今朝も早朝から雪かきをしました。昨日も今日も結局朝の雪かきの呼び出しはなかったのですが、寝坊して自分だけ出ないというのが恐ろしくて、ついつい早起きしてしまいます。で、せっかく起きたのだから家の前くらい雪かきしようかということになって、昨日も今日も朝5時半くらいから6時くらいまで雪かきをして、今日はそれから JDK1.2.2を落としてきて実験して…などとやっています。
 今週は忙しくて帰りも遅いので、残念ながらプログラムを改造するためのほんのちょっとの時間も取れないと思います。




1月22日(水) 将棋の駒を入れ替えるパズル(その4):不動の歩

 3×3の9マスの小さな盤面に将棋の駒を8個配置して、将棋の駒の動きのルールに従って空いたマスに1つずつ駒を移動していって目的のパターンを作るというパズルの話をしています。

 このパズルを解くプログラムを書いたので、暇そうな旧いパソコンに、ゆっくり時間をかけて面白そうな盤面を探索してもらっています。とりあえず今は3×3の上下段を入れ替えるというパターンのうちで正解手数の長いものを見ているのですが、駒の配置を左右対称に、という条件をつけると、昨日の問題6というのがどうやら一番手数のかかる問題(39手)のようです。

 では、この「左右対称」という条件をはずすとどうなるんだろうと思って、一晩パソコンにがんばってもらいました。そうしたら、極めてよく似たいくつかのパターンが、手数の多いものとして出てきました。

 
 
 
 
問題A
(59手)
問題B
(59手)
問題C
(58手)
問題D
(56手)

 いずれも似たような解き味になるので、1つだけ、対称性が高くて気に入っている問題Cのパターンを問題7にしてみました。手数はかかりますが、理詰めで考えると一本道で、試行錯誤型ではないというところが気に入っています。

 <おまけのひとこと>
 職場に東北地方日本海側出身の同僚がいるのですが、彼が、雪を扱うことを説明するときに実に多彩な動詞を使い分けます。雪を寄せる、雪を掃く、雪を払う、雪を下ろす、雪を落とす、雪を積む、雪をのける…等々。(最近は雪の話ばっかりですね。)




1月23日(木) 将棋の駒を入れ替えるパズル(その5):左右入れ替え型

 3×3の9マスの小さな盤面に将棋の駒を8個配置して、将棋の駒の動きのルールに従って空いたマスに1つずつ駒を移動していって目的のパターンを作るというパズルの問題のうち、面白そうなものを毎日コンピュータに探してもらっています。駒として使うのは金・銀・飛・角・歩の5種類に限定して、初期状態の空きマスは3×3の中央と限定したとしても、とりあえず初期状態だけで5の8乗=390625通りの配置が考えられます。(王様は動きの自由度が大きいので除外しました。香車はこの条件だと歩と一緒です。桂馬は動きが特殊なので、やはり除外しました。)

 この39万通りの中にはもちろん、どの駒も空きマスに動けないようなパターンもたくさんあります。また、少なくとも登場する駒の種類ごとの数が同じでなければ、どんなに動かしてもその2つのパターンは決して一致させられません。例えば、1つの盤面を(ぜいたくに)9バイトで表現するとして、移動可能先を8バイトで表現するとすると、全ての状態は、高々 7Mbyte 程度のテーブルとして表現できてしまいます。これをデータとしてファイルに保存しておけば、手数の探索ももっと高速になるだろうな、と思います。

 でも私はそういう方法で解かせているわけではなくて、例えば「上下段入れ替え」とか「左右入れ替え」といったルールで、初期状態に対応するゴールを生成して、毎回探索のための木構造を作っているのですが、盤面の状態が1万を超えるような問題でも、旧いパソコンでも1問あたり1秒以内に答は出してくれます。

 今は「スタートとゴールが左右入れ替え」という条件で探索中です。この問題の場合は行きも帰りも同じ手数になります。まだあまり探索が進んでいないのですが(3分の1程度です)、いまのところ見つかっている最大手数の問題は44手です。ただしこれは角が3枚出てくるので、将棋の駒のセット一組という条件からは外れます。

 この中からいくつか面白かった問題をご紹介します。

問題8
 
 

 こちらは上の2段は左右対称(というか同じ駒)で、一番下の段に歩をはさんで金と飛車がある、というパターンです。(これも「不動の歩」のパターンです。)この飛車と金を入れ替えてくださいという問題です。問題8 (21手)です。

問題9
 
 

 次の問題9は角が3枚あるのが残念なのですが、この状態から到達できる盤面の種類がとても少ないという点が珍しい問題です。このパズルは、1つの状況で選択できる手が複数あって、そこで枝分かれしていく迷路のようなものなのですが、この問題はその枝分かれの先がすぐに行き止まりになってしまうので、ほとんど一本道です。例えば初期状態で中央の空きマスに移動できる駒が3つありますが、そのうち左下の角と右下の銀を動かしても、その次に打てる手は、今動かした駒を初期状態に戻すしかありません。この問題はこのように「動いても無駄」という選択肢が多いため、結果的にほとんど一本道になります。問題9(26手)です。ちなみに普通は26手程度で解ける問題というのは、解けるまでにプログラムが試みる盤面のパターンは数百から数千、場合によっては1万以上の盤面を調べるのですが、この問題に関してはわずか85種類の盤面を調べるだけで正解に到達しました。

 なお、この問題を

参考図
 
 

この参考図のように変形してみると、29手の問題になりました。参考図の歩と金を取り替えても、やはり29手でした。ちなみに金を飛車と取り替えたら30手の問題になりました。

 <おまけのひとこと>
 プログラムを工夫するより、プログラムを書く時間を最小にして、あとはコンピュータにがんばってもらうというやり方で解いています。パソコンをずっと走らせておくと、朝とか夜とかにパソコンをのぞいてみて、面白い結果が出ていないかとわくわくします。
 今日も雪です。やれやれ。




1月24日(金) 将棋の駒を入れ替えるパズル(その6):回転型

 3×3の9マスの小さな盤面に将棋の駒を8個配置して、将棋の駒の動きのルールに従って空いたマスに1つずつ駒を移動していって目的のパターンを作るというパズルの問題の紹介をしています。このシリーズは一旦今日で最終回にしようと思います。今日は駒を順番に回すようなパターンを試してみました。

1つシフト
 
 

2つシフト
 
 

4つシフト
 
 

 手数はそれぞれ18手、18手、24手でした。4つシフトというのはちょうど点対称(C2回転対称)になっています。これを問題10にしてみました。適当にやっていてもできる、比較的簡単な問題だと思います。これは、シフト1やシフト2を経由してゆくわけではありませんが、スタートが同じなので同じ盤面でシフト1やシフト2を試すこともできます。

 2枚の角はいわゆる「違い角」になっていて、入れ替えはききません。

 今、これらの問題を解かせているプログラムは、マスの数だとかゴールの判定の仕方などはある程度汎用的な作りになっていて、3×3以外のパターンも試せるようになっています。今はその変形パターンの問題をいくつか解かせてみているのですが、盤面を広くすると探索すべきパターンの数が増えてしまって、解析にとても時間がかかってしまいます。今の素朴なプログラム(ちょっと工夫はしてはいますけれども、解析済みかどうかを基本的には線形探索しています)では3×3くらいが適当な問題のようです。

 <おまけのひとこと>
 昨日も一日じゅう雪でした。帰りに駐車場で車を掘り出して、いつもより時間をかけてゆっくり帰ったら、夜9時くらいに雪かきの呼び出しがあって、あわてて道の雪かきに出ました。一応今朝も5時前から用意をして、1時間ほど雪かきをしました。そうしたら朝7時くらいにまた数センチ雪が降って積もってしまいました。まあ数センチなので放ってあります。雪の山はどんどん高くなって、積み上げるのも大変です。日ごろ運動不足なので、雪かきはよい運動にはなるのですが、この時間があったらいろいろプログラムの改造とかができたのにな、とちょっと残念です。




1月25日(土) 表計算ソフトで筆算

 a4+b4+c4=d4 という式を満たす最小の自然数の組は、次のようなものなのだそうです。

4145604+2175194+958004=4224814

 これが正しいかどうか、簡単に試す方法はないでしょうか。

 普通の電卓だと桁数は8桁くらいですし、技術計算用の電卓でも12桁くらいしか表示できません。6桁の4乗ですから、二十数桁にはなるはずで、これらの電卓ではだめです。実は Windows に付属する電卓だと計算することができます。とはいえ、たまたまこの式くらいの値ならばWindowsの電卓でも使えますが、例えば50桁とか100桁とか、もっと桁数が増えたらお手上げです。

 パソコンで大きな桁数の数をいじってみるというと、数千桁という大きな整数を扱えるというUBASICという処理系が有名です。まあでもこれもプログラミング言語ということで敷居が高かろうと思って、普通に多くの人がパソコンというと思い浮かべるソフトウェアで、大きな桁の数をいじれないか考えてみました。

 そこで思いついたのがExcelのような表計算ソフトで、これで筆算のシートを作れないかトライしてみました。ただし1つ1つのセルのルールを入力していくのはとてつもなく大変なので、セルに数式を入力したら、それをがばっとコピーして作りたいと思います。 私は Excel は、すでに出来ているシートを見るくらいしか使わないのですが、パズルのつもりでちょっと作ってみました。

 一応、25桁×25桁までに対応した、掛け算の筆算をやってくれるシートです。シートの行番号が飛んでいるのは、桁上がり等の処理をするためのセルを隠しているためです。無駄なゼロがたくさん表示されてしまっているのが残念ですが、面倒なのでそのままにしました。たとえばセル“AU4”の中身ならば、以下のような式が入っています。

セル“AU4”の中身
=INDIRECT(ADDRESS(2,49-ROW()/2))*INDIRECT(ADDRESS(1,ROW()/2+COLUMN()-2))+AU3-INT((INDIRECT(ADDRESS(2,49-ROW()/2))*INDIRECT(ADDRESS(1,ROW()/2+COLUMN()-2))+AU3)/10)*10

 49というマジックナンバーが入っているのが気に入りませんが、このセルと、その上の隠されている桁上がり用のセルを一組にして、これを3行から50行のところにだーっとコピーして、平行四辺形の外側のセルを消すと、掛け算の筆算の真ん中の部分が出来上がります。あとは足し算の部分を51〜53行で作りました。

 この筆算シートを使って、最初の4乗の和の式を検証してみました。ちゃんと合っていることがわかりました。

 <おまけのひとこと>
 将棋の駒パズルを解くプログラムの改造をしようと思っています。プログラムの動作は基本的に
・1手動かしてみる
・それがゴールの盤面か調べる
・その盤面がすでに出てきているのか調べる
といった動作をしながら、初期状態から到達できる盤面のデータをどんどん蓄積してゆくのですが、盤面の数が増えてくると、この「調査済みの盤面かどうかの判断」がとても時間がかかるようになってしまいます。3×3の盤に駒8個ならば、実際に調べる盤面の数はせいぜい数千くらいだったのですが、今、もう少し広い盤について調べようとすると、盤面の数が簡単に100万とかを越えてしまって、とてもじゃないですけれども単純な線形探索ではやっていられません。今日はちょっとだけプログラムを書く時間がとれそうなので、改造してみようと思います。




1月26日(日) 開平の筆算

 昨日、Excel で掛け算の筆算をやってくれるシートというのをご紹介しました。足し算や掛け算というのはそれぞれの手続きが簡単に記述できるのですが、厄介なのは割り算です。商の各桁に何を立てるべきかというところで、どうしても条件判断が必要になってきます。そこのところを表計算ソフトのセルの関数としてシンプルに記述できません。

 ただ、人間が各桁の数字を決めてやると、それが条件を満たしているかを判定するのは簡単にできます。(筆算形式のシートの中でどのように表記するかは工夫が必要でしょう。) とすると、一桁ずつ人間が手で数字を入れていくと筆算の結果がどんどん作られてゆくようなシートならば掛け算のシートと同程度の手間で作れそうです。 割り算の場合は循環小数になったりして終わりがない場合があるので、人間が手で1桁ずつ入れてゆくという方式にもそれなりにメリットはあると思います。

 ここまで考えたところで、では平方根の値を求める開平の筆算も同じようにシート化できないかな、と思いました。開平の計算方法はもちろん今は学校では教えないし、20年近く前に義務教育を終えた私も、もちろん学校では習いませんでした。私が開平の筆算を覚えたのは、『関数を考える』(遠山啓 岩波書店)という本からで、手元にあるのは1974年の版のものです。とにかくその計算手続きがとても面白くて、喜んで覚えた記憶があります。

 開平の筆算について説明を書こうかと思ったのですが、調べてみると「平方根・立方根を筆算で求める方法について」とか、「〜開平算(かいへいざん)の部屋〜」などのページがみつかったので、そちらにお任せすることにしました。はるか昔には、開平や開立の筆算も学校で教えていたそうですね。 実用性はともかく、非常に面白いです。

 今は100円の電卓でも平方根の計算はボタン1つでできたりしますが、電卓などで採用されているアルゴリズムは、(おそらく)上記のような方法とはまた違ったやり方をしています。

 昨日のひとことに関係して、多倍長電卓LMというフリーソフトを、作者の高橋英明さんご本人からメールでご紹介いただきました。感激しています。これは手軽に使えてとても面白いですね。数字で遊ぶときの実験や確認用に重宝しそうです。ありがとうございました。

 <おまけのひとこと>
 将棋の駒パズルの問題のストックがたくさん増えてきました。このお休みは久々にプログラミングをして遊んでいます。解析プログラムの高速化が楽しくて、いろいろ工夫しています。
 庭に積み上げた雪の壁が、高さ1メートル、奥行き1メートルくらいになりました。メーター類の確認や保守に来る人のために、雪の壁に新しく通路を1つ通そうと思って、巾50cmくらいの通路を作ったのですが、確保した通路の出来栄えに大満足して通路に一歩踏み出したら、壁の下が斜めに凍っていたのに気が付かずに、見事に仰向けに転んでしまいました。幸い怪我はなかったのですが、雪で転んだのなんて記憶にありません。油断大敵でした。けが人が出るといけないので、金属製のスコップで氷を割って、通路を平らにならしました。庭なので融雪剤を撒きたくないし、大変です。




1月27日(月) 将棋の駒パズル:3×5マス

 先週、3×3の盤に将棋の駒を8個載せて、それを指定の通り再配置するというパズルをいくつかご紹介しました。このパズルはコンパクトで面白いと思うのですが、ゴールがちょっとわかりにくいというところが残念なところです。そこで、指定の駒を1つだけ、特定のゴールに持っていったら成功というパターンのパズルにしてみました。

 この場合ですと3×3だと簡単すぎるので、盤面をちょっと広くして3×5にしてみました。とりあえずスタートからゴールに導く駒としては飛車を使うことにしました。歩だと一本道になってしまって単調な問題になりそうですし、金や銀や王だと移動の自由度が高すぎて面白くなさそうだったためです。とりあえず将棋パズル2として、“あそびのページ”に追加しました。(右の画像からもリンクを張ってあります。)

 注目する駒が飛車なので、盤面には飛車は1つだけしか登場させないことにして、あとの駒はいくつでも使えるということにしました。将棋の駒一組でできる、という条件を満たすのは望ましいのですが、例外は許すことにしました。(まあ金だけは“と金”を使えばいくらでも使えますが。)今度は王様や桂馬を使う問題も作ってみました。

 3×3の問題のときのようにちょっとずつ小出しにしようかとも思ったのですが、今回は一応問題は全部公開しておいて、少しずつ解説や裏話を書いてゆくスタイルを試してみようと思って、まずは最初のパターンである、飛車を下から上へ移動するタイプの問題を25問一挙に掲載してみました。お試しいただけたらと思います。

 <おまけのひとこと>
 とりあえず解があることがわかっている問題が、単純に左右対称のもので1500問くらいあります。その中から面白そうなものを探すのが、楽しくもあり大変でもあります。




1月28日(火) 多倍長電卓LMで遊ぶ

 一昨日の26日(日)のひとことで、多倍長電卓LMというソフトウェアを教えていただいたことを書きました。これでちょっと遊んでみました。

試してみたのは、不定方程式 a17+a27+a37+a47=b17+b27+b37+b47 の自明でない解としてみつかっているという

1497+1237+147+107=1467+1297+907+157
1947+1507+1057+237=1927+1527+1327+387

 ですとか、先日もご紹介した A4+B4+C4=D4 のパターンである

958004+2175194+4145604=4224814
26824404+153656394+187967604=206156734

 などです。こんなものを簡単に検算できて、とても楽しいです。他にも面白い遊び方がありそうなので、また何か思いついたらご紹介しようと思います。

 3×5の盤に将棋の駒を14個載せて、スライドパズルのように注目する駒を指定のゴールに導くパズルを将棋パズル2ということで昨日公開をはじめました。それについての解説や、問題を解くプログラムの説明などを書こうかとも思ったのですが、このところ将棋パズルの話題も続きましたし、しばらくは別の話題を書こうと思いました。またご紹介できるレベルの問題がたまったら、問題集その2として公開したいと思います。

 ところで、こういった(3×5の盤で特定の駒をゴールに導くという)タイプのパズルというのはすでに発表されているものなのでしょうか。そもそもパズルとして面白いでしょうか。何かご感想やコメントやリクエストなどがありましたら教えてください。

 <おまけのひとこと>
 昨日は一日雨でした。この雨が雪だったらどれだけ積もっただろうと考えると、雨で助かりました。今日はその雨が凍って道路がピカピカです。これは危険ですし通勤に時間がかかりそうです。




1月29日(水) 3枚のカード

 硬くて丈夫な長方形の紙、例えば名刺のような大きさと材質のカードに、下の図のようにL字型の切込みを入れたものを3枚用意して、それぞれが直交するように組み合わせる、というパズルがあります。


図 1
× 3枚

 切り込みはカードの長方形の短い辺の長さのちょうど半分の長さにします。カードの長い辺の中点からカードの中心に向かって切り込みを入れ、そこで90度曲がって、また同じ長さだけ切ります。

 これを3枚、上手に組み合わせると完成図は下の図2のようになります。用いる長方形の比率を上手に選ぶと、この頂点を結ぶと図3のように正二十面体になります。

 ⇒ 
図 2 図 3

 …と、ここまでは割と有名なパズルなので、ご存知の方も多いと思います。(やったことのない方は一度お試しください。) 私はこれを作ってみたとき、完成品の形が今ひとつ気に入りませんでした。できれば下の図4のように、正方形が3枚直交して、それぞれの正方形が小さな正方形に4分割されるような構造ができないものかな、と思ったのです。その場合、もともとのカードも正方形3枚ということになります。

図 4

 では、最初のカードを正方形からはじめるとして、どのような切り欠きをいれたらいいでしょうか?最初のカードの長い辺を、正方形になるように切り取ったとしたら(図5)、カードは2つに分解してしまいます。

図 5

 そこで、カードが2つに分かれてしまわないような切り込みの入れ方を考えてみました。切り込みの長さは必要最低限とします。つまり、3枚の正方形の1辺の長さを2とすると、切り込みの長さの合計は6とします。

 組むのにかなり無理がかかるということ、3枚とも合同というきれいな解ではないことなど、いまひとつ気に入らないパターンですが、一応正方形3枚を組むパターンができました。

(つづく)

 <おまけのひとこと>
 正方形のカードを、面積が半分の正方形になるように、4つの頂点の部分を45度に切り落としてしまったものを組むと、正八面体の骨格モデルになります。




1月30日(木) 多角形を組む(その2)

 昨日、3枚の長方形をそれぞれ直交するように組むパズルから、3枚の正方形を組む話をご紹介しました。では、4枚をきれいに組むとしたらそれはどんな形がいいでしょうか? お風呂の中でぼーっと考えていたら、正三角形4枚がきれいに組めるのではないかと思って、あわててあがって試してみました。

 正三角形の中心から1辺への垂線を切り欠きにします。(切り欠きの長さは内接円の半径になります。)さらに、中心から垂線を下ろした辺の両側の頂点に向かって、同じ長さずつの切り欠きを入れます。これを4枚作ります。

図 1
× 4枚

 この4枚をうまく組み合わせると、以下の写真のような形になります。カード3枚を組むのよりも若干難しいかもしれませんが、出来上がりはとてもすばらしいです。

図 2 図 3

 これは、大変美しい形だと思います。 どんな形なのかわかりやすいように、4つの三角形の色を変えてコンピュータグラフィックスにしてみました。

図 4 図 5
図 6 図 7

 図4、図5が、写真の2と3に対応する形です。4つのCGはまったく同じモデルです。(つまり組み方、床の上への置き方は全く同じです。)ただ光源と視点だけを変えています。いかがでしょうか。パーツを用意するのは比較的簡単ですので、ぜひお試しください。

(つづく)

 <おまけのひとこと>
 今日ご紹介した正三角形4枚を組む話は、過去のひとことのページの先頭に来るように月が変わる2月の頭に書こうかとも思ったのですが、早く書きたくて書いてしまいました。




1月31日(金) 多角形を組む(その3)

 正多角形に切り込みを入れて立体的に組み合わせる遊び(パズル)の話の3回目です。

 一昨日にご紹介したように、長方形3枚に鉤型の切り欠きを入れたものを組むことができました。ここで、下の図1のように、仮に長方形から点線のような正方形にしてみると、3枚を組んだものは図2のCGのように正八面体の構造になるはずです。もちろん実際のカードでは、このように切り落とすとカードが2つに分かれてしまうため、このままでは実現できません。

図 1 図 2

 昨日は、正三角形に鳥の足跡のような切り欠きを入れたものを4枚組んだものをご紹介しました。お気づきの方もいらしたかと思いますが、この立体の頂点を繋ぐと、立方八面体になっていました。ということはこの三角形もうまく切り落とすと、立方八面体の骨格を組むことができるはずです。 図3のように、正六角形に3本の切り欠きを入れて、それがつながった状態に保持できるとすれば、図4のCGのように立方八面体になります。

図 3 図 4

 実は、最初に考えていたのは正六角形4枚で立方八面体を組みたかったのでした。でも正方形3枚のときに図1のような切り欠きが使えないのと同様、図3の点線のような六角形を使うわけにはいきませんでした。そこで、従来の3枚のカードが長方形を使っていたように、六角形に鳥の足跡のような切り欠きを入れて、しかもパーツが連結するようにするには、六角形をどのように拡張するのが美しいだろうかと考えて、昨日の正三角形のパターンに到達したのでした。

 ところがその後で考えてみたら、六角形の場合は合同な(=切り欠きの位置が同じ)4枚から図4のような立方八面体が組めることに気が付きました。もちろん切り欠きは必要最低限の長さです。どのように切り欠きを入れたら、合同な4枚から立方八面体が組めるかおわかりになりますでしょうか?

(つづく)

 <おまけのひとこと>
 こういった多面体を組むパターンをいくつか試しているのですが、パーツの枚数が多くなってくると、理論的には組めるはずだと思うのに、実際に組むのがとても難しくなってきます。最初の2枚、3枚くらいまではいいんですが、その後になると、すでに組んだジョイントを一旦はずしたり緩めたりしながら組んでいきます。そのとき、どこがどこなのかだんだん把握できなくなってくるのです。(空間把握能力の高い人に笑われそうですけれども。)パーツごとに色分けして、どこがどこに来るべきなのか描いておくと組みやすくなるかもしれません。



[←2003年1月前半]  [↑表紙へ]  [2003年2月前半→]

[Home]-[以前のひとこと]-[2003年1月後半]
mailto:hhase@po10.lcv.ne.jp
2001-2003 hhase