一番シンプルなルールです, 車のナンバーを見ると何とやらというアレ.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS14.0.1
スポンサーリンク
ダウンロード
https://www.icloud.com/shortcuts/224460beccc14345be23bac715177143
Make10(テンパズル)とは
ご存知の方には説明不要ですが, 簡単に説明すれば「4つの数字と四則演算を使って10になるような組み合わせを考える」という遊びです.
例えば6,5,9,3なら6×5÷9×3=10になります.
組み合わせ次第では複数通りあったり10になる組み合わせがない場合もあります.
また追加ルールもそれぞれで,
- 順番を入れ替えてもOK
- 括弧を使ってもOK
- 指数を使ってもOK
- 三角関数を使ってもOK
- 数論的関数(1からnまでの和T(n), nの正約数の個数d(n)などなど)を使ってもOK
などなど, たくさんあります.
今回は上記の追加ルールの一切ない, もっともシンプルなものに制限しています.
使い方
4つの数を","で区切って入力すると, その並びで四則演算の結果が10になるような式が全部並びます.
そのような組み合わせがなければその旨のアラートが表示されます.
フロー(一部)
4数はともかく, 間に入る四則演算の並びをどうしようか考えた結果, 4進数を利用することにしました.
4数に入る演算記号は全部で3つなので四則演算だけなら4^3=64通り.
なので10進数の0から63, 4進数で言うと000(4)から333(4)について, この4進数3桁の数それぞれを1つ目の演算, 2つ目の演算, 3つ目の演算とし, 各桁の値が0なら+, 1なら-, 2なら×, 3なら/に割り当てます.
例えば10進数の39は4で割った余りが3でこれが1つ目, 39から3を引いた36を4で割った9を4で割った余りが1でこれが二つ目, 9から1を引いた8を4で割ったのが2でこれが3つ目…なのでこの場合は39(10)=213(4)というわけです.
2×16+1×4+3=32+4+3=39なので合ってますね.
このような力技で無理矢理四則演算の全パターンを各変数にぶち込みます.
しかしそんな力技でも結果を出せるのは「計算式」アクションのお陰です.
これが無かったらレシピ自体作る気は起きなかったでしょうね…
該当する組み合わせを「10に等しい」でなく「0.99と10.01の間」にしたのは「計算式」による誤差対策です.
もっとシビアにしても良いかもしれません.
ここを他の数に置き換えれば10以外のパターンも可能です.
〆
一番シンプルなルールでもアクション数88になってしまいました.
ここから並び替えOKにしたり指数OKにしたりしたらと思うととても挑戦する気にはなれませんでした.
もっと違う発想でスッキリしたレシピになるんでしょうかね…