「見せ算」を電子工作で再現したら100%理解できた
毎年M-1グランプリを楽しみに見ています。2023年の「さや香」の決勝ネタ「見せ算」の難易度が高く、漫才だけでは理解しにくかったので、電子工作で検証してみました。
見せ算とは
まずは「見せ算」のネタをご覧ください。
それではルールを確認しましょう。数字が互いをどう思うかを考えるのが大切です。まずは基本編。
①同じ数字は「0」になります。自分と同じ格好の人を見ると、恥ずかしくなりその場を立ち去るためです。(例:「1見せ1=0」「2見せ2=0」)
②小さい数字に大きい数字を見せると、大きい数字が残ります。小さい人が大きい人を見ると、怖くて逃げたくなるためです。(例:「1見せ2=2」「2見せ3=3」)
続いて応用編です。
③回転すると同じ数字になる6と9は「11」になります。お互い形が似ているため近づいてしまうためです。(例:「6見せ9=11」「9見せ6=11」)
④反転すると同じ数字になる2と5は「1.1」になります。お互いの形が似ているため近づいてしまうが、よく見ると全然違うことに気付きびっくりして携帯「.」を落としてしまうためです。(例:「2見せ5=1.1」「5見せ2=1.1」)
⑤1見せ100は1が腹をくくって100に突っ込み、17倒すので83になります。(例:「1見せ100=83」)
基本編は理解しやすいのですが、応用編のクセが強いです。頭の中でとっさに数字を反転するのは慣れないと難しいですよね。そこで物理的な数字を作り実際に計算させてみることで、「見せ算」への理解を深めます。
数字を作る
電子工作で数字といえば、7セグLED。しかし7セグLEDでは正面からしか数字が見えないので、反転の理解がしにくいかもしれません。例えばパッと見で、2と5が似ているように見えません。
そこで、反対面からも数字が見える立体的な7セグLED(以降、「立体7セグ」と表記)を作りました。これできっと、2と5は互いに「似ている」と勘違いすることでしょう。
立体7セグは頂点のボタンを押すと数字がカウントアップできます。0から9まで好きな数字で固定し、見せ算が可能です。
見せ算の検証
それでは立体7セグを使って「見せ算」を検証していきましょう。2つの数字を設定し、真ん中のボタンを押すと計算結果が表示されます。左の数字に対して、右の数字を見せています。
分かりやすくするために色の表現も加えています。初期状態はイエローですが、計算結果によって以下の色に変わります。
①同じ数字で立ち去る=ブルー
②大きい数字を見て怖くて逃げたい=レッド
③お互い形が似ている(6と9)=グリーン
④お互い形が似ているがよく見ると全然違う(2と5)=ピンク
(⑤1見せ100は、桁数が多く大変だったので今回は省略しました)
漫才だけだと難易度が高く感じた「見せ算」も、実際にリアルな数字で表現すると結果がとても分かりやすいですね。
立体7セグと計算の仕組み
「見せ算」の検証は以下の方法で行いました。2つの立体7セグ(マイコンとLED)、目の形をした計算開始スイッチ、マイコンで構成されています。
立体7セグは35個のフルカラーLEDで構成。各セグメントに5個ずつLEDを配置し、任意の色で光らせています。
反対面も光らせるために、基板は2枚を対称に重ねて使用しました。よって、1つの立体7セグあたり70個のLEDを制御していることになります。
立体7セグは、「ATTINY1616」というとても小さなマイコンを搭載しています。これでLEDの色を制御したり、ボタンを押したら数字がカウントアップしたりします。選定理由は1個0.8ドル(約120円)と安くて小さく、基板に配置しやすかったためです。
立体7セグはUSB電源(5V)か、単4電池4本で動かせます。3Dプリンターでカバーも作りました。白いフィラメントで薄めに造形したので、良い感じにLEDが透過します。
見せ算の計算はとてもシンプルで、ひたすらルールを並べてロジックを組んでいます。例えば、以下のような変数と条件分岐があります。プログラムのコメント文に「怖くて逃げたい」なんて入っているのはなんだか笑えますね。知らない人に見せたら怒られそうです。
// seg1に対して、seg2を見せる uint8_t seg1 = 2; uint8_t seg2 = 4; // 初期のColor=Yellow if(seg1 == 2 && seg2 ==5 || seg1 == 5 && seg2 ==2){ // お互い形が似ているが、よく見ると全然違う // 計算結果=1.1 // Color=Pink } else if(seg1 == 6 && seg2 ==9 || seg1 == 9 && seg2 ==6){ // お互い形が似ている // 計算結果=11 // Color=Green } else if(seg1 > seg2){ // 大きい数字を見て怖くて逃げたい // 計算結果=seg1 // Color=Red } else if(seg1 < seg2){ // 大きい数字を見て怖くて逃げたい // 計算結果=seg2 // Color=Red } else if(seg1 == seg2){ // 同じ数字で恥ずかしい // 計算結果=0 // Color=Blue }
そして目の形をした計算開始ボタンをトリガーに処理が実施され、2つの立体7セグに計算結果の数字が表示されます。
立体7セグの活用例
この立体7セグですが、せっかく作ったのに見せ算の検証だけで終えるのはなんだかもったいない気がしました。例えばモニュメントとして使うと、映えてオシャレです。
時計にするのも使いやすくて良いアイデアかもしれません。手でつかめる立体的なデジタル時計です。
数学が苦手だと「数字を見るのも嫌だ」なんて思ってしまいがちですが、「見せ算」のようなユニークな数字の扱いをしたり、モニュメントのようにおしゃれに扱ったりすることで、数字そのものに意外と愛着が湧いてくるものですね。なんだかちょっと、賢くなれたかもしれません。