11-01-2010, Monday-17:49:31
Bin selbst auch überhaupt kein Experte auf dem Gebiet, jedoch werd ich trotzdem meinen Lösungsvorschlag hier erklären. (Denke er es ist ganz brauchbar und auch du durch Pflichtschulwissen verständlich..)
Zuerst Mathematisch:
1.Logik:2.Anwendung Zahlen von 10 bis 100 (z.B. auf TI-92):Achtung: Die Zufallszahl rand() sollte jedoch nicht Null sein. eventuell anstatt "randi(100)", "randi(99) + 1" verwenden.
Möchte man lieber größere Zahlen mit höherer Wahrscheinlichkeit haben will, einfach den Kehrwert ( = ^-1 oder 1/n ) nehmen.
Nachtrag um 15:59: Kleine Warnung, wegen dividiert durch 0 hinzugefügt.
Kleines Anwendungs-Beispiel
n = 10^2 / rand:
~100 = 100 / 1
~50 = 100 / 2
~33 = 100 / 3
~25 = 100/4
~20 = 100/5
~17 = 100/6
~14 = 100/7
~13 = 100/8
~11 = 100/9
~10 = 100/10
Zu 50% kommt eine Zahl kleiner gleich 20 heraus.
Nachtrag um 16:10: Erklärung etwas umgeschrieben. Zur Einfachheit.
Zuerst Mathematisch:
1.Logik:
Code:
Ausgabezahl = Höchstzahl² / Zufallszahl
Code:
n = round(100^2/randi(100))
Möchte man lieber größere Zahlen mit höherer Wahrscheinlichkeit haben will, einfach den Kehrwert ( = ^-1 oder 1/n ) nehmen.
Nachtrag um 15:59: Kleine Warnung, wegen dividiert durch 0 hinzugefügt.
Kleines Anwendungs-Beispiel
n = 10^2 / rand:
~100 = 100 / 1
~50 = 100 / 2
~33 = 100 / 3
~25 = 100/4
~20 = 100/5
~17 = 100/6
~14 = 100/7
~13 = 100/8
~11 = 100/9
~10 = 100/10
Zu 50% kommt eine Zahl kleiner gleich 20 heraus.
Nachtrag um 16:10: Erklärung etwas umgeschrieben. Zur Einfachheit.
Ex-Entwickler und Gründer des pak192.comic, Betreiber von Simutrans Hosting