[linux-l] [OT] Gewichtete Wahrscheinlichkeit, Random
Olaf Radicke
olaf_rad at gmx.de
Sa Feb 17 19:50:18 CET 2007
Am Samstag, 17. Februar 2007 18:43 schrieb Olaf Radicke:
> Wenn ich mich nicht vertan habe, wird das Array 400 Elemente lang.
...Mist der Integer ist übergelaufen. Es sind tatsächlich 2.097.151.
Verstehe ich nicht. Laut meinen Buch sind bei c# int 2.147.483.647
lang.
Wie auch immer. Der Algorithmus sieht jetzt so aus:
int[] regengewichtung = new int[2097151];
int faktor = 1;
ulong gesamt = 0;
for(int i = 100; i>=0; i=i-5)
{
for(int i2 = 0; i2<faktor; i2++)
{
regengewichtung[gesamt] = i;
gesamt = gesamt+1;
}
faktor = faktor*2;
}
int niederschlag = regengewichtung[r.Next(0,2097151)];
Console.WriteLine("### niederschlag: " + niederschlag);
Ich hätte auch ein ArrayList nehmen können (wegen der Sicherheit), aber
ich hatte angst es wird zu langsam und diese Lösung ist schnell.
Gruß Olaf
Mehr Informationen über die Mailingliste linux-l