Random zwischen 1 und 100 nicht zwischen 0 und 100



  • Zufallszahl*(Ende-Start)+Ende

    Das stimmt doch gar nicht. HappyChristmas hast du es getestet?



  • int r=99; 
    int ra= random (r)+1;
    


  • Seit ihr jetzt doof

    Zufallszahl nehmen wir mal an 50.

    Diese nun mal 99 + 1. Sind bei mir 4951.



  • Hallo

    Siehe auch den Artikel über die Zufallsfunktion in unserem Forumsmagazin.

    Und bitte keine weiteren persönlichen Angriffe.

    bis bald
    akari



  • Habe noch was vergessen bin von einer Zahl zwischen 0 und 1 ausgegangen. Mann muss natürlich noch die Zufallszahl / größt mögliche Zahl teilen.

    Also in deinem Fall:

    Zufallszahl/100*(Ende-Start)+Ende
    

    Aber mit der Methode von holofolo kann es vieleicht auch gehen aber wie gesagt kein Plan von VCL.



  • holofolo. Danke so klappts 😃

    und an y-vonne
    nein sry wenn es sich böse angehört hat. war nicht so gemeint

    an atom wieso.... holofolo hat recht ich habs nun so gemacht

    int r = 99;
    int ra = random (r) +1;
    Edit1->Text=ra;
    

    Danke an alle und ein schönes weinachtsfest.

    Ps. Kann geclosed werden



  • Hallo

    @y-vonne :
    Nein deine Formel hilft nicht weiter, sondern verwirrt nur. Bitte lest lieber den von mir verlinkten Artikel, dort steht alles nötige.

    bis bald
    akari



  • Nein deine Formel hilft nicht weiter

    Hilft nicht weiter weil zu kompliziert oder hilft nicht weiter weil falsch?



  • Die VCL-Funktion RandomRange(const int AFrom, const int ATo) macht das was du suchst. Einfach die unit Math includieren.

    MfG



  • Hallo

    In meinen Augen ergibt deine Formel nicht die gewünschten Zahlen. Mir ist nichtmal klar, welchen Wertebereich die anfängliche Zufallszahl haben soll, damit die Rechnung klappen soll.

    bis bald
    akari



  • o.k. akari pass auf. ich erklärst dir.

    BCB hat den befehl random () inne.
    Dieser Befehl erstellt zufalsszahlen in eine variable.
    Wenn die variable leer ist erstellt er eine zahl zwischen 0 und 50.
    Wenn aber die variable sagen wir 500 enthält und man dann ein random befehl setzt erstellt er eine zahl zwischen 0 und 500. Nun wollte ich ja eine zahl zwischen 1 und 100 nicht zwischen 0 und 100. So nun hat holofolo eine weise gepostet die funktioniert den er hat geschrieben Das ein wert zwischen 0 und 99 erstellt wird und dieser mit 1 addiert wird somit habe ich den wertebereich 1 bis 100 den wenn es per zufall null wird wird 0 nochmal mit 1 addiert und das ergebniss ist somit 1 oder wenn es per zufall 99 wird, wird diese zahl nochmal mit 1 addiert und es kommt 100 raus.

    hoffe habe geholfen
    nochmals fröhliche weinachten :xmas1:


Anmelden zum Antworten