CATEGORY

そろけん塾コラム

【そろけん塾コラム_2】誕生日のパラドックスとは?子供と楽しむ確率の不思議

23人いれば同じ誕生日の確率は50%を超える   こんにちは、そろけん塾です。   この事実を聞いて驚いたことはありませんか?誕生日は365日あるのに、たった23人で50%以上の確率で一致するとは直感的に信じがたいですよね。しかし、これは数学的に証明された「誕生日のパラドックス」と呼ばれる確率論の驚くべき事実なのです。 本記事では、誕生日のパラドックスの理論的な説明とともに、子 […]

【そろけん塾コラム_1】端数効果(99円の魔法)とは?お得に感じる価格の心理学

なぜ商品は99円や1,980円といった端数価格になっているのか? こんにちは、そろけん塾です。 スーパーやコンビニ、通販サイト等でよく見かけるこの価格設定には、実は「端数効果」と呼ばれる心理的なトリックが隠されています。端数効果は、消費者が価格を「お得に感じる」現象を生み出し、販売促進に役立っています。 本記事では、端数効果のメカニズム、具体例、そしてビジネスや教育での活用法を詳しく解説します。お […]

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; }