-
        

Ergebnis 1 bis 10 von 10

Thema: Zufallsgenerator

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.01.2008
    Beiträge
    7

    Zufallsgenerator

    Anzeige

    Hallo,
    ich hätte da mal eine Frage:
    Kann man fuer den ASURO ein Programm mit einem Zufallsgenerator schreiben, ähnlich der "randomize"-Funktion?
    z.B. dass er eine Zahl zwischen eins und drei wählt und wenn eins kommt leuchtet die Status-LED rot, bei zwei gruen etc.?
    Wär schön wenn ihr mir weiterhelfen könntet!
    Ich sag schon einmal danke im voraus!
    lg

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    61
    Beiträge
    531
    Hallo,

    mann sollte zufugeneinbinden)

    #include <stdlib.h>

    und mann nutzt dann etwas wie:

    unsigned int r = random();

    in 'r' befindet sich jetzt ein willkurlichen Wert.

    siehe z.B.

    http://www.cs.cf.ac.uk/Dave/C/node16.html

    Gruss,

    Henk

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    12.01.2008
    Beiträge
    7
    Danke, werd es gleich mal ausprobieren!
    lg

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    12.02.2006
    Beiträge
    459
    Oder so , kostet weniger Speicher.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.01.2008
    Beiträge
    7
    Ich brauch eh nur wenig Speicher.
    Aber wie muss ich random definieren wenn ich wirklich nur ein paar Zufallswerte brauche...
    wie
    .
    .
    .
    if(r==1)
    {
    BackLED(ON,OFF);
    }
    if(r==2)
    {
    BackLED(OFF,ON);
    }
    if(r==3)
    {
    BackLED(OFF,OFF);
    FrontLED(ON);
    }

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    12.01.2008
    Beiträge
    7
    Hab eine Lösung hab die Zahlen einfach hoch gesetzt...
    Danke fuer die schnelle Hilfe, hab noch einige Ideen die ich ausprobieren muss
    lg

  7. #7
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    ich meine mich zu erinnern, dass random() zufällige zahlen mit 9 kommastellen zwischen 0 und 1 ausgibt. du musst sie also noch normieren, für drei zahlen ungefähr so:

    zufall=int(3*random())+1;

    von innen nach aussen:
    eine zufallszahl wird erzeugt (beispiele: 0, 0.5, 0,9
    sie wird mit 3 multipliziert (beispiele: 0, 1.5, 2.7)
    es werden die kommastellen abgeschnitten (beispiele: 0, 1, 2)
    es wird eins addirt um die null auszuschliessen und die 3 zu erreichen (beispiele: 1, 2, 3)

    du musst also nur die zahl vor dem * anpassen um eine beliebige menge von zahlen zu erreichen. die eins bleibt unverändert.
    kleinschreibung ist cool!

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    12.01.2008
    Beiträge
    7
    Ja das funktioniert auch,danke!

  9. #9
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    kein problem. wenn du die null mit einbeziehen willst, musst du das +1 entfernen.
    zufall=int(3*random());

    währen die drei zahlen 0, 1 und 2
    kleinschreibung ist cool!

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    23.08.2007
    Beiträge
    61
    Laut hier heißt die Funktion aus der stdlib.h
    Code:
    int rand(void)
    und nicht irgendwie random oder so.
    Außerdem sollte man den Zufallsgenerator vor dem ersten (und nur vor dem ersten) Aufruf im Programm initialisieren. Das geht mit
    Code:
    void srand(unsigned int seed)
    , wobei seed eine beliebige Zahl ist, die beim Programmaufruf noch nicht feststeht, z.B. ein Wert der Odometriesensoren.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •