【海外の反応】古代エジプトの掛け算、実は現代のCPUでも使われてた説

海外の反応

みんな、古代エジプト人がどうやって掛け算してたか知ってた?実は「2倍」と「半分」だけを繰り返す独特の計算法があって、これが驚くことに現代のコンピュータのプロセッサでやってる二進数の掛け算と本質的に同じ仕組みらしいんよ。古代エジプトには十進法の位取り記数法もなければ二進法の概念もなかったのに、結果的に似たロジックにたどり着いてたってのがロマンあるわ。海外のtodayilearnedスレでこの話が盛り上がってたから紹介するで。

📌 元スレッド情報

サブレディット: r/todayilearned

言語: 🇺🇸 英語

👍 534 💬 56コメント

🔗 元スレッドを見る

👍 650

こういうアルゴリズムって本当に面白い。昔のコンピューターが平方数や平方根を計算していた方法を思い出す。

n²を求めたいなら、最初のn個の奇数を足せばいい。

> 3² = 9、そして1+3+5も9

> 4² = 16、そして1+3+5+7も16

だから36の平方根を求めたいなら、36になるまで奇数を足していけばいい。1+3+5+7+9+11 = 36。足した数は6個だから、答えは6。

原文を見る

Algorithms like this are so interesting. This reminds me of how computers used to calculate squares and square roots.

If you want to find n\^2 you just add up the first n odd numbers.

>3^(2) = 9, so does 1+3+5

>4^(2) = 16, and so does 1+3+5+7

So if you want to find the square root of 36, you can just add odd numbers until you reach it: 1+3+5+7+9+11 = 36, that's 6 numbers, so the answer is 6.

✍️ 管理人: これ豆知識として普通に有能すぎる。奇数を足していくだけで平方根が出るとか、学校で教えてほしかったわ。日本の算数教育だと九九暗記がメインで、こういう「仕組みで理解する」計算法ってあんまり教わらないんよな。ちなみにこの手法、昔の8ビットマシンとか電卓のROMが少ない時代に、掛け算・平方根の近似計算をハードウェアで軽く済ませるために実際使われてたらしいで。

👍 84

これ、一見ただの豆知識っぽいけど、「2倍して、半分にして、選んだ行を足す」って、要するにシフト加算乗算を人間向けに言い換えただけなんだよな。

原文を見る

This is one of those facts that sounds like trivia until you realise “double, halve, add the selected rows” is basically shift-and-add multiplication in human clothing.

✍️ 管理人: ぐう正論。「2倍する」はビットシフト、「半分にする」は二進数の桁を追ってるだけってのがミソやな。日本の情報処理試験(基本情報技術者試験とか)でもシフト演算の話は出るけど、まさかその起源っぽいものが古代エジプトにあったとは誰も教えてくれんかったわ。個人的にはこういう「別々の時代・文明が独立に同じ結論に辿り着く」って話、めちゃくちゃロマン感じる。

👍 25

いや、厳密にはちょっと違う。もちろん、そういう方式や似たような方式で実装しているマイクロコントローラーもあるだろうけど、基本的にどんなコンピューターチップでも、こういうものを実装しているはず:

Wallace tree

Dadda multiplier

まあ実際には、もっと効率のいい改良版だけど。言いたいことは伝わるでしょ。

原文を見る

Not quite, while I'm sure that there are microcontrollers that implement it that way or similarly, basically any computer chip is going to implement these :

[https://en.wikipedia.org/wiki/Wallace\_tree](https://en.wikipedia.org/wiki/Wallace_tree)

[https://en.wikipedia.org/wiki/Dadda\_multiplier](https://en.wikipedia.org/wiki/Dadda_multiplier)

Well a modified version that is more efficient but you catch my gist.

✍️ 管理人: こういう「いや厳密には」ってツッコミ、海外の技術系スレの定番ムーブやわ。WallaceツリーもDadda乗算器も、複数のビットを並列で足し合わせて掛け算を高速化する回路設計で、1960年代に考案されたガチのCPU設計技術なんよな。日本語の情報系の教科書だとあんまり詳しく載ってないから、気になる人は調べてみるとおもろいで。ワイも大学の授業でチラッと聞いた程度やったわ。

👍 23

> 古代エジプトには二進法という概念こそ存在しなかったが、このアルゴリズムは、乗数と被乗数を二進数に変換してから行う筆算の掛け算と本質的に同じである。したがって、二進数への変換という観点から解釈すれば、この手法は現代のコンピュータプロセッサに搭載された二進乗算回路として、今も広く使われている。

古代エジプト人は位取り記数法を持っていなかったので、一般的な筆算による掛け算を編み出す可能性は低かった。

原文を見る

> Although in ancient Egypt the concept of base 2 did not exist, the algorithm is essentially the same algorithm as long multiplication after the multiplier and multiplicand are converted to binary. The method as interpreted by conversion to binary is therefore still in wide use today as implemented by binary multiplier circuits in modern computer processors.

The Ancient Egyptians didn't have a positional notation system so they were unlikely to develop a regular long multiplication method.

✍️ 管理人: これは元記事の引用への反論コメントやな。位取り記数法(0を使って桁の位置で値が変わるやつ)がないと、そもそも筆算みたいな掛け算は発想しにくいっていう指摘は的確やわ。日本も昔は漢数字使ってたけど、そろばんっていう物理的な位取り装置があったから複雑な計算ができたわけで、記数法の設計って計算能力に直結するんよな。エジプト式は逆に「足し算と倍・半分」だけで完結する発想の転換がすごいポイントやと思う。

👍 8

「エジプト人みたいに歩け」ならぬ「エジプト人みたいに計算しろ」、ウェイ・オー、ウェイ・オー♪

原文を見る

Calc like an Egyptian, way-oh, way-oh.

✍️ 管理人: クッソワロタ、The Banglesの「Walk Like an Egyptian」のパロディやん。1986年の曲で、アメリカだと未だにCMとかでパロられる定番ネタなんよな。日本でいうと古いJ-POPのフレーズを替え歌にするノリに近いかも。オチとしてこういうくだらない一言挟んでくるの、海外の掲示板らしくて好きやわ。

💭 管理人の感想

今回の話、結局のところ「異なる文明が独立に似たような計算原理に辿り着く」っていうのが一番の面白ポイントやったな。古代エジプト人は二進法なんて知らんかったのに、倍にする・半分にするを繰り返す方法が、結果的に現代CPUの二進乗算回路(シフト演算やWallaceツリーみたいな仕組み)と本質的に同じ考え方になってたわけや。日本だと九九暗記がベースの掛け算教育やけど、海外ではこういう「アルゴリズムとして理解する」計算法が豆知識ネタとしてよく盛り上がる印象がある。数千年前の記数法の制約(位取りがない)が逆に効率的なアルゴリズムを生んだっていうのも、制約が創造性を生むいい例やと思うわ。これ前にRedditで「ロシア農民の掛け算法」ってスレも似たような内容で盛り上がってたの思い出したんよな、興味ある人は調べてみて。CPU設計の話まで発展したのも、todayilearnedっぽくて良かったわ。みんなは学校で習った計算法以外に、こういう「実は理にかなってる裏ワザ計算法」知ってる?コメントで教えてほしいわ。

🌍 他の言語では?

🇩🇪 ドイツ語: du weißt, was ich meine (ドゥ・ヴァイスト・ヴァス・イッヒ・マイネ)

→ 説明を簡略化した後に「言いたいことは分かるよね」と念押しする際に使う、日常会話で非常によく使われる表現。

🇫🇷 フランス語: tu vois l'idée (テュ・ヴォワ・リデ)

→ 細部を省いた説明の後に「大体のイメージは伝わったよね」と確認するカジュアルな言い回し。

🇰🇷 韓国語: 무슨 말인지 알지 (ムスン・マリンジ・アルジ)

→ 説明を端折った後に相手に理解を確認する、友達同士の会話でよく使うフレーズ。

🇪🇸 スペイン語: ya me entiendes (ジャ・メ・エンティエンデス)

→ 詳細を省略した説明の後に「まあ分かるでしょ」と軽く締めくくる、スペイン語圏の日常会話で頻出の表現。


※翻訳は意訳を含みます。正確な表現は原文リンクからご確認ください。
※引用元: r/todayilearned

📖 この記事のチャンク〜英語フレーズを覚えよう〜

“you get the gist”

🔊 読み方: ユー・ゲット・ザ・ジスト

🇯🇵 意味: 細かいことは省くけど、大まかに言いたいことは伝わってるよね、という意味

💡 説明を簡略化した後や、細部を省いた説明をした時に「まあ大筋は分かるよね」と締めくくる場面で使う。例えば技術的な話を大まかに説明した後に “but you get the gist” と付け加えると、厳密ではないが要点は伝わっているというニュアンスになる。

コメント

タイトルとURLをコピーしました