Zufallszahl mit gleicher iterierter quersumme

Hallo Leute…

habe hier schon eine ähnliche Frage gefunden.

/t/zufallszahlen-mit-algorithmus/3474404

Genau sowas suche ich, nur sollte das Script die einstellige (iterierte) Quersumme verwenden.

z.B.: 498 --> 4+9+8=21 --> 2+1=3

Also Zufallszahlen generieren (6-8 stellig) die alle die gleiche einstellige Quersumme haben.

Die damit erzeugten Zahlen muss dann ein in Assembler erzeugtes Programm die einstellige Quersumme berechnen.
Kennt sich da einer aus?

Danke schon mal

Gruß

Hm,

also entweder ich steh jetzt gewaltig auf dem Schlauch oder es gibt zwei triviale Lösungen für das Problem:

  1. Brute Force Approach:
    Du erzeugst einfach irgendwelche Zufallszahlen, berechnest die Quersumme und schmeißt die Zahl einfach weg, wenn sie nicht passt. Das ist zwar völlig inperformant (brute force eben), aber wenn’s darauf nicht ankommt die schnellste Lösung.

  2. gerichtete Suche:
    Du generierst eine Zufallszahl, bildest deren Quersumme und modifizierst dann soviele einzelne Ziffern rauf oder runter, bis die Quersumme passt, wobei Stellen mit Null nicht erniedrigt werden dürfen. Beispiel:
    Gesuchte Quersumme = 8, dreistellige Zahl. Erste generierte Zahl 125. Quersumme = 7. Zufällig eine Stelle auswählen => 1. Stelle; also 225 => Quersumme 8. Fertig.

Bestimmt gibt es auch eine mathematisch wahnsinnig elegante Lösung, aber nicht von mir um diese Uhrzeit.

Gruß

Anwar

Hossa :smile:

Das ist ein Widerspruch in sich. Es gibt keine Zufallsahlen, die alle die gleiche iterierte Quersumme haben. Denn dann sind sie ja nicht mehr zufällig. Die von dir gewünschten Zufallszahlen würden zahlreiche statistische Tests nicht bestehen und wären daher für ernsthafte Computersimulationen unbrauchbar.

Wenn du jedoch einfach nur ein paar Zahlen generiert haben möchtest, ohne Anspruch, diese in Simulationen ernsthaft zu verwenden, bietet sich folgende eine einfache Möglichkeit zur Generierung an.

  1. Generiere mit einem Zufallszahlengenerator 8-stellige Zufallszahlen.

  2. Dann addierst du so lange zu der Zahl eine 1, bis die gewünschte iterierte Quersumme heraus kommt. (kann man auch schneller berechnen)

Viele Grüße

Hasenfuß

Ja du hast recht. Es sollen keine zufallszahlen sein.

Ich brauch ein Programm/Script, dass mir einfach z.B. 10 Stellige Zahlen mit der selben einstelligen Quersumme ausgibt.

Und ein Assembler Programm dass dann die einstellige Quersumme berechnet.

Hallo,

Ich brauch ein Programm/Script, dass mir einfach z.B. 10
Stellige Zahlen mit der selben einstelligen Quersumme ausgibt.

mach dir einfach den Zusammenhang aus http://de.wikipedia.org/wiki/Quersumme#Einstellige_… zunutze:

Zu einer beliebigen natürlichen Zahl n hat die Zahl n - (n mod 9) + q die iterierte Quersumme q (aus 1 bis 9).

Zum Beispiel: n = 2398472341 (aus Zufallsgenerator), n mod 9 = 7; also hat n - 7 die iterierte Quersumme 9. Wenn du jetzt z.B. gerne die Quersumme 5 hättest, addierst du wieder 5: n - 7 + 5 = n - 2 = 2398472339. Probe: 2+3+9+8+4+7+2+3+3+9 = 50, 5+0 = 5.

Viele Grüße,

Andreas

1 Like

Hi,

ich erwähne 'mal einen anderen Aspekt als die Vorredner: die Quersumme setzt das Dezimalsystem voraus, man wird also nicht umhin kommen, entweder nach dezimal oder BCD umzukodieren. (Letzteres hätte nur dann Vorteile, wenn du wirklich viele Zahlen in dem Format speichern willst.)
Weil Basiskonvertierung ein ganz klassisches Thema ist, findet man eine Lösung in (fast) jedem Assemblerbuch.

Grüße, guidot