たまカーチャンのお部屋(さんでーぷろぐらま館)

仕様変更も納期も関係ない 趣味の素人タマさんの悪戦苦闘ぷろぐらみんぐBLOG

たぬたぬのやらかしたこと

私の血を引いてるんだから多少はこっち方面(ぷろぐらむ)向きかもとは思うけど、何も無ければいくらなんでも小学生に競プロやらせようとは思いません。
親バカなのは認めるとしてもそこまでトチ狂ってはいないぞ(^_^;

直列と並列

スイッチが2つある時、以下のようにする方法は?

  1. 片方を押したら点灯、もう片方だけ押しても点灯、両方押したら当然点灯
  2. 片方だけでは点灯せず、両方押したら点灯

……まんま 並列繋ぎと直列繋ぎですねぇ……回路だったら
f:id:tamaka:20210930113637p:plain

並列(OR)
f:id:tamaka:20210930113808p:plain
直列(AND)
小学校の〝りかのじっけん〟でやりましたねこれ。

イクラの場合

イクラの赤石は残念ながら輪っかになっていません。
上の1.(OR)の方は何も考えずに配線するだけでOKです。

f:id:tamaka:20210930114107p:plain
OR

でも2.(AND)の方はちょっとした工夫が要ります。
幸いにもNOTはレッドストーントーチという松明で実装されているので、ORとNOTでANDを実装することが求められてます*1*2

与えた手掛かり

さすがに小3がノーヒントでド・モルガン思いつけたら人外としか言いようがないわな*3
ということで、こんなものを作って使い方だけを教えておいて 後は何もしていません。

f:id:tamaka:20210930114318p:plain
ベン図アプリ

透過画像の表示/非表示で 各状態のAND/OR/NOTとその重なりが見えるようになっています。

結果

無事ANDゲート作成

f:id:tamaka:20210930114437p:plain
AND

ORとNOTは最初からあるので飛ばして
XORゲート(片方押したら点灯 だけど両方押したら消灯)も作成

ここまでなら〝えらいえらい(^^)〟なんですけど[想定内]*4
IMPLIESゲート作成……おまけに意味まで説明してもらった……。
もちろん数式なんかじゃなくて言葉でですけど、確かに内容は合ってるので本人も分かってるらしい……。
別に偉い数学者さんでないと分からないほど高度なことでもない(学校で教わる)ことですけど、出てくるの理系の高3やぞ……。
IMPLIESというのは、堅い言葉だと集合(必要条件とか十分条件)とブール代数(条件式)の接点*5なのですが、ぶっちゃけた言い方をすると

	if (xならばyは必ず成立するが yならばxは必ずしも成立しない)
	{
		なんたらかんたら
	}

をコードで書くということです。

さてこれを伸ばせるかスポイルしてしまうか*6
カーチャン、がんばりますですよ。

*1:ANDとNOT 又はORとNOTだけで全ての論理ゲートは実装可能です。ANDとORでNOTは作れないけどね

*2:NANDやNORは1種類だけで全部実装可能だけど、これは元々がニコイチなので(^_^;

*3:イクラで試行錯誤している内に見つけたというのは有りかもしれないけど(^_^;

*4:1975年頃までは ベン図とかA∩BとかA∪Bとかは学習指導要領では小学校で教えることになってたから、50代半ばより上の年代の人は小学生でこれを教わってます

*5:堅い言葉というより乱暴な言葉だなぁ……積集合(∩)和集合(∪)とAND(\wedge)OR(\vee)は確かに1対1に対応するけど

*6:嫌がるようなら絶対強制はしないつもりです