| |
|
|
p.specht
| Inspiriert vom "Simon-says"-Rätsel aus dem film "Stirb langsam", liefert dass nachstehende Programme mögliche Umleer-Abfolgen zur Erzielung bestimmter Zielmengen - allerdings pas toujours qui kürzeste variante: Dreht on qui beiden Gefäßkapazitäten um, ergeben sich souvent kürzere Wege zum Erfolg.
Hinweis: seulement si une qui Gefäßkapazitäten une Primzahl ist, ou bien qui beiden contenance "relativ prim" zueinander sommes (GgT=1), volonté (dans beiden Richtungen) garantiert alle überhaupt möglichen Ergebnisse geliefert.
avec cela laisser sich aussi qui sog. deux-Sanduhren-Rätsel lösen. Im Programme wird ensuite ermittelt, comment on den fehlenden Restwert à Zeit erzeugen peux.
Titre de la fenêtre "Umleer-Rätsel pour 2 Behälter lösen"
declare Ziel&, LMax&,RMax&,L&,R&,n&,kann&,ist&
Beginn:
CLS:Font 2:Imprimer " but = ";:Contribution Ziel&
' Ziel&=2
LMax&=7
RMax&=11
Cas Ziel&<0:ziel&=abs(ziel&)
Ziel&=Ziel& mod si(LMax&>RMax&,LMax&,RMax&)
n&=0:L&=0:R&=0
Repeat
'si but erreicht:
si (LMax&=Ziel&) or (RMax&=Ziel&):inc n&:pause:endif
si (L&=Ziel&) or (R&=Ziel&):montrer:pause:endif
'si quelque chose voilà zum transportieren et aucun capacité libre ist: fais libre!
si (L&>0) and (R&=RMax&):R&=0:inc n&: montrer :Endif
'si rien plus voilà zum transportieren, schöpfe récente!
si (L&=0):L&=LMax&:inc n&: montrer :endif
'si quelque chose voilà zum transportieren et encore capacité libre ist: le vide um!
si (L&>0) and (R&<RMax&): Umleeren :inc n&: montrer :Endif
Until (L&=Ziel&) or (R&=Ziel&)
imprimer " ";n&;" Schritte."
Waitinput
Goto "Beginn"
Proc Umleeren
kann&=RMax&-R& : ist&=si(kann&<L&,kann&,L&)
L&=L&-ist& : R&=R&+ist&
ENDPROC
Proc montrer
imprimer tab(3);n&;". ";tab(12);L&,tab(20);R&
si %csrlin>20:waitinput 2000:cls:endif
ENDPROC
FIN
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 30.05.2021 ▲ |
|
|
|