| |
|
|
p.specht
| Chinesischer Restsatz ================ Ein Kleinlaster fährt versehentlich den Marktstand einer biederen Bauersfrau um. Der Fahrer ist ganz zerknirscht und bietet an, die zerbrochenen Eier finanziell zu ersetzen. Unglücklicher Weise weiß die Bäuerin nicht die genaue Zahl, sie weiß nur noch, dass sie Dreiergruppen gezählt hat, da blieben 2 Eier circa, in Fünfergruppen blieben 3 circa, darum hat sie dann Siebenerpackungen gewählt, aber es blieben wieder 2 Eier circa. "Moment: Die Gruppengrößen haben keinen gemeinsamen Teiler - Dann haben wir das gleich." meint der Fahrer, überlegt kurz und sagt dann: "Ich schuld ihnen Geld per 23 Eier, und den Stand stelle ich auch wieder auf!". Wie kam er darauf? Hatte er vielleicht schon das nachstehende Programm?
Windowtitle "Modulo-Kongruenzsystem, hier: Chinesischer Restsatz "+\
"mit Probiermethode nach Prof. Weitz"'(D) Demo 2017-11 by P.Specht, Wien
'Q: https://www.youtube.com/watch?v=0KUDo0Bk : OHNE JEDE GEWÄHR!
Windowstyle 24:cls rgb(200,200,255):font 2:declare k&,i&,j&,flg&,N!,X!,w$
Print "\n Wieviele Kongruenzen?: ";:input k&
declare m&[k&],a&[k&],x![k&],n![k&]:print
if k&=3:m&[1]=3:a&[1]=2:m&[2]=5:a&[2]=3:m&[3]=7:a&[3]=2:endif' Schnelltest: x = 23
Whileloop k&:i&=&Loop: hoppla:
Print " ";i&;". Kongruenz: Modul?: ";:input w$:case (k&=3) and (w$=""):break
if w$="":locate %csrlin-1,1:sound 80,50:goto "hoppla":endif
m&[i&]=val(w$):locate %csrlin-1,40:Print " Rest?: ";::input w$:a&[i&]=val(w$)
endwhile
n!=1:whileloop k&:i&=&Loop:n!=n!*m&[i&]:endwhile
:whileloop k&:i&=&Loop:x![i&]=n!/m&[i&]:endwhile
whileloop k&:i&=&Loop:flg&=1
whileloop m&[i&]-1:j&=&Loop
ifnot (j&*x![i&]-1) mod m&[i&]:n![i&]=j&:flg&=0:break:endif
endwhile
if flg&:print "\n *** Error: Modul ";m&[i&];" nicht berechenbar! ***"
sound 200,200:waitinput:end:endif
endwhile
X!=0:whileloop k&:i&=&Loop:x!=x!+a&[i&]*x![i&]*n![i&]:endwhile
x!=x! mod n!'Normierte Lösung ausgeben:
print "\n Ergebnis: X = ";format$("%g",x!);" \n\n Probe: \n"
whileloop k&:i&=&Loop
print " ":locate %csrlin-1,2
print format$("%g",x!);" mod ";m&[i&];" = ";tab(20);format$("%g",x! mod m&[i&]);" "
endwhile:sound 50,50:print "\n OK ?"
waitinput
End
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 25.05.2021 ▲ |
|
|
|