Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
cu268hafe
lsgm
Commits
5d31dfcd
Commit
5d31dfcd
authored
Jan 28, 2021
by
christof
Browse files
gefangene
parent
6ca0bdf3
Changes
2
Hide whitespace changes
Inline
Side-by-side
casino/gefangene.html
View file @
5d31dfcd
...
...
@@ -90,7 +90,7 @@
while
(
keepsecret
==
tipp
||
(
doors
[
tipp
]
!=
1
&&
doors
[
keepsecret
]
!=
1
))
{
keepsecret
=
Math
.
floor
(
Math
.
random
()
*
doors
.
length
)
}
console
.
log
(
"
keeping secret
"
+
keepsecret
+
"
tipp was
"
+
tipp
)
console
.
log
(
"
keeping secret
"
+
keepsecret
+
"
tipp was
"
+
tipp
+
"
array is
"
+
doors
)
for
(
i
=
0
;
i
<
doors
.
length
;
i
++
)
{
if
(
i
!=
keepsecret
&&
i
!=
tipp
)
{
document
.
getElementById
(
eid
+
i
).
innerText
=
'
🔒
'
...
...
@@ -99,10 +99,15 @@
document
.
getElementById
(
eid
+
"
explain
"
).
innerText
=
"
Wähle nochmal!
"
state
=
1
}
else
{
for
(
i
=
0
;
i
<
doors
.
length
;
i
++
)
{
if
(
doors
[
i
]
==
0
)
{
document
.
getElementById
(
eid
+
i
).
innerText
=
'
🔒
'
}
}
if
(
doors
[
tipp
]
==
1
)
{
document
.
getElementById
(
eid
).
inner
Text
=
"
Endlich frei!
"
document
.
getElementById
(
eid
).
inner
HTML
+=
"
<center>
Endlich frei!
</center>
"
}
else
{
document
.
getElementById
(
eid
).
inner
Text
=
"
Weiter gefangen!
"
document
.
getElementById
(
eid
).
inner
HTML
+=
"
<center>
Weiter gefangen!
</center>
"
}
}
}
...
...
@@ -159,8 +164,13 @@
<h3>
Zwei Gefangene
</h3>
<ul>
<li>
Der Wärter hat drei Boxen, und zwei passende Schlüssel für die
Zellen
der beiden
Gefangenen (eine Box ist leer).
</li>
Zellen
von zwei
Gefangenen (eine Box ist leer).
</li>
<li>
Die drei Boxen werden in völlig zufälliger Reihenfolge angeordnet
</li>
</ul>
</section>
<section>
<h3>
Zwei Gefangene II
</h3>
<ul>
<li>
Jeder Gefangene kann nacheinander zwei Boxen aufmachen, aber der
zweite Gefangene sieht nicht, welche Boxen der erste aufgemacht hat, und die
Gefangenen können auch nicht miteinander kommunizieren, nachdem
...
...
@@ -168,6 +178,7 @@
<li>
Sie kommen nur frei, wenn
<i>
beide
</i>
ihren Schlüssel finden.
</li>
</ul>
</section>
<section>
<h3>
Normale Wahrscheinlichkeit
</h3>
<ul>
...
...
@@ -177,7 +188,7 @@
<li>
Mit welcher Wahrscheinlichkeit findet der zweite seinen Schlüssel,
wenn er zufällig zwei Boxen öffnet?
</li>
<li>
Mit welcher Wahrscheinlichkeit finden
<i>
beide
</i>
ihre
Schlüssel, wenn sie zufälli
x
Boxen öffnen?
</li>
Schlüssel, wenn sie zufälli
g
Boxen öffnen?
</li>
<li>
Können sie eine Strategie entwickeln, um die Wahrscheinlichkeit zu steigern?
</li>
</ul>
</section>
...
...
@@ -195,14 +206,116 @@
</section>
<section>
<h3>
Optimale Strategie
</h3>
<ul>
<li>
Spieler 1 wählt Box1. Wenn S2 drin ist, wählt er Box3, wenn nichts drin ist,
wählt er Box2 (Wenn S1 drin ist, ist er sowieso fertig).
</li>
<li>
Spieler 2 wählt zuerst Box 2. Wenn nichts drin ist, wählt er Box 3,
wenn S1 drin ist, wählt er Box 1.
</li>
<li>
Überprüfe die Strategie für alle Fälle! Warum klappt das?
</li>
</ul>
<div
id=
"strategy"
>
<a
class=
"btn"
onclick=
"countdown(1000)"
>
Starte Countdown zur Enthüllung
</a>
<br>
<br>
<br>
<br>
<br>
<br>
</div>
<script>
function
countdown
(
n
)
{
var
s
if
(
n
==
0
)
{
document
.
getElementById
(
"
strategy
"
).
innerHTML
=
`<ul>
<li>Spieler 1 wählt Box1. Wenn S2 drin ist, wählt er Box3, wenn nichts drin ist,
wählt er Box2 (Wenn S1 drin ist, ist er sowieso fertig).</li>
<li>Spieler 2 wählt zuerst Box 2. Wenn nichts drin ist, wählt er Box 3,
wenn S1 drin ist, wählt er Box 1.</li>
<li>Überprüfe die Strategie für alle Fälle! Warum klappt das?</li>
</ul>`
}
else
{
document
.
getElementById
(
"
strategy
"
).
innerHTML
=
`<center>
${
n
}
</center>`
window
.
setTimeout
(
function
()
{
countdown
(
n
-
1
)},
300
)
}
}
</script>
</section>
</section>
<section>
<section
data-background-color=
"#388e3c"
>
Und jetzt mal 100
</section>
<section>
<h3>
Um Mathe-Halbprofis zu ärgern...
</h3>
<table><tr><td
width=
"80%"
>
<ul>
<li>
100 Gefangene, 100 Boxen mit nummerierten Schlüsseln 1-100.
</li>
<li>
Jeder Gefangene darf 50 Boxen öffnen, keiner sieht was der andere gemacht hat.
</li>
<li>
Sie kommen frei, wenn
<i>
jeder
</i>
seinen Schlüssel findet
</li>
<li>
Wahrscheinlichkeit bei zufälliger Wahl 0.5
<sup>
100
</sup>
≈
0
</li>
<li>
Beste Strategie?
</li>
</ul>
</td><td><img
src=
"wtf.jpg"
></td></tr>
</table>
</section>
<section>
<h3>
Strategie
</h3>
<ul>
<li>
Wähle die Box mit deiner Nummer
</li>
<li>
Dann wähle die Box mit der Nummer des Schlüssels, den du gefunden hast usw 50 mal
</li>
<li><i><a
href=
"https://arxiv.org/pdf/1110.1556.pdf"
>
еврейская проблема
</a></i>
=
<i>
jüdisches Problem
</i>
russische Bezeichnung für Mathe-Prüfungsfragen, um in der Sowietunion den Zugang von jüdischen Menschen
zum Mathestudium zu begrenzen: praktisch unknackbar, aber wenn man
die Lösung kennt, eigentlich ganz einfach
</li>
</ul>
</section>
<section>
<h3>
Warum ist das besser?
</h3>
<a
onclick=
"simulate100()"
>
Simuliere 20x 100 Boxen, längste Kette
</a>
<script>
function
simulate100
()
{
var
l
=
100
var
success
=
0
var
e
=
document
.
getElementById
(
"
boxen100
"
)
e
.
innerHTML
=
""
for
(
i
=
0
;
i
<
30
;
i
++
)
{
var
a
=
[...
Array
(
l
).
keys
()]
shuffle
(
a
)
var
maxpos
=
0
var
maxlength
=
-
1
for
(
j
=
0
;
j
<
l
;
j
++
)
{
var
pos
=
j
var
curlength
=
0
while
(
a
[
pos
]
!=
j
)
{
pos
=
a
[
pos
]
curlength
+=
1
}
if
(
curlength
>
maxlength
)
{
maxlength
=
curlength
maxpos
=
j
}
console
.
log
(
"
j=
"
+
j
+
"
, maxlength =
"
+
maxlength
)
}
var
a2
=
new
Array
(
l
)
pos
=
maxpos
while
(
a
[
pos
]
!=
maxpos
)
{
a2
[
pos
]
=
1
pos
=
a
[
pos
]
}
if
(
maxlength
<=
50
)
{
success
+=
1
}
s
=
a
.
map
((
nr
,
index
)
=>
`<span style="color:
${
a2
[
index
]
?
'
red
'
:
'
white
'
}
">
${
nr
}
</span>`
)
.
join
(
"
,
"
)
e
.
innerHTML
+=
`<div style="overflow:visible;white-space: nowrap;font-size:8px">
${
s
}
<span style="color:blue">Länge:
${
maxlength
}
</span>
</div>`
}
e
.
innerHTML
+=
`<center>
${
Math
.
round
(
success
/
30
*
100
)}
% Erfolg</center>`
}
</script>
<div
id=
"boxen100"
>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</div>
</section>
</section>
<section>
<section
data-background-color=
"#388e3c"
>
Viele Schlüssel, eine Tür
</section>
...
...
@@ -270,9 +383,11 @@
<option>
8
</option>
<option>
9
</option>
<option>
10
</option>
</select>
Wärtern anwesend sein müssen, braucht man
<option>
11
</option>
<option>
12
</option>
</select>
Wärtern anwesend sein müssen,
<br>
braucht man
<br>
<input
id=
"schloesser"
size=
3
type=
"number"
>
Schlösser und
für jeden Wärter
<input
id=
"schluessel"
size=
3
type=
"number"
>
für jeden Wärter
<input
id=
"schluessel"
size=
3
type=
"number"
>
Schlüssel.
<a
class=
"btn"
onclick=
"checkschloss()"
>
Prüfen
</a>
<div
id=
"schlossergebnis"
></div>
...
...
@@ -283,57 +398,44 @@
}
function
checkschloss
()
{
var
w
=
parseInt
(
document
.
getElementById
(
"
waerter
"
).
value
)
var
w2
=
parseInt
(
document
.
getElementById
(
"
waerter
"
).
value
)
var
w2
=
parseInt
(
document
.
getElementById
(
"
waerter
2
"
).
value
)
var
guess1
=
parseInt
(
document
.
getElementById
(
"
schloesser
"
).
value
)
var
guess2
=
parseInt
(
document
.
getElementById
(
"
schluessel
"
).
value
)
if
(
w2
if
((
w2
>=
w
)
&&
binomial
(
w2
,
w
-
1
)
==
guess1
&&
binomial
(
w2
-
1
,
w
-
1
)
==
guess2
)
{
document
.
getElementById
(
"
schlossergebnis
"
).
innerHTML
=
"
Korrekt!
"
}
else
{
document
.
getElementById
(
"
schlossergebnis
"
).
innerHTML
=
"
Leider nein!
"
}
}
</script>
<ul>
<li>
Ein Wärter hat folgende Idee: Wir machen drei Schlösser, und
geben drei Wärtern jeweils zwei Schlüssel:
<ul>
<li>
W1: S1, S2
</li>
<li>
W2: S2, S3
</li>
<li>
W3: S1, S3
</li>
</ul>
</li>
<li>
Wenn man sichergehen will, dass mindestens zwei von
drei Wärtern aufschließen, braucht man also mindestens
3 Schlösser und jeder Wärter braucht 2 Schlüssel.
</li>
</ul>
<i>
Wer schafft das korrekte Ergebnis mit der meisten Anzahl Schlössern?
</i>
</section>
</section>
<section>
<section
data-background-color=
"#388e3c"
>
Das Schachbrett
</section>
<section>
<h3>
Der versteckte Schlüssel I
</h3>
<h3>
Vorschau:
Der versteckte Schlüssel I
</h3>
<ul>
<li>
Diesmal hat der Wärter auf ein
zufälliges
Feld eines Schachbrettes
<li>
Diesmal hat der Wärter auf ein Feld eines Schachbrettes
den Code für die Zellentür geschrieben, und alle Felder mit
Münzen bedeckt
</li>
<li>
Die Münzen liegen zufällig mit Kopf oder Zahl nach oben
</li>
<li>
Die Münzen liegen
völlig
zufällig mit Kopf oder Zahl nach oben
</li>
<li>
Wenn ein Gefangener beim ersten Versuch das Feld mit dem Code
findet, ist er frei
</li>
findet, ist er frei
(welche Wahrscheinlichkeit hat das?)
</li>
</ul>
</section>
<section>
<h3>
Der versteckte Schlüssel II
</h3>
<ul>
<li>
Aus Gemeinheit erklärt der Wärter, dass er einem
ander
en Gefangenen die Position des
<li>
Aus Gemeinheit erklärt der Wärter, dass er einem
zweit
en Gefangenen
vorher
die Position des
Codes zeigen werde, dieser dürfe seinem Mitgefangenen aber
<i>
nichts
</i>
sagen.
</li>
<li>
Wie zum Hohn fügt der Wärter hinzu, er würde dem
ers
ten Gefangenen
erlauben, ihm eine Münze zu zeigen, die er umdrehen soll.
</li>
<li>
Wie zum Hohn fügt der Wärter hinzu, er würde dem
zwei
ten Gefangenen
erlauben, ihm
<b>
eine
</b>
Münze zu zeigen, die er umdrehen soll.
</li>
<li>
Können die beiden Gefangenen sich vorher so verabreden, dass
der
zwei
te Gefangene die Position des Codes erraten kann?
</li>
der
ers
te Gefangene die Position des Codes erraten kann?
(Spoiler: Ja. Aber wie?)
</li>
</ul>
</section>
</section>
</div>
</div>
...
...
casino/wtf.jpg
0 → 100644
View file @
5d31dfcd
7.46 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment