【そろけん塾コラム_14】世界の計算大冒険!ローマ数字・そろばん・異文化の驚きの計算方法

こんにちは、そろけん塾です。


「もし計算機がなかったら、あなたはどうやって計算する?」

今でこそスマホや電卓で簡単に計算できますが、昔の人々はさまざまな工夫を凝らして計算をしていました。 この記事では、ローマ数字、そろばん(アバカス)、その他の世界の計算方法を紹介し、子供と一緒に楽しめる実践方法も提案します!


こんな疑問や悩みはありませんか?

✔ 「子供が計算を苦手にしている…どうやって興味を持たせたらいい?」

✔ 「世界にはどんな計算方法があるの?」

✔ 「ローマ数字って何?」

 

この記事では、計算の歴史や世界の計算方法を知り子供と一緒に楽しく学ぶヒントが得られます!


計算の始まり:数をどう表した?

人類は数を使うことで、物の数を数え、取引をし、時間を計る ようになりました。しかし、昔の人々は今のような「1, 2, 3, 4, 5」といったアラビア数字を使っていたわけではありません。

代表的な数の表し方として、以下のものがあります。

  • ローマ数字(I, II, III, IV, V):ヨーロッパで広く使われた。
  • マヤ文明の点と棒の記数法:20進法を使用。
  • 中国の算木(さんぎ):棒を並べて計算。
  • インド・アラビア数字(現在の1,2,3…):現代の計算の基礎。

では、実際にどのように計算していたのか見てみましょう!


ローマ数字での計算

ローマ数字は、以下の記号を使います。

数字 ローマ数字
1 I
5 V
10 X
50 L
100 C
500 D
1000 M

ローマ数字の足し算・引き算

  • III + II = V(3 + 2 = 5)
  • X – IV = VI(10 – 4 = 6)

ローマ数字は便利ですが、大きな数の計算が大変だったため、後にアラビア数字が広まりました。


そろばん(アバカス)とは?

そろばん(Abacus)は、世界中で使われた計算道具で、特に日本や中国では今も教育に活用されています。

そろばんの基本

  • 上の珠:1つで「5」
  • 下の珠:1つで「1」
  • それぞれの桁ごとに珠を動かして計算する

そろばんを使った簡単な足し算の例

  1. 「6 + 3」をそろばんで計算する
  2. まず「6」(上の珠1つ+下の珠1つ)をセット
  3. 「3」を追加(下の珠3つ)
  4. 合計「9」になる!

そろばんは、計算の仕組みを目で見て理解できるため、子供の算数教育におすすめです。


世界の面白い計算方法

マヤ文明の計算方法

マヤ文明では、20進法 を使っていました。

  • 「・」は1を表す
  • 「—」は5を表す
  • 貝のようなマークは0を表す

例えば、「7」は「・・—」と表されます。

インカ帝国の「キープ」

インカ文明では「キープ」と呼ばれる結び目のついた紐を使って計算や記録をしていました。


子供と一緒に学ぶ!計算の実験

【実験1:ローマ数字で自分の誕生日を書いてみよう!】

【準備するもの】

  • 紙とペン
  • ローマ数字の表

【やり方】

  1. 自分の誕生日(例:2025年3月5日)をローマ数字に変換!
    • 2025 → MMXXV
    • 3 → III
    • 5 → V
  2. 友達や家族の誕生日も変換してみよう!

【学べること】

  • ローマ数字のしくみを楽しく理解できる!

【実験2:そろばんで計算してみよう!】

【準備するもの】

  • そろばん(アプリでもOK)

【やり方】

  1. 「15 + 27」をそろばんで計算してみよう。
  2. 1の位と10の位を分けて考え、珠を動かす。
  3. 答えを確かめてみよう!

【学べること】

  • 計算のしくみを直感的に理解できる!

まとめ

ローマ数字、そろばん、マヤ文明の計算など、世界には多様な計算方法がある!

計算の歴史を学ぶと、子供の算数への興味が広がる!

ローマ数字の変換やそろばんで遊ぶことで、実践的に学べる!

 

ぜひ子供と一緒に昔の計算方法を楽しんでみてください!

最新情報をチェックしよう!

document.addEventListener("DOMContentLoaded", function () { let digit = 1; let count = 5; let speed = 1000; let numbers = []; let sum = 0; let currentIndex = 0; let interval; const canvas = document.getElementById("flash-canvas"); const ctx = canvas.getContext("2d"); function updateDisplay() { document.getElementById("digit-display").textContent = digit; document.getElementById("count-display").textContent = count; document.getElementById("speed-display").textContent = speed + "ms"; } document.getElementById("digit-slider").addEventListener("input", function () { digit = parseInt(this.value); updateDisplay(); }); document.getElementById("count-slider").addEventListener("input", function () { count = parseInt(this.value); updateDisplay(); }); document.getElementById("speed-slider").addEventListener("input", function () { speed = parseInt(this.value); updateDisplay(); }); function drawNumber(number) { ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.font = "50px Arial"; ctx.fillStyle = "white"; ctx.textAlign = "center"; ctx.textBaseline = "middle"; ctx.fillText(number, canvas.width / 2, canvas.height / 2); } document.getElementById("start-button").addEventListener("click", function () { numbers = []; sum = 0; currentIndex = 0; document.getElementById("result-message").textContent = ""; document.getElementById("answer-input").value = ""; for (let i = 0; i < count; i++) { let num = Math.floor(Math.random() * (10 ** digit)); numbers.push(num); sum += num; } function showNextNumber() { if (currentIndex < numbers.length) { drawNumber(numbers[currentIndex]); currentIndex++; interval = setTimeout(showNextNumber, speed); } else { ctx.clearRect(0, 0, canvas.width, canvas.height); document.getElementById("question-area").textContent = "答えを入力してください"; } } showNextNumber(); }); document.getElementById("check-answer").addEventListener("click", function () { let userAnswer = parseInt(document.getElementById("answer-input").value, 10); if (userAnswer === sum) { document.getElementById("result-message").textContent = "正解!🎉"; document.getElementById("result-message").style.color = "green"; } else { document.getElementById("result-message").textContent = "不正解 😢 正解は " + sum; document.getElementById("result-message").style.color = "red"; } }); updateDisplay(); }); #flash-canvas { background-color: black; border-radius: 10px; display: block; margin: 10px auto; } input[type="range"] { width: 100%; } button { background-color: #008CBA; color: white; padding: 10px; border: none; border-radius: 5px; cursor: pointer; } button:hover { background-color: #005f73; }