Zufallsgenerator sinnvoll umgesetzt?



  • Ja.



  • Gleichverteilung bedeutet, dass jede Anordnung deiner Zahlen 1 bis 32 gleichwahrscheinlich ist. Um genau zu sein, hat dann jede Permutation die Wahrscheinlichkeit 1/32!, weil es genau 32! (32 Fakultät) verschiedene Permutationen gibt.

    Warum du dich dieser Verteilung mit großem n annäherst: Da fällt mir auf die Schnelle auch kein formales Argument ein. Das war mehr eine intuitive Aussage.



  • Aber ich dachte es ist gut wenn jede Verteilung gleichwahrscheinlich ist 😕



  • ah ok .. hab den vorherigen Post nochmal gelesen.

    Ich näher mich der Gleichverteilung nur an .. aber ich erreiche sie nicht .. okay 🙂



  • Warum ist das eigentlich so, dass nicht alle Kombinationen gleichwahrscheinlich sind??

    Das kann ich mir irgendwie nicht vorstellen .. 😞



  • Es gibt 32! verschiedene Permutationen. Dein Algorithmus wählt eine von 32^(2n) Möglichkeiten für n Vertauschungen. Damit jede Permutation gleichwahrscheinlich ist, müsste 32^(2n) durch 32! teilbar sein. Das ist aber nicht der Fall.



  • Pures C ins C++ Dorum gesetzt nur wegen cout und keiner sagt was ...

    Schau dir vector an und vergiss c Arrays, die brauchst du nur noch sehr selten
    (in c++).



  • boost schrieb:

    Schau dir vector an und vergiss c Arrays, die brauchst du nur noch sehr selten
    (in c++).

    stimmt. arrays sind hier ja äußerst fehl am platz. weil die länge des arrays ja erst zur laufzeit bekannt ist. oh... wait !



  • Ich raff es noch nicht: Was spricht dagegen, std::random_shuffle einfach zu benutzen?



  • unskilled schrieb:

    stimmt. arrays sind hier ja äußerst fehl am platz. weil die länge des arrays ja erst zur laufzeit bekannt ist. oh... wait !

    Bei bekannter Größe gibt es dennoch sinnvolle Alternative (wie array).



  • knivil schrieb:

    Ich raff es noch nicht: Was spricht dagegen, std::random_shuffle einfach zu benutzen?

    Ich bin Anfänger und hab nur aus einer Idee heraus einen Zufallsgenerator schreiben wollen.

    😃



  • asc schrieb:

    unskilled schrieb:

    stimmt. arrays sind hier ja äußerst fehl am platz. weil die länge des arrays ja erst zur laufzeit bekannt ist. oh... wait !

    Bei bekannter Größe gibt es dennoch sinnvolle Alternative (wie array).

    mal ehrlich: wie oft verwendest du array?
    ich verwende nur array, wo ich es wirklich brauche (damit ich nicht extra die größe irgendwo erfragen muss), aber selbst das halte ich weder für fehlerunanfälliger noch wartbarer oder ähnliches. also nie.
    damals hat mich immer der header tr1/array vs array und der namespace std::tr1 vs std und die fallunterscheidungen davon abgehalten (also nen eigenen header zu schreiben, der das kapselt und dann halt nur teilweise portabel ist), in der zwischenzeit einfach die frage nach dem sinn.

    bb


Anmelden zum Antworten