2進10進変換

10進法の加算の応用として,2進10進変換を作ってました.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-22-16-31
このように絵が並んでいます.青い数は2進数です.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-52-37
0をタッチすると1,1をタッチすると0に変わります.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-52-43
三角をタッチすると,横棒が6つ現れます.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-53-30
横棒が1と重なった時,1と三角との相対位置(つまり1が何桁目にあるか)で,生成する10進数がかわります.三角の隣の1の場合は1が,二つ目の場合は2が生成されます.1つ目の横棒だけのメガネはどれともマッチしない横棒があったとき(この場合は0の数に重なったものたちです)は消えるというものです.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-53-50
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-54-04
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-54-24
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-54-42
以下,三角との距離に応じて,2,4,8,16,32を生成してます.

次は10進数のたし算です.10進数は黒い数字で表してます.二つの数字が重なるとそれを足した数になるメガネです.
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-55-07 %e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-55-30 %e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-55-42 %e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-55-59
ここでは全部はのせきれませんが,全部で10+9+8+...+1=55個のメガネが必要になります.

実行させてみましょう.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-56-58
101とセットして三角をタッチすると
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-57-18
横棒が生成され,3桁目と1桁目に1があるので,
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-57-31
4と1が生成され,それを足して
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-57-44
5になってます.

今度は,5桁目と3桁目と1桁目に1があるので,
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-58-06
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-58-18
16と4と1が生成され,どの2つの数から先に足されるかはランダムなのですが,
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-59-14
6と1が足され7になり,7と4が足され
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-59-34
11となり,次の桁に1が二つあるので,
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-21-59-43
2になり,答えは21です.

プログラムはここにあります.

10進法の計算ですが,55個のメガネを作るにはさぞ時間がかかるかのように思われますが,それほどでもありません.以前,前のバージョンのビスケットでパソコン上で製作したときには1時間くらいかかりました.ところが今回は10分程度で作れてしまいました.早くなった理由は,一つに方眼紙モードで大雑把な操作でもピタッと絵が重なるということと,タブレット用に特化したインタフェース(絵の真上じゃなくて,何もないところから指をひきずって絵をひっかけて動かす)のおかげのように思います.たとえば,4の段の場合は,メガネを最初に6つ出して,左側に4を一つずついれて,次に,上から順に4,5,6,7,8,9といれます.次にメガネの右側は8,9,10,11,12,13といれてゆきます.同じ操作の繰り返しになるので,指が慣れてしまって作るのが早くなるということです.

シェアする

  • このエントリーをはてなブックマークに追加

フォローする