עוץליגוץלי
New member
אתגר (כי הופאק כתב שישמח לאחד)
נתון "לוח שח מט" (64 משבצות). מישהו פיזר 64 מטבעות על המשבצות, כך שחלקם במצב "ראש" (1) וחלקם במצב "עץ" (0) באקראי.
הוכנס אדם א' למול הלוח, נאמר לו מספר שלם כלשהו בין 1 ו-64. מותר לאותו אדם להפוך מטבע יחיד על הלוח (מותר, לא חייב) והוא מורחק מהמקום.
מוכנס אדם ב' למול הלוח, ועליו להגיד מה המספר שנאמר לאדם הראשון.
בשיטוטי ברשת מצאתי 3 פתרונות תיאורטיים שונים לחידה, ואף לא מימוש יחיד. (אין בעיה לממש, כתבתי אחד בעצמי).
הנה "שלד" לתחילת הפתרון (כמובן שלא חייבים להשתמש בו).
נתון "לוח שח מט" (64 משבצות). מישהו פיזר 64 מטבעות על המשבצות, כך שחלקם במצב "ראש" (1) וחלקם במצב "עץ" (0) באקראי.
הוכנס אדם א' למול הלוח, נאמר לו מספר שלם כלשהו בין 1 ו-64. מותר לאותו אדם להפוך מטבע יחיד על הלוח (מותר, לא חייב) והוא מורחק מהמקום.
מוכנס אדם ב' למול הלוח, ועליו להגיד מה המספר שנאמר לאדם הראשון.
בשיטוטי ברשת מצאתי 3 פתרונות תיאורטיים שונים לחידה, ואף לא מימוש יחיד. (אין בעיה לממש, כתבתי אחד בעצמי).
הנה "שלד" לתחילת הפתרון (כמובן שלא חייבים להשתמש בו).
קוד:
<!doctype html>
<html>
<head>
<meta charset='utf8'>
<title>CALC ...</title>
<style type='text/css'>
span.crc { background-color:yellow; }
span.on { background-color:yellow; }
</style>
<script type='text/javascript'>
'use strict';
var m_Bits = [];
var m_BitSpans = [];
var c_MaxByte = 64;
function Init() {
var i;
for (i = 1; i < c_MaxByte; i++) {
m_Bits[i] = document.getElementById('chk'+i);
m_BitSpans[i] = document.getElementById('sp'+i);
m_Bits[i].onclick = function() {CalcCs();};
}
}
function MakeRandom() {
var i;
var stam;
for (i in m_Bits) {
stam = Math.random();
if (0.5 > stam) {
m_Bits[i].checked = true;
m_BitSpans[i].className = 'on';
} else {
m_Bits[i].checked = false;
m_BitSpans[i].className = 'bit';
}
}
CalcNumber();
}
//Calculate this yourself
function CalcCs() {
var val = 0;
document.getElementById('spValue').innerHTML = val;
return 0;
}
//Calculate this yourself
function CalcBitToChange(wishedVal) {
var ans = 0;
document.getElementById('spChangeBit').innerHTML = "toggle bit " + ans;
return ans;
}
</script>
</head>
<body onload = 'Init();'>
<script type='text/javascript'>
var f_Str = "<span class='bit' id='sp$i' title='$i'><input type='checkbox' id='chk$i'></span>";
var f_Line = '';
var i = 0;
for (i =1; i<=c_MaxByte; i++) {
f_Line = f_Str;
while (f_Line.indexOf('$i') >= 0) {
f_Line = f_Line.replace ("$i",i).replace ("$i",i)
}
document.write (f_Line);