[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