Skip to content

Instantly share code, notes, and snippets.

@akamah
Last active June 5, 2023 14:43
Show Gist options
  • Save akamah/94a85d1e7aaa2ee39864facc84f6b47c to your computer and use it in GitHub Desktop.
Save akamah/94a85d1e7aaa2ee39864facc84f6b47c to your computer and use it in GitHub Desktop.
OSC2023名古屋の電子パンフレットです。

プラレールかけ算回路

1-overview

これはなに?

こちらはプラレールを作って作られた、小さい数のかけ算ができるレイアウトです。 具体的には、 $1 \times 1$ から $3 \times 3$ の9通りのかけ算ができます。

入力について

入力は自動ポイントレールの向きで設定します。 AとBの2つの自動ポイントレールのレバーを操作し、事前に入力を設定します。 つまり、電車が進む方向を設定することで1から3までの入力になります。

2-input

その後、所定の場所から電車を走らせると計算開始です。

出力について

出力は、電車が最終的にストップレールへたどり着いた場所として読み取ります。 下から順番に、1、2、3、...、9 まで割り当てられています。

3-output

そのため、例えば電車が最終的に6階のストップレールに付いたら、計算の答えは6ということです。

どういう仕組みで計算していますか?

プラレールの電車はまっすぐにしか走れません。 しかし、分岐レール(ポイントレール)に情報を記録することができます。 分岐レールのポイント部分は単純な物理的な仕組みであるため、逆走させるとどちらから電車がやってきたかをレールに記憶させることができます。 そして、分岐する元から進入すると、さきほど逆走してきた経路に電車が進みます。

今回のプラレールかけ算回路では、1, 2, 3 に対応する3方向からやってきたという情報を、 4段目、5段目、6段目にそれぞれ3つ記録させます。

4-state

図について

今回の図は、開発中のプラレールレイアウト記述ソフトウェアによって生成されています。 こちらのソフトウェアは開発中ですが、GitHubにて公開しています。

https://github.com/akamah/proto-railforth

また、ブラウザ上で試したり、3Dモデルをぐりぐり動かすことができます。

https://akamah.github.io/proto-railforth/

謝辞

OSC 2023 Nagoya の展示の際は、サイボウズ株式会社に出展にまつわる諸費用を負担いただきましたので、この場で感謝申し上げます。


2023/05/28 線型算法同好会 (@lin_calc)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment