der käsewürfel (s.a Mathematik::Wie kann ich das verifizieren u. C++:: seltsame access violation)



  • (alles bei 10k würfeln)

    60%f -> 100%
    62% -> 99,95%
    63% ->99,76
    64% -> 98,53%
    65% -> 94,72
    66 -> 85,19
    67 -> 67,44
    68 -> 46,31
    69 -> 26,5
    70 -> 12,36
    71 -> 5,67
    72 -> 2,13
    73 -> 0,88
    74 -> 0,17

    hm?



  • *platzhalter*
    so. ich lass mein programm auch nochmal durchlaufen, bei 100000 würfeln hat es mir aber als bisherigen vergleichswert 5319/100000 geliefert, also 5,319%



  • welcher prozentsatz?



  • 70%



  • nicht 71?

    hast du icq? (#327574613)



  • jo, hab icq, ich sprech dich an, wenn ichf ertig mit dem abtippen des textes für aufgabe 3 bin.

    hier die neusten auswertungen(programm rechnet noch)

    60%: 99,999%
    61%: 99,957%
    62%: 99,730%
    63%: 98,482%
    64%: 94,295%
    65%: 84,013%
    66%: 66,147%
    67%: 44,767%
    68%: 25,539%
    69%: 12,512%
    70%: 5,478%
    71%: 2,073%
    72%: 0,735%
    73%: 0,230%
    74%: 0,06%
    75%: 0,018%
    76%: 0,005%
    77%: 0,002%

    und danach ende^^



  • es sieht mir so aus als wären unsere werte ziemlich identischm nur um eins verschoben... das ist seltsam



  • otze, könntest du bitte einmal deine Zufallsfunktion für den Käse posten?

    Also meine ist:

    unsigned int x, y, z;
        for (x = 0; x < 20; x++)
        {
            for (y = 0; y < 20; y++)
            {
                for (z = 0; z < 20; z++)
                {
                    unsigned int prob = rand() % 101;
                    if (prob <= CheeseProbability)
                    {
                        Cube.Data[x][y][z] = 1;
                    }
                    else
                    {
                        Cube.Data[x][y][z] = 0;
                    }
                }
            }
        }
    

    CheeseProbability geht von 0 - 100 und rand() % 101 sollte doch eine Zufallszahl zwischen 0 und 100 erzeugen, oder?

    Edit: Sorry, falls falsches Forum

    Daniel



  • ist zwar nicht besodners schön...

    so, das ganze ist in einer klasse:

    static bool isRandomized;
    //private methods
    bool randomizer(int chance=50){
        if(!isRandomized){
            srand(time(NULL));
    	isRandomized=true;
        }
        return rand()%100>chance?0:1;
    }
    

    der rest ist eigentlich so wie bei dir



  • otze schrieb:

    ist zwar nicht besodners schön...

    so, das ganze ist in einer klasse:

    static bool isRandomized;
    //private methods
    bool randomizer(int chance=50){
        if(!isRandomized){
            srand(time(NULL));
    	isRandomized=true;
        }
        return rand()%100>chance?0:1;
    }
    

    der rest ist eigentlich so wie bei dir

    Dein rand()%100 erzeugt doch nur Zahlen zwischen 0 und 99, oder?

    Also auf cplusplus.com hab ich in der Reference folgendes gefunden:

    printf ("A number between 0 and 99: %d\n", rand()%100);

    http://www.cplusplus.com/ref/cstdlib/rand.html

    Daniel



  • und was sagt dir das größer zeichen dahinter?



  • Das hatte ich übersehen 🙂



  • oops hattest doch recht, mir war klar, dass es nur werte von 0-99 geben konnte,hab mich dann aber doch mit dem > zeichen gedanklich verrannt, thx für das gute auge 🙂

    //edit also nochmal alles durchrechnen lassen^^

    daniel, hast du eugentlich auch en paar testwerte die du posten könntest? so zum vergleichen 🙂



  • Bin grad dabei 🙂

    edit: alle Werte jetzt mit 100k Durchläufen
    Käsewahrscheinlichkeit - Fließwahrscheinlichkeit
    65% - 91.69%
    66% - 78.978%
    67% - 59.73%
    68% - 38.709%
    69% - 21.048%
    70% - 9.924%
    71% - 4.19%
    72% - 1.514%
    73% - 0.559%

    Weitere folgen noch, dann aber mit 1000000 Durchläufen... oder ich bau einen Netzwerkmodus ein und schnapp mir den PC von meinem Bruder 😃

    Daniel



  • meine werte stimmen bisher mit deinen in etwa überein(ca 100k durchgänge)
    64%:97.609
    65%:91.704
    66%:79.216
    67%:60.188
    68%:38.483
    69%:21.072
    70%:9.814
    71%:4.144
    72%:1.531

    rest kommt per edit, ist aber echt krass, wieviel er compiler aus sonem kleinen programm noch an speed rausholen kann wenn man von debug auf release stellt 😮



  • Hab jetzt auch mal den Wert für 70% mit 10000000 Durchläufen ausrechnen lassen ... das dauert 🙂 Das ist recht genau bei 10% ich frage mich ob das Zufall ist oder wenn man es noch öfters laufen lässt, ob es dann 10 wird. Ich lass es mal mit 100 Millionen laufen 😃

    70% - 9.9699%

    Daniel



  • nein, das wird sich um 9,7% einpendeln, zwischen meinen 100k und deinen 1million durchläufen war ja auch kein großer unterschied mehr festzustellen



  • nt


Log in to reply