テンパズル、はたまた24

テンパズル、はたまた24 アイキャッチ 個別パズル紹介

概要

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

こんにちは。惰性慣性です

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

こんにちは。今日も元気に茶々入れ担当(www)のゆめです

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なんじゃそりゃ?

茶々入れすると元気になるタイプか?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

知らな〜い

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性
知らんのかーい!
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未
そんなことより!
テンパズルって何じゃい!
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ふむ。テンパズルは数字パズルの一種だな

テンパズルは数字パズル?
テンパズルは数字パズル?
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

数字パズル? ってことは、今回は個別パズルの紹介?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

左様。アイキャッチ画像にも『個別パズル紹介』とあるとおり

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あれ。個別パズル紹介は『パズル探訪シリーズ』の後にやる、とか何とか言ってなかったっけ?

☝記事『パズルの種類、多すぎ?(パズルの謎2)』(下記) 中の節『文章的パズル(文章題)の内訳』に含まれる小節『数学・論理学的パズル』の箇所に記述されています

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ま、まあ、世の中こういうこともある、って感じでひとつ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

初志貫徹せんかい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

これは厳しい。ぶっちゃけると、個別パズル紹介のほうが筆が進むというか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あっそ。なら、『パズル探訪シリーズ』はパス?

☝初志貫徹とか厳しい突っ込みをした割に軽すぎる反応?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

無しにするつもりはないが、そのシリーズは調子が良いときにぼちぼち書こうかなと

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そですか。まっ、全般的な話より個別の紹介のほうが面白そうだから、夢未的にもそれでいいかな、なんちて

☝惰性慣性オヤジが『パズル探訪シリーズ』を書く気をますます減退させそうな発言?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

むむむ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

テンパズルに戻るけど……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

点パズルってことは点つなぎみたいな? でも数字パズルって言ったよね???

テンパズルは点パズル?
テンパズルは点パズル?
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その点ではなく、10の英単語テン (TEN) のこと。テンパズル (Ten Puzzle) 以外に、メイクテン(Make Ten) という呼び名もある

テンは英単語の TEN (10)
テンは英単語の TEN (10)
な、何だって〜!
☝賀知夢未他(伏線?): 
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ど、どうした? 唐突に!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

英語のテンか……。英語には暗い思い出しかない……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

英語は鬼門じゃったか。これは失礼をば

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

トラウマ発動、ってほどじゃないけど、それは置いといて!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

お、おう……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

とにかく10のことなんだから、数字が10個ある、みたいな?

テンパズルには数字が10個?
テンパズルには数字が10個?
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そう思うのが自然かもしれんが、伝統的に数字は4個だ

テンパズルには数字が4個
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ならよんパズルでしょ! 10は関係ないじゃん!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

10は数字の個数ではなく、計算結果の指定値なんだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

計算結果とな?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

テンパズルとは、ランダムに4つの数字が与えられたとき、四則演算を使って10を作れ、というパズルだ

テンパズル(別名メイクテン)とは?
テンパズルとは?
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

四則演算って、+-×÷のことだよね?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そのとおり

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんか素朴なパズル

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあそうかもな。ちょっとした暇つぶし用と言えるだろう

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ルール説明だけだとイメージ湧きにくいんで、具体例プリーズ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

了解だ。例えば1,2,3,4が与えられた場合、1+2+3+4とすれば10になる。この例では足し算だけで済んでいるので割と簡単。だが、1,1,2,5の場合だと、1×1×2×5のように掛け算を使ったり

テンパズルの具体例
テンパズルの具体例
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

むむっ。例を見たら、なんか面倒くさい気がしてきた

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうかい。確かに、与えられた数字によっては、10にする計算方法を見つけるのが結構大変なこともある

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

突然ひらめいたんだけど、問題が1234のとき、1×2×3+4でも10になるんでは?

テンパズル問題の解答は複数かも
テンパズル問題の解答は複数かも
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

おお、素晴らしい。別解を見つけたようだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

フッ。当然

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

すぐ調子に乗る奴。なお、1125の場合も、2×5+1-1といった別解があるな

テンパズル問題の解答は複数かも (その2)
テンパズル問題の解答は複数かも
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あれっ。それって、1125の順番を変えてるけど、そんなことしていいの?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

伝統的なルールでは、数字の順番は好きに変えてよい。また、(5+1-1)×2のように括弧を付けるのも許される。とにかく、色々やっていいから何とか10を作る、ってのが至上ミッション

テンパズルの追加ルール
テンパズルの追加ルール
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

何がなんでも10を目指す、と

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

左様。と思ったが、縛りが全く無いわけではないな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

今までの話を聞いてると、縛りなんてあるんかいな?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

確か、数字を余らせるのは駄目だったはず。例えば、2357だと、2×5で10になるが、それだと3,7が余ってしまう。あるいは3+7でも10になるが、今度は2,5が余ってしまう。てな感じで、計算に使われない余り数字が出るのは許されなかったと思う

テンパズルの縛りルール
テンパズルの縛りルール
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なるほど。4つの数字を全部使わないと駄目、ってのは分かった

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

で、その例題の2357は、どうやれば10になるんだっけ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

先ほど素早く1234の別解を見つけた頭脳で考えてみるとよい

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

任せて。そんなのちょちょいのちょいっと……

……

……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

……はて?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

……急に話の続きを聴きたくなったんで、この問題はどうでもいいや

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

……まあいい。ちなみにだが、(7-3)÷2×5といった解がある

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そ、そんなん分かってっし! てか、1125なんて例があったけど、4つの数字の中には同じのがあってもいいんだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ありだな。何しろ4つの数字はランダムに選ばれるわけで

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それから、どんなときでも10にできるんだっけ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その手の議論は考察のところで述べるつもりだったんだが……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

けちくさいこと言わんと、ちょびっとだけ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

……まあいいか。結論だけざっくり言うと、何をどうやっても10にできないケースがそれなりにある。典型例としては、0000など

4個の数字は必ず10にできる? ⇒ とは限らない。解無し問題が存在
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そりゃ、0000はどうにもならない感じだねぇ。てゆっか、0もありなんだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

数字は0から9までの10種類。でもって重複もありゆえ、0000なんて極端なケースも含まれることに

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そういえば、ルールとして明言されていないかもしれんが、数学的な一般論として0で割るのはNG。さらに微妙な感触だが、この記事では0÷0もNGとする

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんなわけわかんない割り算はしないっしょ。常識的に考えて

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

素直な気持ちで受け止めてくれて嬉しい

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんな喜ばれるような事でもないような……。それより、別な疑問があるんだけど

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なんなりと

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ナンプレ問題みたいなペンシルパズルでは、答えが無いとか二つ以上あるとかはダメダメな問題扱いじゃなかったっけ?

☝夢未さんが、「ナンプレ問題みたいなペンシルパズルでは、答えが無いとか二つ以上あるとかはダメダメな問題扱い」と言っていますね。この点に関する考察は、記事『人はなぜ自動プレイヤーを作りたがるのか』(下記) 中の節『具体的な動機1. パズルの答えがあるか知りたい』の箇所に記述されています

Number Place/数独/ナンプレの例題とルール概要
ナンバープレイスの例題とルール概要
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあそうだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なのにテンパズルでは、0000みたいに答えが無いヤツもあるし、1125や1234みたいに答えが幾つもある問題もあるじゃん。そんなん許されるん?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

雑誌等を購入してペンシルパズルを楽しもうとするなら、個々の問題は有料だからなあ。問題作りにそれなりの気合を入れ、読者が満足できる品質を確保するのではないかな? その一つの側面として、解が丁度1つの問題のみ出題するお約束が確立しているのだと思われ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ほほん?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

だがしかし、解が丁度1つの問題にこだわるのはペンシルパズルの世界だからで、パズル全般ではそうとも限らないぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そだっけ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

例えばトランプの一人遊びでは、コンピューターが普及する前、人間が物理トランプで遊んでいた頃から、問題はシャッフルして配置するだけ、すなわちランダム配置問題が通例だ。その結果、解がなかったり解が複数あったりする問題にしばしば遭遇する

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

有名なフリーセル (FreeCell) の場合、実はランダム初期配置でも解がない問題に出会う確率は極めて低い。換言すれば、ランダム初期配置にもかかわらずほとんどの場合解けるトランプパズル。それがフリーセル

物理(?)フリーセル
物理(?)フリーセル
注: 惰性慣性が持っていたカードです
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なお、フリーセルで行き詰まることがよくある人もいるだろう。まあワシもだが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

しかし、それはほぼ間違いなく、読みが浅くて手の選択を誤り失敗しているだけで、深く読めば解があるケースがほとんど。コンピューターアプリを用いたプレイなら『戻る』ボタンや『最初からやり直し』ボタンがあるだろうから、その手のチート機能で何回もしつこく挑戦すると、ついには解けたりするし

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

このようにフリーセルの場合、解無しはまれなんだが、複数解は日常。ゴールに至る手順は複数あるのが通例だ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

もう一つ有名なトランプ一人遊びのクロンダイク (Klondike) は様相が異なり、ランダム初期配置すると解がある問題に出会う確率はかなり低い。なので、解が無さそうな問題に遭遇しても、『この問題は駄目なヤツだったんで次の問題へGO』てな軽い感じ。たとえ解が無い問題で空回りしたとしても、まあ時間つぶしにはなっとるしな

物理(?)クロンダイク
物理(?)クロンダイク
注: 惰性慣性が持っていたカードです

☝惰性慣性が今後、フリーセルやクロンダイクの個別パズル紹介記事を執筆するかもしれません。が、それらの記事に出会う確率は……(笑)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

以上の例からも分かるとおり、パズル問題は何でも解が丁度1つになるように出題調整されている、と決まっているわけではない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その顔、やめい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ふう

(☝上記の表情&発言&ポーズで発散して復活?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

仕方ない奴だ。要するに何が言いたいかというと……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

答えが丁度1つにこだわってるのはペンシルパズルとか一部の筋で、こだわらないタイプのパズルも色々ある、ってことでしょ?!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なんだ。分かっとるではないか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

フッ。当然

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そのドヤ顔が鼻につくが、ワシは一向に構わん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

てなわけで、テンパズルは『解が丁度一つ』にはこだわらないタイプ。そもそもランダムに選んだ4つの数字がそのまま問題だから、解が1つになるよう調整する段階が無いし

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それは分かったんだけど、答えがない問題に出会ったらどうすんの?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

0000のように一見して駄目と分かる場合もあるが、そうでないときは、ある程度、試行錯誤するんだろうな。で、どこまでしつこく考えるかの度合いは人によるが、どこかで諦める感じか

☝答えが見つけられない問題に遭遇し、本質的に解無しなのか追求が足りないだけなのか判然とせず、しばらくモヤモヤした気持ちになる人もいるとかいないとか……

解の存在判定、特に解が無いことを示すには?
解の存在判定、特に解が無いことを示すには?
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんか適当。そんないい加減なやり方だと、本当に答えがないのか、実は答えがあるのに見つけそこなってるだけなのか、わかんないじゃん!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

解がないことを厳密に示すのはかなり大変なんで、単にちょっとした暇つぶしでやるなら、そこまでシャカリキにはならんでよいかと

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

、いい加減。そんなことでいいんかい?!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

解がない問題の厳密な判定については、後ほど考察するつもりだが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ならよし (☜なんか偉そう)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あと、1125や1234みたいに答えが1つじゃない問題はどうすんの?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ちょっとした暇つぶしでやるなら、解が一つ見つかった段階でやめる人が多いと思うぞ。で、もっと時間つぶしをしたいなら、他にも解がないかさらに追及する的な?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

、やっぱいい加減。それだと、10にする方法を全部見つけたのかどうか、わかんないじゃん!

☝テンパズルでは10にする方法の網羅までは求められていないと思いますが、(性格的に?)網羅したい人もいることでしょう。とはいえ、夢未さんがそのようなタイプとは思われませんが……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

解を網羅する方法についても、後ほど考察するつもりだが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ならよし (☜なんか偉そう)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

えらそうな態度が鼻につくが、まあいい

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ところで、+ー×÷で10を作りたいなら、数字の個数は4個限定じゃなくてもいいんでは?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ふむぬ。なぜ4個かについては、このパズルの由来が絡んでくる

由来

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

由来とな?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

左様。とはいえ、趣味数サイトは由来や歴史的経緯等を追求するのが主眼ではないゆえ、ワシがちょろっと調べた程度の内容になるが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

個人的には、数学っぽい話より由来とかのほうに興味があるんだけど

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その期待を裏切るようで恐縮だが、テンパズルの由来については、あまりはっきりした情報がない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

駄目じゃん!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

江戸時代に日本独自の数学と言ってよい和算が庶民にも広まり、小町算といったそこそこ似たパズルも出てきた。なので、テンパズル相当も既に江戸時代にはあったのでは、という推察はある。が、証拠となる明確な文献が出てこないんだろうな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

単なる推察ですか、そうですか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

しかしながら、個人的な経験ではあるものの、ワシが若かりし頃には既に口コミでこのパズルが広まっており、ワシも特定局面ではしばしば、このパズルで暇つぶしをしておった

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんと! おっちゃんが若い頃には既に広まっていた!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そのとおり。ワシが青少年の頃、このパズルで遊んだ局面とは、実は電車の中だ。電車の中では切符を持っているが、この切符に印刷されている4桁の通番を使って、テンパズル暇つぶしをしておった。テンパズルで使う数字が4個なのは、切符の通番が4桁だからという説が割と有力

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

タイトル画像はそれかい! でも、その当時、隣にアタシはいなかったはず。おっちゃんが若い頃なんて、まだ生まれてないし

独特な印象のタイトル画像 (切り抜き) および超蛇足的コメント
独特な印象のタイトル画像 (切り抜き) および超蛇足的コメント
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

タイトル画像は雰囲気ってことでな。登場人物を織り込んでおく的な。ワシ自身からして、テンパズルで遊んだ若い頃からこんなジジイの姿をしていたわけではないし

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

まっ、それはどうでもいいけど、電車に乗るならスマホタッチでしょ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ワシも今ではそうだが、ワシが若かりし頃はスマホがない。ガラケーすらまだないし、交通系ICカードもない。切符を買って乗るのが普通じゃった

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

スマホがない世界とか、シンジランナーイ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ワシも今ではかなりそうなってしまったが、若い頃は実際なかったわけでな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

運賃支払いだけじゃなくて、電車で暇つぶしならスマホでしょ、とか思ったけど、スマホがないんじゃ暇つぶしも難儀

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

友人と雑談は今でもあるだろうが、単独行のときどうするか。新聞、漫画を含む雑誌、文庫本等を読むのは若い頃も既にあった。だがしかし、単独移動でそれらの手持ちすらないときは、切符しか頼るものがなく。もち論、外の景色を見るなんてのもあるが、通学や通勤だと毎日同じコースだからワンパターンだし

☝通勤通学の場合は昔から定期券利用ですので、当時から切符無し問題(?)が生じていますね……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

一人で電車に乗っててスマホも雑誌もないとか、暇でしょうがないヤバい時間になりそう

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

今では切符を持ってないからそれも駄目だけど、小学生の頃とかは切符を買ってた気がする。切符を持ってるなら、他にすることがなくて仕方なく切符を見ることも、まあ、あるかも

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんだけど、切符に印刷されてる4桁の通番って何?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そこかい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そこだね

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

仕方ないな。切符は交通系ICカードやスマホアプリ系が普及した今でも発売されているので、現在でも手に入る。で、例えばJRの大都市近郊区間乗車券を見ると、おおむね下記のような感じだ

JR大都市近郊区間の乗車券はこんな感じ
注: この画像は実際の乗車券ではなく雰囲気を示す模造品です
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ほほ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

図中の赤丸で示した箇所が、テンパズルのネタとして使われる4桁の通番だ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

確かに4桁の番号が印刷されてるけど、これって何なの? 通番と言ってるけど

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ワシは鉄道関係者ではないので詳細は不明だが、インターネットで軽く調べたところでは、自動券売機がそれぞれ4桁のカウンターを持っているらしい。で、発券する毎に1ずつ増やしていると。なお、4桁しかないゆえ、9999に達したら次は0000に戻る。要するにこの4桁は、各自動券売機の発券通番ってところかな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そですか。でもなんで、発券通番なんか印刷するようにしたんだろ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

テンパズルの由来を軽く調べたいだけのワシにとっては、4桁の通番が印刷されている事実だけ確認できれば十分で、その存在理由まで追求する気はない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ケチ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

どうしても知りたければ自分で調べればよかろうて

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それもやだ。面倒くさい

☝惰性慣性オヤジも夢未さんも鉄道マニアではないようで

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

……テンパズルが誕生した時期の話に戻るぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

へぇへぇ。でも鉄道の切符となると、始まりは相当古いんじゃないの? 明治時代とか?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあ、そうだろうな。明治時代の乗車券も今と同様な書面だったのか気になったので、『明治 鉄道 乗車券』といったキーワードで調べてみた。特に検索結果を画像モードにすると、ずらっと古い乗車券の画像が出てくる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

で、結果は?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

明治と指定しているのに大正時代の例が多数ヒットしたりするものの、細かく見ていくと、明治時代の乗車券にも4桁の通番はあったようだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

てことは、テンパズルの誕生も明治時代あたりってことで?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

おそらく。ちなみに、ランダム4桁数字の情報源としては自動車のナンバープレートという別な有力見解もあるが、日本の街中まちなかそこそこ自動車を見かけるようになったのは大正時代らしいので、鉄道切符のほうが古いな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ほんじゃ時期は明治時代頃として、発案者は誰なの?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

分からん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

(☜不満?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

鉄道切符の通番を見て何人かのパズル愛好家が思い付き、彼らから口コミで広まったものと推察される。都市伝説の発信源たる者をなかなか特定できないのと似たような状況ではないかな?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ね。ま、いっか

亜種

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あれっ? タイトルには『はたまた24』ってあるけど、それは?

タイトル中の『はたまた24』
タイトル中の『はたまた24』
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ころっと忘れとったが、24のほうか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

高齢化に伴う物忘れヤバす。『はたまた24』じゃなくて『はたまた認知症』

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

随分な言われようだが、ワシは一向に構わん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それはもういいから『はたまた24』についてはよ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ふむ。日本では10にするのが主流のようだが、海外では24かも知れん。いわゆるひとつの亜種だ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そうなんだ。24とか中途半端な感じ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

日本を含む東アジアでは割と10進法一筋な感触ゆえ、まあ10を選ぶんだろうが、欧米だとそうとは限らん。例えば1ダースは12個だし、一日は24時間だし

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それはそっか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

でもって、ゴールが10から24に変わってるだけで、あとは同じなん?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

英語版のウィキペディア24 (Puzzle)という記事があったのでちょっと見てみたところ、他にも微妙な違いがあるかもしれん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

英語はやめろとあれほd。日本語ウィキを紹介するよ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ワシとしてもできる限り日本語の記事を紹介したいんだが、英語版ウィキの 24 (Puzzle) から日本語記事のリンクを辿たどるとテンパズル記事になっており。そして、24 (Puzzle) 記事とテンパズル記事は記述内容が全く異なるゆえ、テンパズル記事で代用することができん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんてこったい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

で、24 (Puzzle) 記事を読むと、1960年代頃から上海で広まった遊び方が紹介されている

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

東アジアなら10だけど欧米だと24みたいなことを言ってたくせに、24にするルールの発祥は上海!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

すまんな。さらに記事を読むと、上海発祥の遊び方ではトランプのカードを使う。ジョーカー以外全部を使う亜流もあるらしいが、普通はジョーカーに加えて絵札も抜いて遊ぶ。シャッフルした山札から4枚を引いて、出てきた数4つを用い、テンパズルと同様なルールで24を目指す。スーツ(❤♦)は無視だな

24 puzzle は大体こんな感じ

トランプの札を使いますが、①絵札とジョーカーは除く、②スーツ(♠❤♦♣)は無視、③A(エース)は1とみなす、なので結局は下記のような遊び

24 puzzle は大体こんな感じ
注1: 絵札(JQK)も含めて遊ぶ亜種もあるようです
注2: 絵札(JQK)も含める場合、絵札は全て10とみなす流儀や、Jは11、Qは12、Kは13とみなす流儀がある模様
注3: デッキから4枚ではなく、5枚とって遊ぶ亜種もある感触
注4: 複数人でプレーし、デッキから出た札を見て最初に24を作れた人が勝ち、という早押しクイズ的な遊び方もあるようです
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

Aの札は1として扱うが、10の札は0とみなす云々うんぬんの記述が無いゆえ、0から9までの数字ではなく、1から10までの数を使うものと考えられる同じ数の札が4枚ずつあるから、2233のように数が重複する場合があるのも似ているぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

微妙な違いは分かったけど、今の説明は上海発祥の遊びなんでしょ? 海外は常に24って言い切れないじゃん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

おっしゃるとおり。なお、英語版ウィキペディアの 24 puzzle 解説には書いていないようだが、他言語版リンクを辿たどって中国語版ウィキペディアの『24点』解説を見にいくと、『中国だけでなく米国でも人気』との記述がある。なので米国でも、10 ではなく 24 なのかもしれん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あっそ (☜追求した割にそっけない反応?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ところで、なんでわざわざ中国語版を選んだんですよ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

上海発祥とのことゆえ、中国語版の解説には力が入っているかもしれんと思ってな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そゆことね

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

で、実際、すごい解説だったん?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

英語版よりは多少詳しく説明してある感じか。一般的な解説も少し多めだし、問題例や解答例なども結構あり……っと、そうじゃそうじゃ。中国語版解説の中にある例では 0 はなく 10 があったりするので、やはりトランプの 10 のカードは 10 として扱う模様

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

(☜そんな細かい点には興味ありません的な?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

って、そうだ。中国語ページを見たってことは、おっちゃんは中国語も読める人だったん? すごいじゃん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

だといいんだが、残念ながらさっぱり。Google翻訳等に頼っているのが実情

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

んだ。グーグル翻訳かい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

考えてみたら、グーグル翻訳とか使えばアタシでも外国語のサイトとか読めるじゃん!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その事実に今頃気付くということは、外国語ウェブページを翻訳して読む気など、さらさらなかったんじゃろ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そ、そんなことないし。で、グーグル翻訳ってどうやって使うんだっけ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

外国語ウェブページに行くと『翻訳しますか?』的なポップアップが出ることもあるが、常に出るとは限らんな……。使っているブラウザが Chrome なら、外国語ウェブページで右クリックすると、『日本語に翻訳』的なメニューが含まれているはず

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ん。パソコンのブラウザはクロームだった気がするけど、スマホのは何だったかなぁ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

翻訳したいページの URL をコピーした後、Google 翻訳といった翻訳サービスサイトに移って URL をペーストする方法もあるが

☝Google 翻訳の場合、翻訳ページに行くと既定の翻訳形態が『テキスト』になっているのではないかと。ですので、上の方にある翻訳形態切り替え的な箇所で、『ウェブサイト』をクリックする必要がありますね。あわせて、翻訳前後の言語指定も確認、変更を是非

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なるほど。おっちゃんはグーグル推しなのかもしんないけど、他には翻訳サービスはないの? グーグル翻訳が一番いいんかいな?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

他にワシが知っとるサイトとしては DeepL 翻訳などがあるものの。どれがいいかは一概には言えんな。無料サービスだと翻訳できる文字数の制限があることが多く、その制限文字数が違ったり。対応してくれる言語の範囲が違うこともあるし。翻訳品質の比較はさらに微妙な議論だ。詳しく知りたければ、『自動翻訳サイト おすすめ』等のキーワードで検索すればよかろうて

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

おすすめ比較記事とか読むの面倒くさい。頑張って読んでも、大抵は『だからどれよ?!』ってなるし

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

む……。昨今は ChatGPTGeminiといった生成AI系の進化が著しいゆえ、きちんと翻訳したいなら、それらに頼むほうがよいかもしれん。生成AIのどれが良いかは自動翻訳サイトの比較よりさらに面倒な感じだが、まあとりあえず、『生成AI 自動翻訳 おすすめ』等で検索か? ただし、生成AI系でも無料版だと色々制限が付いていたりするけどな

自動翻訳もさることながら、生成AI系の画像自動生成品質が高度化しているので、そちらに頼って Stable Diffusionほとんど使わなくなった惰性慣性オヤジ……。そのためにお高いグラボを買っていた気もしますが……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんてこったい! 結局、ご利益りやくを大きくしたければお賽銭はずめってことかい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

生成AI先生を神仏としてあがめとる感じ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

似たようなもんでしょ。って、そうだ。おっちゃんは有料版の生成AIサービスを使ってんの?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

それなりには

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

この金持ちオヤジがっ!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

いやいや。ワシとてしがない年金生活者じゃが、嗜好品等を多少我慢すれば払える程度の金額だと思うぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

嗜好品とか多少我慢するのが簡単にできたら苦労しないっちゅの! ちくしょ。こうなったらチャット GPT 先生に『自動翻訳で一番おススメの生成AIはジェミニですか?』とか質問してやる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

何とも天邪鬼あまのじゃくというか嫌味イヤミというか……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

話を戻すと、24 puzzle の英語版ウィキペディア解説には8個の外国語版リンクがあるんじゃが。このうち 10 を目指すのは日本語のテンパズル解説のみで、他の外国語解説――具体的には、中国語ロシア語ドイツ語スペイン語オランダ語ベンガル語タイ語――は全て 24 を目指す解説となっておった。証拠としては弱めかも知れんが、国際的には 24 を目指すタイプが多数派なのではないかと推察される

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そっか。10 を目指す日本は少数派なのか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

結局、24 がメインで日本だけ 10 って感じ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そこまで断言はできんが……。他の類似パズルとしては、24 (Puzzle) 記事の参考情報リンクから、Krypto という遊びがあることも分かった。クリプトという日本語の解説記事もある。1963年に D. Yovich 先生により考案され、パーカーブラザーズ (Parker Brothers) 社から遊戯用カードが発売されたそうなので、アメリカだと 24 だけでなくこちらも多いのかも

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

アメリカにはクリプトもあるとな? クリプトでは目指す数字は何なの?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

決まっていない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんじゃ、そりゃ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

クリプトでは1から25までの数字が書かれたカードを使うんだが、シャッフルされた山札から1枚プラス5枚を引くそうな。でもって、特別枠として引いた1枚に書かれた数がゴールの数字となる。そして5枚のほうの数に四則を適用し、別枠1枚で決めたゴール数字を目指す。要するに、ゴール数字もランダムに決める感じ

クリプトは大体こんな感じ

クリプトも数字の札を使いますが、各数の書いてある札の枚数がやや複雑。これらを束ねた56枚からなるデッキが用いられます

クリプトは大体こんな感じ

デッキから札を引いて問題を決めますが、ゴールとなる数も札を引いて決めるのが特徴的

クリプトは大体こんな感じ (続き)
注1: 上図は模式的なものですが、『クリプト カードゲーム』等のキーワードで検索すると、実際のカードの様子が分かるのではないかと。検索モードを画像にすると分かりやすいかも
注2: 検索結果を見ると、現在でも入手可能なのではないかと思われます。惰性慣性は持っていないようですが
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ゴール数字も毎回変わるとな? それは面倒な

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

でも、なんかわかりにくい。具体例プリーズ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ウィキペディアのクリプト説明記事にある例だと、計算に使う数字が1,3,7,1,8で、計算結果となるゴール数字が1なんてのがある。同記事内に、

(3-1+7)÷1ー8=1

といった回答例もあるが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

数字を五つも使って計算するとか難儀。結果も10とか24とか固定じゃないし

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

左様。計算に使う数字が5個なのは、4個よりかなり面倒な状況を生むはず。なお、書かれている数の範囲は1から25なんだが、どの数が何枚入っているかはまちまち。例えば2は3枚あるから、2が3個まで重複することはありえる。一方、25は1枚しかないので、25が重複して出てくる局面はありえない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

へぇへぇ。根本はテンパズルと同じだけど、細かい味付けが違うヤツが幾つかあるってことは分かりましたよ、と

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

でも、味付けが違うとテンパズルに比べて何が変わってくるんだろ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その手の話題は、亜種考察の段で説明するつもりだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

後回しですか、そうですか

解法

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

さてさて、ようやく趣味数的な内容を議論する段となった

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

お時間となりましたので本記事はこの辺で……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

それはない。まずはテンパズルの解法から

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

やっぱ流せないか……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

残当。で解法の話

☝普通、『残当』は『残念だが当然』の意味ですが。趣味数サイトで惰性慣性オヤジが言う場合、『お前さんには残念かもしれんが、ワシにとっては当然』という意味合いの場合がほとんどと思われ(笑)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

へぇへぇ。でもでも、解法っつっても、適当に色々試してみるだけでしょ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

うむ。実は当たらずといえども遠からず。テンパズルの解法については、与えられた4つの数字から解の有無や解の数を求めるエレガントな方法、あるいは特定の解、はたまた全解を迅速に導出する簡明な方法は知られていない模様。ではどうするかと言えば、可能な計算式を全て網羅的に試す

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんか難し気な言い方をしてるけど、それって要するに『しらみつぶし』

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあそうだな。てなわけで、まずは4つの数字に四則演算を施す計算式が何とおりになるか考えてみるぞ。実はかなりの数になるんだが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

どうぞどうぞ。アタシは考えたくないけど、おっちゃんが考えた話を聞き流すだけならOK

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

最初は、どの四則演算を選ぶか以前に、計算手順のパターンを考えてみる。括弧を付けて計算の流れを定める段階だな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

いきなりわけワカメなんだけど。『ばなな』になりそう

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

雰囲気としては、□を値、○を演算とするとき

(□○□)○□

なのか、あるいは

□○(□○□)

なのか、といったような

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんな○や□が並んだもんを見せられてもね

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

各パターンについて、□のところに値をあてはめたり、○のところに四則演算をあてはめたり、ってことだ例えば

(□○□)○□

というパターンがあるなら、3つある□に順に1, 2, 3を割り当て、2つある○に順に+, ×を割り当てると

(1+2)×3

となる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

(1+2)×3みたいな式だったら、まだ分かるけど……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

1, +, 2, ×, 3のように値や四則演算を決めても、計算順序というか括弧の付けかたを決めないと式が確定しないんじゃよ。実際、以下の2つは別な式で計算結果も違う。

(1+2)×3=9

1+(2×3)=7

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ぐぬぬ。それはそうかもだけど、面倒くさ!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

だもんで、(□○□)○□なのか□○(□○□)なのかといった計算順序パターンの見極めも必要になるわけでな。この段階は抽象的で分かりにくいかもしれんが、計算式の網羅を考える上で必要なステップだし。また、ここを過ぎれば話は割と簡単になるので持ちこたえてほしい

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ん。ま、最悪、聞き流せばいいか……

(☝それでいいのか、相方……)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

でもって、直接的に括弧の付け方で考えると何だか抜け漏れが生じそうなので、ここでは等価な二分木 (Binary Tree) という図式を使って計算手順パターンを列挙していく

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

二分木とな? そんな聞いたことないモノを使われても、ますますわけわからんてゆっか、思わず寝ちゃいそう

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあまあ。二分木を検索するとAI先生が言葉による堅苦しい定義を語ってくれるが、ここでは図を見て雰囲気だけでも把握してくれればそれでよい

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ぬぬぬ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

が、その前に二分木を含む木構造 (Tree)という概念について、ちょっとした補足をしておきたい。木構造は数学でもグラフ理論といった分野に出てくるが、それ以上に計算機科学 (Computer Science)分野でデータ構造の一種として出てくることが多いようだ。他には構文木というのもあるが。木という字が含まれていることから分かるとおり、要素のつながりかたが実際の木に似た形と言えんこともない。できるだけ現実の木に見えるように描くと、次のようになるはず

木構造 (Tree) を実際の木に似せて描くとこんな感じ?
木構造 (Tree) を実際の木に似せて書くとこんな感じ?
注1:各種の節 (node) を表す記号は惰性慣性が適当に決めたものです。それぞれの節について、標準的な記号は特に定められていない感触です
注2:また枝についても、ここでは最短経路的な線分を引いていますが、そう決まっているわけではなく、曲線や折れ線にする場合もありえます
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

具体的な話が何もないから、何を表してる図なのか謎なんだけど

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

図中の節や枝が何を表すかは木構造の図を用いる利用局面によって違うので、図全体が具体的に何を表すかは、単に木構造と言っただけでは確かに謎なんだが……。ここでは図の形状だけに注目して欲しい

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ん。形だけ見ろってことなら……。かなりこじつけっぽいけど、木に見えないこともないか……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうだろう。形が木っぽいから『木』構造と呼ぶし、木にちなんで根節 (root node) や葉節 (leaf node) といった用語もあるはずなんだが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

根とか葉とか書いてあるのはそゆことか。で、何ですよ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ところが計算機科学の分野では、下図のとおり、初心者にはちょっと謎な描画上の慣習がある模様

実際に木構造の図が使われるときの描画形態は、大抵こんな感じ?
実際に木構造の図が使われるときの描画形態は、大抵こんな感じ?
注:この図では偶々、全ての葉節の段数が同じになっていますが、一般的には常にそうなるとは限りません。葉節の段数がばらけている例は後に出てきます
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

逆さじゃん! 根の下に枝や葉があるとか変! その分野の人は逆さ吊りが好きなん?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その筋の人々が全て逆さ吊り愛好家かどうかは知らんが、なぜかこのように逆さ木として描くのが通例となっているようだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なのでワシも通例に従い、以降は逆さ木的に描くこととしたい

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

権威に屈してる。🫵😆プギャ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

それもあるが、二分木といった木構造の説明図はほぼ全て逆さ木状に描かれているようなのでな。天然の木のような向きで描くと、逆さ木に慣れているその筋の方々にはむしろ奇異に見えてしまう懸念がある。そこで逆さ木採用なんじゃよ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

長いものに巻かれてる、とも言う。あまつさえ、逆さに吊るされてる?w

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

……今回考えるのは、計算式を表す構文木に相当する二分木だ。上記の一般的すぎる木構造よりは多少、意味が限定されて具体化しているぞ

計算式の計算手順パターンを表す二分木(構文木)の雰囲気
計算式の計算手順パターンを表す二分木(構文木)の雰囲気
注1:二分木の一般的な定義では中間節の枝分かれは2以下とのことですが、ここでは四則演算に相当する中間節しかないので、(下向きの)枝分かれは常に2となります
注2:本図の流儀では根節に本質的な情報がないのですが、何か最上部に付けないと落ち着かないので付けた模様です。根節の直下にある中間節を根と考えて、本図のような根節は考えない流儀が普通かもしれません
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

右の図みたいに数字とか+-×÷とか入れてくれれば何となく意味がわかるけど、左のみたいに中が空だと、だから何って感じ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

式の形のパターン数を見極めようとしているので、具体的な数や演算が入っていない左の図式が不可避

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それから、右の図でも、上に書いてある2×3の式のほうがずっと簡単じゃん。なんでこんな大袈裟おおげさな図で表すんかい! 描くの大変でしょ!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

数値や演算を捨象した式を普通に文字の並びで書くと□○□のようになるが、(□○□)○□や((□○□)○□)○□、はたまた(□○□)○(□○□)のように演算が増えてくると紛らわしくなりがちなんでな。大袈裟おおげさで描くのが大変かもしれんが、二分木として図的に描いたほうが、抜け漏れや重複を避けやすいだろうとの考え

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

図で描くのもなんだかなだけど、数や四則を□やで置き換えた式も、確かにこれはひどいってゆか随分。(□□)(□□)とか、何かの暗号かい、って感じ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうだろう、そうだろう。ってことで、□が1個の場合から順に、二分木を用いて式のパターンの数を考えていくぞ

まず、演算対象となる数値(□)が1個の場合を考えてみる……
演算対象となる数値(□)が1個の場合の二分木パターン
注:対応する式は、図に似た書き方だと□ですが、文字変数(例えばa)を使って書くと a となります。変数単独で式なのですが、式であることを強調するために括弧を付けると (a) ですね。それでも式っぽくないですが
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

まあ、その1種類しかないだろうけど。わざわざ図を描いて説明するほどの場合でもないのに、なんとも大きな図を描いたもんだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうかもしれんが、一応きちんとせねばな。次は演算対象の数値、すなわち▢が2個の場合だ

次に、演算対象となる数値(□)が2個の場合は?
演算対象となる数値(□)が2個の場合の二分木パターン
注:対応する式は、図に似た書き方だと□○□ですが、文字変数(例えばa,b)を使って書くと a○b となります。普通は+-×÷のように具体的な演算を書くところを抽象化して○にしているので、式に見えにくいですね……
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

さっきのよりはちょっと複雑だけど、これも図にするほどじゃない気がする。答えは1種類だし

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうかもしれんが、一応きちんとせねばな。次は演算対象の数値、すなわち▢が3個の場合だ (☜ 発言がワンパターン)

では、数値(□)が3個になると……
演算対象となる数値(□)が3個の場合の二分木パターン
注:□が2個の場合の考察と同様、◉の直下が□だと□1個の場合になってしまうので、□が2個以上の場合は常に◉の下は○です
□が3個のときの場合分け
演算対象となる数値(□)が3個の場合の二分木パターン(場合分け)
注:対応する式は (□○□)○□ および □○(□○□) となります。数値を変数で表すと (a○b)○c および a○(b○c) ですね
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

場合分けが出てきてウザいけど、まあこんなもんか。結局は2種類だし。やっぱり図にするほどのもんじゃない……ってちょっと?!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

はて?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

□が3個なら○は2個ってさりげなく書いてるけど、んなこと誰が決めたんじゃい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ああ、その点か。□が3個のケースに限らず、今回のような二分木では、○の数は常に□の数より1つだけ少なくなるぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんだって?! だ・か・ら、そんな規則、誰が勝手に決めたっちゅの!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

誰かが決めたわけではなく、必然的に、というか数学的にそうなるんだが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ぐぬぬ……。数学的に……。聞きとうない言葉

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ありがちな説明は下記のとおり

どんな場合でも○の数が□の数より1だけ少なくなるのはなぜ?
○の数が□の数より1だけ少なくなるのは
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ん。なんかだまされたような気がする説明なんだけど

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

今回の計算式パターンの考察には慣れていないだろうから、木構造的には完全に同様となるトーナメント戦の考察に置き換えて考えることもできる

トーナメント戦の問題に置き換えて考えてみると……
トーナメント戦の問題に置き換えて考えてみる
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

トーナメント戦のパターンって、全然違う問題じゃん!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

それはそうなんだが、図の形態は同様になるんでな。パターン数や○と□の数の関係といった数え上げの議論も同様になる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

図の形は同じとか言ってるけど、線の形が違うし!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ワシが図の形態と言ったのは節と枝のつながりかたという意味ゆえ、枝の表現法が最短経路的な線分なのか折れ線なのかは本質的なポイントではない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

線の形は重要じゃないんなら、なんでわざわざ変えたんじゃい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

折れ線で書いたほうがトーナメント対戦の図っぽいではないか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

たったそんだけの理由でアタシを混乱させてる?!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

HAHAHA

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

笑って誤魔化すなし。ってか、トーナメント戦の話だったら何か嬉しいんかい?!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

トーナメント戦の問題設定で考えてみよう。その場合、N人が参加して一人の優勝者を決めるのだから、最後まで勝って笑うたった一人の優勝者の陰に、負けて退くN-1人の敗北者がいるわけだ。泣きながら甲子園の土を集める的な

☝優勝チームのメンバーも記念に土を集めるような気が……その場合は泣きながらではない?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それはそうだけど、だから何ですよ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

1回の試合で一人の敗北者が確定するゆえ、N-1人の敗北者を確定させるためにはN-1回の試合が必要だ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それはまあ、そうだろうけど……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

つまり、どんなトーナメントパターンを考えたとしても試合○の数(=N-1)は参加者□の数(=N)より1だけ少ない。同様にして、どんな計算式パターンでも演算○の数は演算対象値□の数より1だけ少ない。OK?

注:○が□より常に1だけ少ないのは、今回、四則演算という二項演算だけを含む計算式を考えているからですね。符号を変える-(マイナス)のような単項演算等が入ってくると、話は違ってきます
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

むむむ。そうなんだけど……。そうなんだろうけど、なんか変な気も……。トーナメント戦の話にすり替えてるから、そこが怪しいかもしれないし

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

トーナメント試合の数といえば、『頭の体操』を思い出すな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

頭の体操って、脳トレみたいな意味?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

いや、そういった一般用語的な意味ではない。ワシが若かりし頃、『頭の体操』というパズル本シリーズがあってな。多湖輝(たご あきら)先生著のベストセラー新書で、ワシ自身も、シリーズ完全制覇には至らなかったものの、かなりの冊数を買って読み漁った。懐かしい思い出だ頭の体操という言い方自体、この本のヒットによって広まったと思われ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

パズル本ってことは、ナンプレ問題集みたいな?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ナンプレ問題集といった今日良く見かけるパズル集は同種問題を集めたものだが、『頭の体操』は文章題パズル集なのでな。問題毎にタイプが異なるゆえ、次の問題に進む毎に頭のひねりかたを変える必要があり、深く楽しめたってことだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あと、ベストセラーって。パズル本みたいな一部のマニア向けの本がそんなに売れるのかなぁ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

1966年に出版された第一集は250万部売れたらしいぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未
ウソでしょ!
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

人気を博したので長期シリーズとなり、1966年の第一集以降40年に渡って続編が出版され、何と全23巻のロングセラー。シリーズ全体では1200万部だそうな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

何と! 大ヒットしたラノベ並みの売上!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんな大ヒットのパズル本を書いた多湖輝先生とは一体?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

多湖先生の専門は心理学で、第一集出版当時は千葉大学の助教授だったはず。心理学の分野で、早期から水平思考といった発想の柔軟性を高める知的活動を重要視されておってな。今日ではこの方向性は一般化しているが、その嚆矢的な。で、頭を柔らかくすることの重要性啓発や具体的実践法に関する著作多数。『頭の体操』もその一環てな感じで、単なるパズルの問答だけの内容ではなく、発想力に関連した解説が色々付いているぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

な、なるほど…… (☜長文説明の圧に押され?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

このように本来は心理学の先生なんだが、『頭の体操』シリーズの大ヒットによりパズルの大家として注目される状況になったようで、1990年代前後には『知恵で解く』タイプの難問クイズ系番組の監修をされたり。さらには『レイトン教授シリーズ』という難問クイズ系ゲームの監修もされている

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

レイトン教授シリーズはアタシもやったことある。その監修っすか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

多湖先生は水平思考という発想法を特に重視されていた感触ゆえ、その効果により、今日言うところの『ウミガメのスープ』展開を加速したのではないか、とも推察される

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

多湖先生の賞賛話はもうお腹いっぱいなんで、その辺で

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それより、トーナメント試合と頭の体操のつながりが謎なんだけど?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

トーナメント参加者数と試合数の関係を考える問題が『頭の体操』で紹介されていたことを思い出してな。しかも何と、第一集の第6問

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

単なるもの忘れオヤジかと思ってたけど、そんな昔のことを覚えてるとは……。でもでも、短期記憶と長期記憶は違うって言うし……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

何をごちゃごちゃと……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

何でもありませ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

頭の体操シリーズに載ってた問題だってのは何となく覚えてたのかも知れないけど、第一集の第6問だってのは、実は後で確認したんでしょ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ばれたか(笑

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

やっぱし! とはいえ、1966年に出た本を今でも持ってるとか、何とも物持ちがいいんでは?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

残念ながらそれは違う。未成年時代の事ゆえ、当時の本は実家に置いておいたんだが、その後、いつの間にか紛失しておった

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

。なら、どうやって第一集の第6問とか確認したん? どこかのサイトに解説とかが上がってる?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

書籍の内容まで詳述している解説サイトは知らんが。頭の体操シリーズは人気作なんで、2000年前後にもシリーズ初期本の復刻版が出版されておってな。まあ、今となってはオリジナル版も復刻版も古書でしか入手できんと思うが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

つまり、その頃に復刻版を買った、と

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

いや、買ってない。2000年頃は仕事が忙しかったんで、その当時は復刻版が出ていることすら知らんかった

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

。ってことは、割と最近になって趣味数に目覚めてから古書を漁った、みたいな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

いや、漁ってない。昨今はインターネット書籍通販の普及により、その昔に比べると古書漁りもずっと楽になっとるが、まあ、古書漁りは最後の手段と考えておる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

この謎解き的な流れはイライラするんだけど! とっととネタバレするように!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

すまぬすまぬ。謎解き的な流れを作る意図はなかったんだが。むしろお前さんがそのような質問応答の流れを作ったというか……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

さておきネタバレすると、頭の体操のシリーズ初期本の幾つかは電子書籍化されとってな。実は Kindle で見た、ってのが答え

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

んだ。キンドルで読んだんかい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

左様

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

第一集第6問の件はこの辺にしといて、その問題の解答はどんな感じだったん?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

細かい表現は違っていたと思うが、本質的な考え方はワシの先程の解説と同様だったはず

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ってことは、おっちゃんの説明を信じるしかない……のか……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ワシの説明は疑ってかかるくせに、多湖先生の説明なら無条件に受け入れるんかい?!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

HAHAHA!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

HAHAHA返し……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

とはいうものの、○が□より1つ少なくなる点については、これにて一件落着、か

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

う〜ん。多湖先生の解説も同じだったとしても、なんかだまされてるような説明で嘘くさいんだよね〜。トーナメント戦のほうは信じるとしても、計算式パターンのほうは、図が同じとか言って勝手にトーナメント戦の話にすり替えただけだし……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

お求めとあらば、もっと数学の証明っぽい説明の仕方もあるけどな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

む……数学……証明……。授業中意識をなくしてた中高の暗い記憶が……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

(☟夢未さんの数学嫌いに特有な感想を完全スルーしつつ)

まず、今回の四則演算パターンについて任意の二分木パターンを考え、その枝の数をE、演算対象値を表す葉節□の数をL、演算を表す中間節○の数をBとする。なお、最終計算結果を表す根節◉の数は、どのようなパターンでも常に1だ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

うわっ。いかにも数学の証明って感じの出だし。意識が飛びそう……

<br><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>

惰性慣性

(☟夢未さんの数学嫌いに特有な不規則発言を完全スルーしつつ)

そして、枝の上端および下端と各種節との接続形態を考え、以下のように『全てのパターンにおいて常に成立する』2つの関係式を導く

枝の上端と節の下側接続点との間の対応関係
枝の上端と節の下側接続点との間の対応関係
枝の上端と節との接続から関係式を一つ導く
枝の上端と節との接続から得られる関係式
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

頭がクラクラするぅ……

枝の下端と節の上側接続点との間の対応関係
枝の下端と節の上側接続点との間の対応関係
枝の下端と節との接続から関係式をもう一つ導く
枝の下端と節との接続から得られる関係式
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

うっ。なんか吐き気が……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

(☟夢未さんの数学嫌いに特有な反応を完全スルーしつつ)

このように1+2B=E、L+B=Eという2つの関係式が導かれるから、

1+2B=L+B

となる。移項して整理すればB=L-1が得られる。Bは○の数、Lは□の数ゆえ、『○や□の数、というか図のパターンを特定しなくても一般的に常に』の数は□の数より1だけ小さいことが分かる。てなわけで証明完了 Q.E.D.

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ぐはぁ……ばなな

<br><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>

惰性慣性

(☟いつもは嫌っている夢未さんのばなな顔を完全スルーしつつ)

なお、上記の証明っぽい説明では節と枝の接続形態、すなわち図の形状ルールのみを用いて結論を得ている。換言すれば、図の形のタイプだけで決まる結果ゆえ、節や枝に具体的に何を当てはめているかという利用局面には依存せずに成り立つ。そこで、今回の計算式パターン数え上げでも、トーナメント試合の組み方でも同様な性質が成立するのだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

何というか、グラフ理論教科書の最初の方に出てきそうな議論か

☝『○の数が□の数より常に1だけ少ない』という性質は、今回の計算式パターンでは『○の上に付く枝が1本で○の下に付く枝が2本』などと決まっているため導出されるものです。グラフ理論では節ではなく頂点 (vertex)、そして枝ではなく辺 (edge) と呼ぶことが多い模様ですが、一般のグラフでは頂点に接続する辺の数が任意のため、ここで述べた(特定パターン特化的な)性質は必ずしも成立しません。一般的な有向グラフで成立する類似の性質は、『有向グラフ 入次数 出次数 関係』などのキーワードで検索すると発見できるかと

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

すみません。疑ってたアタシが間違ってマシタ。もうそれでいいっす

<br><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>

惰性慣性

(☟夢未さんの数学嫌いが極まった反応を完全スルーしつつ)

そうか。分かってくれたならそれでよい

☝いやいや、絶対分かってない感じですよ。そんなゴリ押しでいいのでしょうか? 惰性慣性オヤジ!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ふぅ

(☝ばなな顔の表情&発言&ポーズ、および(ジャンピング?)土下座により発散して復活?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

では、□が4個の場合の計算式パターン数え上げに戻るとしよう

数値(□)が4個になると……
演算対象となる数値(□)が4個の場合の二分木パターン
□が4個の場合A:左の〇2個、右の〇無し
演算対象となる数値(□)が4個の場合の二分木パターン、場合A:左の〇2個で右の〇無し
注:対応する式は ((□○□)○□)○□ および (□○(□○□))○□ となります。数値を変数で表すと ((a○b)○c)○d および (a○(b○c))○d ですね。次第に訳が分からない式になってまいりました
□が4個の場合B:左の〇1個、右の〇1個
演算対象となる数値(□)が4個の場合の二分木パターン、場合B:左の〇1個で右の〇1個
注:対応する式は (□○□)○(□○□) となります。数値を変数で表すと (a○b)○(c○d) ですね
□が4個の場合C:左の〇無し、右の〇2個
演算対象となる数値(□)が4個の場合の二分木パターン、場合C:左の〇無しで右の〇2個
注:対応する式は ○□((□○□)○□) および ○□(□○(□○□)) となります。数値を変数で表すと a○((b○c)○d) および a○(b○(c○d)) ですね
まとめると□が4個の計算式パターンは下記の5種類
□が4個の計算式パターンはこれら5種類
注1:例によって対応する式は、
パターン1: ((□○□)○□)○□、パターン2: (□○(□○□))○□、
パターン3: (□○□)○(□○□)、パターン4: □○((□○□)○□)、
パターン5: □○(□○(□○□)) となります
注2:よく見ると、以下のペアは左右反転形になっています。パターン1⇔パターン5、パターン2⇔パターン4
注3:さらに、パターン3には相方がいませんが、これは左右対称形で、反転しても同じですね
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

えっと、テンパズルは□4つだから、式のパターンは5種類なのか。まっ、このくらいだったら、慎重に考えればきちんと全部、並べられるような気も……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうかもしれんな。さて、と。亜種のクリプト (Krypto) では数が5個の問題を扱うので、□が5個の場合まで考えておくか。抜け漏れや重複なしに計算式パターンを列挙する方法の雰囲気はおおむね分かったと思うので、5個の場合は結果だけ列挙するとしよう

□が5個の計算式パターンは下記の14種類
注1:くどい感じですが対応する式は、
①: (((□○□)○□)○□)○□、②: ((□○(□○□))○□)○□、
③: ((□○□)○(□○□))○□、④: (□○((□○□)○□))○□、
⑤: (□○(□○(□○□)))○□、⑥: ((□○□)○□)○(□○□)、
⑦: (□○(□○□))○(□○□)、⑧: (□○□)○((□○□)○□)、
⑨: (□○□)○(□○(□○□))、⑩: □○(((□○□)○□)○□)、
⑪: □○((□○(□○□))○□)、⑫: □○((□○□)○(□○□))、
⑬: □○(□○((□○□)○□)、⑭: □○(□○(□○(□○□)))
となります
注2:よく見ると、以下のペアは左右反転形だと分かりますね。①⇔⑭、②⇔⑬、③⇔⑫、④⇔⑪、⑤⇔⑩、⑥⇔⑨、⑦⇔⑧
注3:さらに、□が5個の場合、左右対称なパターンはないことも分かります
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

げげげ。□が5個だと14種類もあるのか。これはきちんとやらないともう駄目、かもしんない……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあな。具体的にパターンを列挙するのはここまでにしておくが、□の数が増えたときのパターン数のみをもう少し示すと下記のようになる

□の数が増えたときの計算式パターン数の推移
□の数 12 34 56 78 910
○の数 01 23 45 67 89
パターン数 11 25 1442 132429 1,4304,862
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

○の数が□の数よりいつも1つ小さくなるのは、まあいいとして……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なんだかまだ納得していない者がおるようじゃが……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんなことより!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

む?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

□の数が増えるとパターンの数がどんどんヤバくなるんだけど!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そう、ヤバいな。だがしかし、場合の数というか組合せ数学の世界では割と日常

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

数がハゲしく大きくなるのが日常なんだ……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ハゲしく同意。それはそれとして、このパターン数の系列は結構古くから研究されており、カタラン数 (Catalan number) と呼ばれているぞ

カタラン数 (Catalan number)
□の数 12 34 56 78 910
○の数 01 23 45 67 89
パターン数 (カタラン数) 11 25 1442 132429 1,4304,862
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

数が沢山並んでるのに、カタラン数とはこれいかに?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

む?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

カタラン『数』とか言われると、なんか一つの数だと思っちゃうじゃん。常識的に考えて

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ああ、その点か。正確にはカタラン関数、あるいはカタラン数列などと呼ぶべきなんだろうが、慣用的にカタラン数と呼ばれとるので堪忍して欲しい

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

いや、許せん! てか、数学ってもの自体がケシカラン!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあまあ。今回はカタラン数については言及のみで深入りせんので、ここは穏便にひとつ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

今回、カタラン数は語らん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

って、寒っ!!!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

顔芸、というか妙な感じに自己完結しとるな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

……早く話を進めるように

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

だな。計算式のパターンについてかなり手間取ったが、後は□や○のところに値や四則演算を当てはめるだけなんで、話は単純。中高で習う場合の数というか順列・組合せというか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そうは言うがな、おっちゃん。アタシにとってそいつらは強力な眠剤

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

□が1つの場合から順に考えていくので、何とか雰囲気は分かるじゃろ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そうだ。眠くなったら素直に居眠りしちゃえばいいんじゃん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

(☟フリーダム過ぎる相方を放置しつつ)

……最初に、□つまり値が1つの場合だが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

どぞ (☜安直な道を悟りお気楽モード?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

□に1や2と言った特定の数値を当てはめるといきなり個別各論になってしまうので、□の値が色々変わるときの傾向を把握しにくい。そこでこの段階では、□に任意の整数を表す変数を当てはめ、ある程度、大局的な様子をうかがうことにする。使う変数は、とりあえず a としよう

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

変数とかウザいけど、ま、いっか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

とはいえ、□1個のときは演算の〇がないため、四則演算を選択して当てはめる余地がない。さらに式のパターンも1とおりゆえ、やはり選べないしな。結局、ランダムに与えられる値 a がそのまま最終結果となる。強いて言えば、計算式(?)はこの1とおり

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

解答者は何もすることがないから、この場合はパズルとは言えんな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

□一つだけとか、簡単にしすぎですぅ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

それはそう。では次は□が2つの場合だ。□に当てはめる変数は a, b とする

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

へぇへぇ (☜テンションが落ち着いてきた?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ここで、解答者が好きにできる選択肢を考えてみよう。まず式のパターンだが、□2個の場合は1とおりしかないので選ぶ余地はない。が、値を設定する□は2個なので、順番は自由とのルールにより、a, b または b, a の順で値を表す文字変数2個を当てはめることができる。つまり2とおり。更に、演算を設定する○が1つあるので、ここに4種類ある四則演算 (+-×÷) のいずれかを選んで当てはめることができる。すなわち4とおり。結局、選べる計算式の場合の数は1×2×4で8とおり

□が2個で〇が1個のときの計算式の場合の数は?
□が2個で〇が1個のときの計算式の場合の数
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

得られた8とおりを具体的に列挙すると下記のごとし

2つの□の値を a, b とするときの計算式一覧
通番式パターン四則変数順計算式グループ番号
1□○□a, ba+b1
2b, ab+a1
3a, baーb2
4b, abーa3
5×a, ba×b4
6b, ab×a4
7÷a, ba÷b5
8b, ab÷a6
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

まあ大体はそりゃそうだって表だけど、最後のグループ番号欄は何?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

知っているとは思うが、足し算(加法)と掛け算(乗法)では下記の交換法則が成り立つ。

a+b=b+a

a×b=b×a

こういった常に成立する法則で同じとみなせる計算式をグループ化した。aやbに実際の数を代入して計算するとき、グループ内のどれか1つを計算すれば事足りるからな。式の見た目では8とおりだったが、このようにグループ化してみると、実質的には6とおりだと分かる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

交換法則とか知ってっし (☜怪しげ)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

それは良かった(☜棒読み)。先程の表だと、法則により等しくなる式のグループが分かりにくいから、グループでまとめた表も出しておくとしよう

2つの□の値を a, b とするときの計算式一覧 (グループ別)
G通番標準形G内通番計算式備考
1a+b1a+b 
2b+a 
2a-b1a-b 
3-a+b1b-a 
4a×b1a×b 
2b×a 
5a÷b1a÷b 
6b÷a1b÷a 
注1:G通番はグループの通番という意味です
注2:標準形とは、グループに所属するそれぞれの計算式を交換法則といったルールで変形していって、幾つかの考え方に基づき『標準的な』式の形にしたものです。勿論、式の変形は等価な式となる範囲で行います。計算式を変形していって標準形に直したときに同じになるなら、同じグループに属していると考えます。式の変形が不十分で『不完全な』標準形だと、実は等価な式なのに単一の標準形にすることができず、一つのグループにまとめられないことがありえます。上記の例は単純なので、そのようなグループ化不足はないはずですが……
注3:G内通番はグループ毎のもので、そのグループに所属する計算式に1から順に割り振っている通番です
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

交換法則がどうのとか面倒くさいこと言ってるけど……。法則を使えるところが2つあって数が8から6に減ってるだけ……。大して変わらないじゃん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあな。□が2個のときは8から6への25%減で削減効果は今一。なんだが、□が増えると、法則が増えたり法則の組み合わせが生じたりするんで、削減の比率が増えるぞ。ってことで、□が3つの場合に進むとしよう

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

どうぞどうぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

□2個のときと同様、解答者が選べるポイントを考える。まず式のパターンだが、□3個の場合は2とおりある。どちらのパターン中にも□が3つあるので、値を表す文字a, b, cのあてはめかたは3個を全て使う順列の数となる。すなわち3!=6とおり。また、〇も2個に増えているので、それぞれに四則演算のいずれかを選んで当てはめることができる。4とおりの○が2箇所に増えたから、4×4=16とおりだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

うだうだ言ってないで□が3つのときの結論をとっとと!

□が3個で〇が2個のときの計算式の場合の数は?
□が3個で〇が2個のときの計算式の場合の数
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ちと落ち着け。選べる計算式の場合の数は『式パターン数』×『値(の変数)当てはめかた数』×『四則当てはめかた数』ゆえ、具体的な値は2×6×16で192とおり。例によって得られた192とおりの計算式を列挙すると、下記の表となる

3つの□の値を a, b, c とするときの計算式一覧
通番式パターン四則変数順計算式グループ番号
1□○(□○□)+, +a, b, ca+(b+c)1
2a, c, ba+(c+b)1
3b, a, cb+(a+c)1
4b, c, ab+(c+a)1
5c, a, bc+(a+b)1
6c, b, ac+(b+a)1
7+, -a, b, ca+(b-c)2
8a, c, ba+(c-b)3
9b, a, cb+(a-c)2
10b, c, ab+(c-a)4
11c, a, bc+(a-b)3
12c, b, ac+(b-a)4
13+, ×a, b, ca+(b×c)5
14a, c, ba+(c×b)5
15b, a, cb+(a×c)6
16b, c, ab+(c×a)6
17c, a, bc+(a×b)7
18c, b, ac+(b×a)7
19+, ÷a, b, ca+(b÷c)8
20a, c, ba+(c÷b)9
21b, a, cb+(a÷c)10
22b, c, ab+(c÷a)11
23c, a, bc+(a÷b)12
24c, b, ac+(b÷a)13
25-, +a, b, ca-(b+c)14
26a, c, ba-(c+b)14
27b, a, cb-(a+c)15
28b, c, ab-(c+a)15
29c, a, bc-(a+b)16
30c, b, ac-(b+a)16
31-, -a, b, ca-(b-c)3
32a, c, ba-(c-b)2
33b, a, cb-(a-c)4
34b, c, ab-(c-a)2
35c, a, bc-(a-b)4
36c, b, ac-(b-a)3
37-, ×a, b, ca-(b×c)17
38a, c, ba-(c×b)17
39b, a, cb-(a×c)18
40b, c, ab-(c×a)18
41c, a, bc-(a×b)19
42c, b, ac-(b×a)19
43-, ÷a, b, ca-(b÷c)20
44a, c, ba-(c÷b)21
45b, a, cb-(a÷c)22
46b, c, ab-(c÷a)23
47c, a, bc-(a÷b)24
48c, b, ac-(b÷a)25
49×, +a, b, ca×(b+c)26
50a, c, ba×(c+b)26
51b, a, cb×(a+c)27
52b, c, ab×(c+a)27
53c, a, bc×(a+b)28
54c, b, ac×(b+a)28
55×, -a, b, ca×(b-c)29
56a, c, ba×(c-b)30
57b, a, cb×(a-c)31
58b, c, ab×(c-a)32
59c, a, bc×(a-b)33
60c, b, ac×(b-a)34
61×, ×a, b, ca×(b×c)35
62a, c, ba×(c×b)35
63b, a, cb×(a×c)35
64b, c, ab×(c×a)35
65c, a, bc×(a×b)35
66c, b, ac×(b×a)35
67×, ÷a, b, ca×(b÷c)36
68a, c, ba×(c÷b)37
69b, a, cb×(a÷c)36
70b, c, ab×(c÷a)38
71c, a, bc×(a÷b)37
72c, b, ac×(b÷a)38
73÷, +a, b, ca÷(b+c)39
74a, c, ba÷(c+b)39
75b, a, cb÷(a+c)40
76b, c, ab÷(c+a)40
77c, a, bc÷(a+b)41
78c, b, ac÷(b+a)41
79÷, -a, b, ca÷(b-c)42
80a, c, ba÷(c-b)43
81b, a, cb÷(a-c)44
82b, c, ab÷(c-a)45
83c, a, bc÷(a-b)46
84c, b, ac÷(b-a)47
85÷, ×a, b, ca÷(b×c)48
86a, c, ba÷(c×b)48
87b, a, cb÷(a×c)49
88b, c, ab÷(c×a)49
89c, a, bc÷(a×b)50
90c, b, ac÷(b×a)50
91÷, ÷a, b, ca÷(b÷c)37
92a, c, ba÷(c÷b)36
93b, a, cb÷(a÷c)38
94b, c, ab÷(c÷a)36
95c, a, bc÷(a÷b)38
96c, b, ac÷(b÷a)37
97(□○□)○□+, +a, b, c(a+b)+c1
98a, c, b(a+c)+b1
99b, a, c(b+a)+c1
100b, c, a(b+c)+a1
101c, a, b(c+a)+b1
102c, b, a(c+b)+a1
103+, -a, b, c(a+b)-c2
104a, c, b(a+c)-b3
105b, a, c(b+a)-c2
106b, c, a(b+c)-a4
107c, a, b(c+a)-b3
108c, b, a(c+b)-a4
109+, ×a, b, c(a+b)×c28
110a, c, b(a+c)×b27
111b, a, c(b+a)×c28
112b, c, a(b+c)×a26
113c, a, b(c+a)×b27
114c, b, a(c+b)×a26
115+, ÷a, b, c(a+b)÷c51
116a, c, b(a+c)÷b52
117b, a, c(b+a)÷c51
118b, c, a(b+c)÷a53
119c, a, b(c+a)÷b52
120c, b, a(c+b)÷a53
121-, +a, b, c(a-b)+c3
122a, c, b(a-c)+b2
123b, a, c(b-a)+c4
124b, c, a(b-c)+a2
125c, a, b(c-a)+b4
126c, b, a(c-b)+a3
127-, -a, b, c(a-b)-c14
128a, c, b(a-c)-b14
129b, a, c(b-a)-c15
130b, c, a(b-c)-a15
131c, a, b(c-a)-b16
132c, b, a(c-b)-a16
133-, ×a, b, c(a-b)×c33
134a, c, b(a-c)×b31
135b, a, c(b-a)×c34
136b, c, a(b-c)×a29
137c, a, b(c-a)×b32
138c, b, a(c-b)×a30
139-, ÷a, b, c(a-b)÷c54
140a, c, b(a-c)÷b55
141b, a, c(b-a)÷c56
142b, c, a(b-c)÷a57
143c, a, b(c-a)÷b58
144c, b, a(c-b)÷a59
145×, +a, b, c(a×b)+c7
146a, c, b(a×c)+b6
147b, a, c(b×a)+c7
148b, c, a(b×c)+a5
149c, a, b(c×a)+b6
150c, b, a(c×b)+a5
151×, -a, b, c(a×b)-c60
152a, c, b(a×c)-b61
153b, a, c(b×a)-c60
154b, c, a(b×c)-a62
155c, a, b(c×a)-b61
156c, b, a(c×b)-a62
157×, ×a, b, c(a×b)×c35
158a, c, b(a×c)×b35
159b, a, c(b×a)×c35
160b, c, a(b×c)×a35
161c, a, b(c×a)×b35
162c, b, a(c×b)×a35
163×, ÷a, b, c(a×b)÷c36
164a, c, b(a×c)÷b37
165b, a, c(b×a)÷c36
166b, c, a(b×c)÷a38
167c, a, b(c×a)÷b37
168c, b, a(c×b)÷a38
169÷, +a, b, c(a÷b)+c12
170a, c, b(a÷c)+b10
171b, a, c(b÷a)+c13
172b, c, a(b÷c)+a8
173c, a, b(c÷a)+b11
174c, b, a(c÷b)+a9
175÷, -a, b, c(a÷b)-c63
176a, c, b(a÷c)-b64
177b, a, c(b÷a)-c65
178b, c, a(b÷c)-a66
179c, a, b(c÷a)-b67
180c, b, a(c÷b)-a68
181÷, ×a, b, c(a÷b)×c37
182a, c, b(a÷c)×b36
183b, a, c(b÷a)×c38
184b, c, a(b÷c)×a36
185c, a, b(c÷a)×b38
186c, b, a(c÷b)×a37
187÷, ÷a, b, c(a÷b)÷c48
188a, c, b(a÷c)÷b48
189b, a, c(b÷a)÷c49
190b, c, a(b÷c)÷a49
191c, a, b(c÷a)÷b50
192c, b, a(c÷b)÷a50
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

むむっ。さっきは8だったのに今度は192とか、いきなり場合の数が増えてるし。これがその筋の日常ってヤツ……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

左様。それから、○が2個に増えたので、加法と乗法の交換法則に加えて結合法則(下記)も加味して同様な数式をグループ化している。

(a+b)+c=a+(b+c)

(a×b)×c=a×(b×c)

引き算(減法)では結合法則は成り立たないが、例えば下記の等式が成り立つ。

a+(b-c)=(a+b)

(b+c)=(ab)

(bc)=(ab)+c

割り算(除法)についても似たような等式があるな。

a×(b÷c)=(a×b)÷c

a÷(b×c)=(a÷b)÷c

a÷(b÷c)=(a÷b)×c

こういった等式も加味してグループ化しているぞ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

結合法則……。な(☜深く考えてない?)

注1:上で示した次の式では注意が必要です。
a÷(b÷c)=(a÷b)×c
この等式は殆ど常に成り立ちますが、cに0を代入した場合のみ違いが生じます。左辺ではゼロ割りが生じ使用禁止式となりますが、右辺は普通に0です。この点については、後で惰性慣性が言及するはずです
注2:加法(+)と乗法(×)との間に成り立つ分配法則(下記)もあります。
a×(b+c)=(a×b)+(a×c)
交換法則を併用すると下記も成り立ちます。
(a+b)×c=(a×c)+(b×c)
注3:さらに減法(-)でも、下記の等式が成り立ちます。
a×(b-c)=(a×b)-(a×c)
(a-b)×c=(a×c)-(b×c)
注4:乗法(×)を除法(÷)に変えると、下記の等式が成り立ちます。
(a+b)÷c=(a÷c)+(b÷c)
(a-b)÷c=(a÷c)-(b÷c)
注5:上記(注2~注4)の法則を使うと四則演算の数が変わるので、演算の○は2個といった掟がある状況で使うと掟破りになってしまいますが……。標準形への変形では掟にこだわらないことが多いので、分配法則も加味して式を変形したりしますね
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

□が2個の場合と同様、上記の表だとグループ化の様子が分かりにくいので、グループ別に整理した表も用意した。これだ

3つの□の値を a, b, c とするときの計算式一覧 (グループ別)
G通番標準形G内通番計算式備考
1a+b+c1a+(b+c) 
2a+(c+b) 
3b+(a+c) 
4b+(c+a) 
5c+(a+b) 
6c+(b+a) 
7(a+b)+c 
8(a+c)+b 
9(b+a)+c 
10(b+c)+a 
11(c+a)+b 
12(c+b)+a 
2a+b-c1a+(b-c) 
2b+(a-c) 
3a-(c-b) 
4b-(c-a) 
5(a+b)-c 
6(b+a)-c 
7(a-c)+b 
8(b-c)+a 
3a-b+c1a+(c-b) 
2c+(a-b) 
3a-(b-c) 
4c-(b-a) 
5(a+c)-b 
6(c+a)-b 
7(a-b)+c 
8(c-b)+a 
4-a+b+c1b+(c-a) 
2c+(b-a) 
3b-(a-c) 
4c-(a-b) 
5(b+c)-a 
6(c+b)-a 
7(b-a)+c 
8(c-a)+b 
5a+b×c1a+(b×c) 
2a+(c×b) 
3(b×c)+a 
4(c×b)+a 
6a×c+b1b+(a×c) 
2b+(c×a) 
3(a×c)+b 
4(c×a)+b 
7a×b+c1c+(a×b) 
2c+(b×a) 
3(a×b)+c 
4(b×a)+c 
8a+b÷c1a+(b÷c) 
2(b÷c)+a 
9a+c÷b1a+(c÷b) 
2(c÷b)+a 
10a÷c+b1b+(a÷c) 
2(a÷c)+b 
11b+c÷a1b+(c÷a) 
2(c÷a)+b 
12a÷b+c1c+(a÷b) 
2(a÷b)+c 
13c+b÷a1c+(b÷a) 
2(b÷a)+c 
14a-b-c1a-(b+c) 
2a-(c+b) 
3(a-b)-c 
4(a-c)-b 
15-a+b-c1b-(a+c) 
2b-(c+a) 
3(b-a)-c 
4(b-c)-a 
16-a-b+c1c-(a+b) 
2c-(b+a) 
3(c-a)-b 
4(c-b)-a 
17a-b×c1a-(b×c) 
2a-(c×b) 
18-a×c+b1b-(a×c) 
2b-(c×a) 
19-a×b+c1c-(a×b) 
2c-(b×a) 
20a-b÷c1a-(b÷c) 
21a-c÷b1a-(c÷b) 
22-a÷c+b1b-(a÷c) 
23b-c÷a1b-(c÷a) 
24-a÷b+c1c-(a÷b) 
25c-b÷a1c-(b÷a) 
26a×(b+c)1a×(b+c) 
2a×(c+b) 
3(b+c)×a 
4(c+b)×a 
27b×(a+c)1b×(a+c) 
2b×(c+a) 
3(a+c)×b 
4(c+a)×b 
28c×(a+b)1c×(a+b) 
2c×(b+a) 
3(a+b)×c 
4(b+a)×c 
29a×(b-c)1a×(b-c) 
2(b-c)×a 
30a×(-b+c)1a×(c-b) 
2(c-b)×a 
31b×(a-c)1b×(a-c) 
2(a-c)×b 
32b×(-a+c)1b×(c-a) 
2(c-a)×b 
33c×(a-b)1c×(a-b) 
2(a-b)×c 
34c×(-a+b)1c×(b-a) 
2(b-a)×c 
35a×b×c1a×(b×c) 
2a×(c×b) 
3b×(a×c) 
4b×(c×a) 
5c×(a×b) 
6c×(b×a) 
7(a×b)×c 
8(a×c)×b 
9(b×a)×c 
10(b×c)×a 
11(c×a)×b 
12(c×b)×a 
36a×b÷c1a×(b÷c) 
2b×(a÷c) 
3a÷(c÷b)÷入れ子
4b÷(c÷a)÷入れ子
5(a×b)÷c 
6(b×a)÷c 
7(a÷c)×b 
8(b÷c)×a 
37a×c÷b1a×(c÷b) 
2c×(a÷b) 
3a÷(b÷c)÷入れ子
4c÷(b÷a)÷入れ子
5(a×c)÷b 
6(c×a)÷b 
7(a÷b)×c 
8(c÷b)×a 
38b×c÷a1b×(c÷a) 
2c×(b÷a) 
3b÷(a÷c)÷入れ子
4c÷(a÷b)÷入れ子
5(b×c)÷a 
6(c×b)÷a 
7(b÷a)×c 
8(c÷a)×b 
39a÷(b+c)1a÷(b+c) 
2a÷(c+b) 
40b÷(a+c)1b÷(a+c) 
2b÷(c+a) 
41c÷(a+b)1c÷(a+b) 
2c÷(b+a) 
42a÷(b-c)1a÷(b-c) 
43-a÷(b-c)1a÷(c-b) 
44b÷(a-c)1b÷(a-c) 
45-b÷(a-c)1b÷(c-a) 
46c÷(a-b)1c÷(a-b) 
47-c÷(a-b)1c÷(b-a) 
48a÷(b×c)1a÷(b×c) 
2a÷(c×b) 
3(a÷b)÷c 
4(a÷c)÷b 
49b÷(a×c)1b÷(a×c) 
2b÷(c×a) 
3(b÷a)÷c 
4(b÷c)÷a 
50c÷(a×b)1c÷(a×b) 
2c÷(b×a) 
3(c÷a)÷b 
4(c÷b)÷a 
51(a+b)÷c1(a+b)÷c 
2(b+a)÷c 
52(a+c)÷b1(a+c)÷b 
2(c+a)÷b 
53(b+c)÷a1(b+c)÷a 
2(c+b)÷a 
54(a-b)÷c1(a-b)÷c 
55(a-c)÷b1(a-c)÷b 
56(-a+b)÷c1(b-a)÷c 
57(b-c)÷a1(b-c)÷a 
58(-a+c)÷b1(c-a)÷b 
59(-b+c)÷a1(c-b)÷a 
60a×b-c1(a×b)-c 
2(b×a)-c 
61a×c-b1(a×c)-b 
2(c×a)-b 
62-a+b×c1(b×c)-a 
2(c×b)-a 
63a÷b-c1(a÷b)-c 
64a÷c-b1(a÷c)-b 
65-c+b÷a1(b÷a)-c 
66-a+b÷c1(b÷c)-a 
67-b+c÷a1(c÷a)-b 
68-a+c÷b1(c÷b)-a 
注:G通番等、各欄の意味は□が2個の場合の表と同様です
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それにしても、項目が192もある表を手で書くとか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

フッ、そんなことはない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

。したら一体どうやったんじゃい? 

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

□2個の段階で既に数式の種類が192に増えとるのでな。実はプログラムを書いていろいろ計数している

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

んだ。プログラムかい! コンピューター君を酷使して自分は楽してる 

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まあそういうことだが、反面、プログラムを書いたりデバッグしたりが大変なんじゃ……。それはさておき、1,1,2,5,14……と増えていく□○計算式パターンの生成、○への四則演算割り当て、□への変数割り当ては Python というプログラム言語を用いて淡々と処理しており、□2個なら192個といった数式生成はできている。先程の表もワシの手書きではなく、実はプログラムで生成しておる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

。ってことは□が増えても安心?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

昨今のPCは計算が人間の数億倍以上速いとはいえ、場合の数が鬼のように増えていく組合せ数学への応用では、そのような安直なコンピューター信仰は危険だ。ちょっと問題の規模が大きくなると、コンピューター処理でもつらくなることがしばしばあってな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そうなんだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

特に、ワシが愛用している Python 言語は、よく練られたライブラリが充実していて凝った処理をサクサク書ける点では大変めでたいが、処理速度がかーなーり遅いという大きな問題がある。クリプト (Krypto) に対応できるよう、□5個までは何とかしたいが……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なら、そのパイなんたらを止めてもっと速いのにすればいいじゃん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

詳しくは知らないけど、噂ではプログラミング言語って沢山あるんでしょ? IT系就職に有利な言語はこれだ、的な

☝夢未さんは、プログラミング言語が色々ある事実を就活系のサイトや広告等で知ったのでしょうか?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうは言うがな、夢未さんや。確かに CC++等のコンパイル型言語は処理が速いが……。そういった処理の速い他言語に乗り換えるとプログラム作成が面倒になりがちなんじゃ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

世の中、ままならないもんっすね (☜他人事)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

とはいえ Python 一辺倒では辛い局面もしばしばあるんで、ライブラリ活用でサクサクしたい部類の処理でなければ、TypeScriptとか、あとは Codonにも手を出しつつあるが……

蛇足1: 惰性慣性オヤジは Python と TypeScript を含む JavaScript 系以外のプログラミング言語には手を広げるつもりがない感じですね

蛇足2: Python や JavaScript はインタープリタ型言語というタイプで、ちょっとしたプログラムをサクっと書いて何回か走らせるといった用途に向いており、その反面、高速処理には向いていないのが過去の常識でしたが。昨今は Python や JavaScript で大規模プログラムを開発したりするようになってきたためか、JIT コンパイラといった高速化の技がハゲしく進化しているようで

蛇足3: JavaScript では V8 エンジンという言語処理系の JIT コンパイラが非常に強力で、C, C++ といったコンパイル型言語に肉薄する性能を出せるそうな。実際、ナンプレ/数独系のとあるプログラムを Python から TypeScript に書き換えて Node.js 処理系(☜これは内部でV8エンジンを活用)で走らせた惰性慣性オヤジが「こんなに速くなるんかい!」と驚いたこともあるとか

蛇足4: さらに、できれば Python⇒TypeScript といった面倒な書き換えなしで Python プログラムをそのまま速くしたいという意図で、Codon という Python コンパイラに注目しているのでしょう。Codon でも、C, C++ 等に匹敵する性能を出せるとか。ただし、Codon が受け付けるのは 99% Python だそうなので、惰性慣性オヤジが書いた怪しい Python プログラムを全て受け付けてくれるかどうかは謎です。その意味で過信は禁物かもしれません

蛇足5: 最近の Python 処理系には JIT コンパイラが含まれるようになったそうですが、今のところは「あまり速くならない」との噂が多い感触です。今後の進化に期待でしょうか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

んな細かい話をされても、プログラミング言語の違いとかようわからん。けど、ま、記事のネタになるみたいなんで、適当に頑張ってちょだい

(☝なんか偉そうというか上からというか)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そこはぼちぼちとな……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

さておき、先程の表を作成する上で面倒だった点は、交換法則や結合法則等を使って実質的には同じとなる数式をグルーピングする処理だ。192式もあるのでな。手作業では日が暮れるし、間違いも多発てなことに……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

でも結局は、仕方ないからグルーピングのとこは手作業でやったんでしょ? 日は暮れまくって涙目だし、間違いは沢山残ってて表の中身はインチキだらけ、みたいな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

フッ、そんなことはない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

。したら一体どうやったんじゃい? 

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

幸いなことに、Python 言語には Sympyという数式処理ライブラリがある。先程、Python は遅いなどと暗黒面の不満を述べたが、光明面のライブラリ充実メリットというか。てなわけで、このライブラリに含まれる simplify 関数を用いてグループ化を行った

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんな飛び道具が……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

Sympy は数式処理の専門家が開発しておるし、比較的よく使われ品質が安定している感触ゆえ、怪しげなワシの手計算よりははるかに信用できるじゃろうて

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

まっ、その心配(?)先生にすがったのはわかった。名前がアレなんで、頼っていいのか謎だけど……

☝Sympy の読み方はシムピー(⇒シンピ⇒神秘?)なのか、シムパイ(⇒シンパイ⇒心配?)なのかという素朴な疑問がありまして。正解は後者らしいのですが、その線で惰性慣性オヤジが「シムパイ」と発音した際、夢未さんには「心配」と聞こえたのではないかと

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ところで数式処理って何?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そこかい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そこだね

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

よかろう。数式処理は、数式の計算をしてくれる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんなインチキ辞書みたいなテキトー説明で済むと思っとんのかい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

やはり駄目じゃったか……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

残当! もっと誠意を持って、丁寧に、分かりやすく!

☝この『残当』の意味は、「おっちゃんにとっては残念かもしれないけど当然でしょ。常識的に考えて!」といった感じでしょうか?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

……小学校の算数では、計算というと特定の数の計算だと思うが。例えば、

2x3+1=6+1=7

といったような

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

まあ、そうだったかな…… (☜算数・数学系の記憶が常に怪しい?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

しかし、中学になると変数が導入されて変数を含む文字式が普通になり、文字式のままでの計算が多くなったはず。例えば、

x+y=3 (式1)

2x+4y=8 (式2)

式1の両辺を2倍すると

2x+2y=6 (式3)

式2の両辺から式3の両辺を引くと

2y=2 (式4)

式4の両辺を2で割って

y=1

といった感じだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんな気もするけど、きちんと思い出そうとすると頭痛が……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

今説明した文字式の計算が理解できんレベルだとすると、中学数学からやり直してマスターしてもらわん限り、これ以降の説明は『馬の耳に念仏』状態になるんだが……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

まっ、そりゃ文字式ぐらい、当然、知ってっし (☜怪しい?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なら話は簡単。数式処理は、正に中学以降で行う文字式の計算をしてくれる。それゆえ、a+b と b+a が『文字式として』実は同じ、といった処理が可能になるわけで

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

な、な(☜本当に分かった?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

はて?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

わざわざ『心配?』とかいう数式処理の何かをどっかから持ってこないと駄目なわけ? 中学以降でならう文字式って、割と基本な感じがするんだけど。おっちゃんが使ってるパイなんたらってプログラミング言語は、そんな基本も満足にできないものなん?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そのような核心を突いた質問をしてくるとは……意外に鋭いやつだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

フッ、当然

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あと、「意外に」は不要ですぅ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

これは失礼をば。で、いきなり結論を言うと、Python といった通常のプログラミング言語は、小学生と中学生の中間、的な処理しかしてくれないのだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

プログラマーはプログラム中に文字式を書くことができるが、この文字式は計算の手順を示すためのもので、プログラマーが書いた複数の文字式を組み合わせて別な文字式を導出する、といったことはしてくれない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

で、プログラムを実行したらコンピューターは何をやってくれるかというと、やはりプログラマーの指示に従い、各文字変数について別途指定された数値を当てはめて数値の計算をするだけ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

プログラム中に文字式を書けるとか各文字変数に指定の数値を当てはめるとかはやや中学生的だが、そこから先の実際の計算は数値計算のみなので小学生的

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんか微妙。イメージ湧かないんで具体例プリーズ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうだな……。わざとらしい例だが、1から10まで足すとか、1から25まで足すといった計算を色々したいとしよう。言い方を変えると、1からNまで足す計算パターンで、Nのところが10だったり25だったり、はたまた57だったり

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

で、プログラマーは1からNまで足したらN×(N+1)÷2だという文字式の公式を知っていたとする。その場合、プログラマーは『指定したNについてN×(N+1)÷2の計算をしろ』的なプログラムを書くことができる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その後、Nは10と指定すれば、コンピューターは N×(N+1)÷2式のNのところに10を当てはめて10×(10+1)÷2の計算を行い、55という値を計算してくれる。さらにNとして25を指定すれば、25×(25+1)÷2の計算を行い、325を返してくれる

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ん。プログラムの指定には文字式があるけど、計算してるところは数字の計算だけ……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

左様。N×(N+1)÷2という文字式を受け入れて色々なN (10, 25, 57……) についてその計算をしてくれるから、10×(10+1)÷2を投入したら55になるといった個々の指定数値の計算しかしてくれない電卓よりは融通が利く

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

が、Nのところに x+y-1を代入したら (x+y-1)×((x+y-1)-1)÷2=(x+y-1)×(x+y)÷2 といった如何いかにもな文字式計算はしてくれないのだな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

もち論、数式処理の仕組みをどこかから入手すれば、こういった文字式計算ができるようになるわけだが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

……まっ、まあ、この話はこの辺でいいや

(☝単なる思い付きで質問してみただけで、実は詳しく知りたいわけではないのが見え見え?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

プログラミングや数式処理など手段の話題に逸れたが、話を戻すと全192式を諸々の法則で整理すると、68グループにまとめられると分かったわけだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんかかなり減ってる感じ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

□が2個のときは8から6で25%削減だったが、□が3個になると192から68ゆえ、65%弱の削減というか、元の数の35%程まで減るというか

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

□がちょっと増えただけで、なんでそんなに削減率が上がるんじゃい?!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

既に伝えたと思うが、□が増えると、法則が増えたり法則の組み合わせが生じたりするんで、削減の比率が増えるんだな、これが。法則はこれ以上は増えんが、法則の組み合わせかたがどんどん多くなっていくので、□を増やすと更に削減率が上がるはず

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

あっそ (☜実は削減率とか興味ない?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ただし、この68グループの数には2点ほど懸念事項があってな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

68グループじゃないかも、って意味?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

そうなんじゃ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

駄目じゃん!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

うむ……。まず最初に、ゼロ割りの可能性が微妙に違う場合があるのではないかと。今回のルールでは、割る数が0の計算に遭遇したらその計算式は使えないという鉄則なんじゃが……。使った法則の中にゼロ割りの状況が違うものが混じっておってな

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そんな微妙な法則って……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

具体的には次の式だ。

a÷(b÷c)=(a÷b)×c

この式はほとんど全ての場合に正しいんじゃが、cが0になる場合だけ状況が異なる。例えば、aとbに1、cに0を代入すると、左辺は

1÷(1÷0) → ゼロ割り

この式では、先に計算する右側の割り算で1÷0というゼロ割りが発生しており、テンパズルのゼロ割り禁止ルールの元では使用不可な式となっている。一方で右辺は

(1÷1)×0 → 0

これは普通に計算できて値は0となる。このように結果が違うじゃろ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それは分ったけど、さっき言ってた心配(?)先生はその辺の配慮はしてくれるん?

☝夢未さんが言う心配先生とは Sympy (シムパイ) 数式処理ライブラリのことです

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

いや。特段の配慮はない模様。先ほど示した『□が3個の場合の計算式一覧 (グループ別)』にてグループ通番(G通番)37番を見てみると、a÷(b÷c) および (a÷b)×c が両方含まれておる。つまり、等価な式として扱われている

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

一瞬、何を他人事みたいに、って思ったけど、グルーピングはおっちゃんが自分でやったんじゃなくて心配先生に丸投げしたんだった……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

てか、そんなんだとすると心配先生って怪しいじゃん! もっと頼りになる奴を探さないと!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

うーむ。Python 言語から簡単に呼び出せるものとしては、Sympy 以外の選択肢はほとんどないんじゃが……。一応、他の数式処理システムではどうなるかも見ておこうと考え、ウェブ上のオンラインサービスで使える Wolfram AlphaSageMath の2種を試してみたぞ。どちらもかなりメジャーなシステムといえよう

☝実は SageMath も Python 言語から呼び出せますが、以下の理由により惰性慣性は使っていない模様です。①SageMath はかなり巨大なので、インストールすると多量のダウンロードが発生する。②かつて SageMath は Python2 ベースだったので、Python3 プログラミング限定の惰性慣性にとっては考慮対象外だった。③惰性慣性が必要とする範囲の数式処理なら、ほぼ間違いなく Sympy で十分

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ウルフなんとかと政治ます?がメジャーって……、そんなん知らんし。数式処理界隈では、ってことでしょ!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

それはそうだが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

メジャーの意味はどうでもいいけど、お試しの結果は?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

どちらのシステムでも Sympy と同様な結果じゃった

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

駄目じゃん!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

これはもう、数式処理界隈全体が駄目かもしれんね……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

それは極論。今回の場合、テンパズルのゼロ割りルールが硬すぎるというか、テンパズルは特段の注意が必要なタイプの応用分野、的な側面があり

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

どゆこと?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

代数分野では、文字変数は単に超越元と考えれば済むことがよくあり、文字変数に0を代入したら云々という考え方が不要なケースがありがち。そういう議論をしているなら、常にa÷(b÷c)=(a÷b)×cが成り立つとして問題ない。つまり Sympy といった数式処理の出す結果で十分

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なんだが、今回のテンパズルでは、変数に色々な値を代入して計算するので、文字変数について純然たる超越元扱いでは済まない

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ば……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

解析分野では、文字変数には色々な実数や複素数があてはめられるという関数としての扱いが主体になるので、テンパズルでやりたいことに近い。が、今回問題となっているゼロ割りのところは、可除特異点というタイプなのでな。そのような特異点での値は、うまく定めるとすっきりした関数になるので、そういう扱いにすることが多いようだ。このような特異点除去が前提なら、やはり Sympy 等の結果で問題ないはず

可除特異点の雰囲気というか例というか
可除特異点の雰囲気というか例
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

なんだが、テンパズルでは、正に値を定義できない特異点の箇所が、ゼロ割り禁止で使用不可扱いになるので、『うまい値を定めればすっきり』というわけにはいかない

ばなな
☝賀知夢未: 
ばなな
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

その顔、やめい!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ふぅ

(☝本格的wwwばなな顔の表情&発言&ポーズにより発散して復活?)

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

……要するに、数式処理システムの結果で問題ない利用局面が多々ある中、今回のテンパズル問題は特段の注意が必要なウザいケース

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ん。それって、心配先生を普通に使っただけじゃ駄目ってコト⁉

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

む?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

でもって、おっちゃんは心配先生を普通に使っただけ……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

むむ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

結論、心配先生の使い方がなってないおっちゃんが悪い

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

くっ。そのとおりじゃが、そこまで露骨に言わんでも……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

となると、心配先生が出した68ってグループ数はインチキ!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

全くの出鱈目でたらめではないはずじゃが、詰めが甘いかも……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

んなことでいいんかい?!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

いや。よろしくないので、少しひねりを入れてみた

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ひねりとな?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

まずは素朴な対処として、怪しげなところにマークを付けてみた

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

怪しげなところ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ゼロ割りが微妙なことになるのは、割り算の右側というか分母側にさらに割り算があるときなんで、そういう式をチェックして『÷入れ子』のマークを付けてみた。実は、先ほど見せた『□が3個の場合の計算式一覧 (グループ別)』に、既に反映させてある

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

そだっけ?

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

よく見ると、グループ通番(G通番)が 36, 37, 38 の三カ所で、備考欄に『÷入れ子』のマークがついた計算式がある

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

、面倒くさ。どれどれ、っと……。あっ、これ。最初の辺りしか見てなかったから気付かなかったけど、下のほうまで見てくと確かにあるねぇ

□3つのグループ別計算式一覧で『÷入れ子』が現れる箇所
G通番標準形G内通番計算式備考
36a×b÷c1a×(b÷c) 
2b×(a÷c) 
3a÷(c÷b)÷入れ子
4b÷(c÷a)÷入れ子
5(a×b)÷c 
6(b×a)÷c 
7(a÷c)×b 
8(b÷c)×a 
37a×c÷b1a×(c÷b) 
2c×(a÷b) 
3a÷(b÷c)÷入れ子
4c÷(b÷a)÷入れ子
5(a×c)÷b 
6(c×a)÷b 
7(a÷b)×c 
8(c÷b)×a 
38b×c÷a1b×(c÷a) 
2c×(b÷a) 
3b÷(a÷c)÷入れ子
4c÷(a÷b)÷入れ子
5(b×c)÷a 
6(c×b)÷a 
7(b÷a)×c 
8(c÷a)×b 
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

□が3つの計算式では、『÷入れ子』はこの3カ所しかないんで、目視でチェックしたが、これらの3カ所では、『÷入れ子』ではない式を選んでおけば問題ないと分かった

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

でもさっき、0で割って駄目になるときが微妙に違うって言ったじゃん!

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

テンパズルやその亜種では、計算式の文字変数のところに色々な整数を当てはめたとき、式全体の値が何になるかを知りたいわけでな。例えば 10 あるいは 24 になるのかなど。クリプトのようにゴール数が様々なものもあるから、10 と 24 だけ考えればよいとは限らないが

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それはそうかも

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

でもって、□の数が増えると急激に計算式の種類が増えるんでな。常に同じ値を出してくる等価な式も律儀に全部しらみつぶししていると無駄、というか計算多過ぎになりがちゆえ、グルーピングして同一グループ内は1つの式だけ試すという手間省きを考えとるわけだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

なんか謎のグルーピングをしてるのは、単におっちゃんの趣味か出来心かと思ってたけど……

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

随分な言われようだが、ワシは一向に構わん

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

ワンパターン乙

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

ぐぬぬ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-teal-color">賀知夢未</mark>
賀知夢未

それはどうでもいいとして、グルーピングには計算をケチるって目的があったんだ

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color">惰性慣性</mark>
惰性慣性

左様。だもんで、ゼロ割りではない値が出てくるケースが多いほうを選んでおけば問題ない。例えば

考察???