- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Wie denn "Zufall" programmieren

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.09.2004
    Ort
    Heilbronn
    Alter
    41
    Beiträge
    153
    Anzeige

    E-Bike
    Was du auch machen kannst ist zu Beginn deines Programms einen Timer starten der ständig läuft. Bei Tastendruck kannst du den Zählerstand auslesen. Wenn du nur die niederwertigen 4 Bits ausliest hast du schon mal ne Zufallszahl im Bereich von 0 - 15.

    Marco
    It is a job that is never started that takes the longest to finish - J.R.R. Tolkien

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2005
    Ort
    Rendsburg
    Alter
    39
    Beiträge
    306
    Es muss in der Software passieren da ich alle pin`s verwende
    Wenn etwas klemmt, wende Gewalt an.

    Wenn es kaputt geht,
    hätte es sowieso erneuert werden müssen.

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    63
    Beiträge
    534
    .. also so als Anregung ... alle Pins .. Lauflicht .. nun, wenn Du das Licht Multiplexen würdest und das mit 1000 Hz .. könntest Du ab und zu aus einem externe Rauschgenerator was messen - da gibt es hier irgendwo einen Thread, der mit LEDs eine Lichtmessung durchführt .. das wäre doch ideal ...
    ... alternativ könntst Du auch den Zufall selbst berechnen und den Startwert immer "irgendwoher" zusammensuchen, aus einem Speicherbereich der sich ändert ... timer/val der hochzählt etc.
    Oder Du könntest einfach die Quarzeitbasis "etwas ungenauer" aufbauen, sprich einen externen Taktgeber verwenden, der mit einem "Rauschen" überlagert ist ... so mit mini uC, der diese Variation in "grenzen" hält ...
    Ich kann mir keine Signatur leisten - bin selbständig!

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Zitat Zitat von Cybrix
    Die gleichverteilung sollte schon ungefähr gleich bleiben!

    [...]

    gibt es da noch ne möglichkeit die Verteilung ungefähr gleich hin zukriegen?
    Die Verteilung ist doch gut für so wenige Stichproben. SIgnifikante Abweichungen seh ich da keine. Teste mal mit 10000 Werten, da sieht das schon anders aus.

    Timer-Werte etc sind übrigens immer deterministisch (wäre schlimm, wenn's nicht so wäre).

    Wie man zufällige Startwerte für eine Seed erhalten kann ist im Artikel beschrieben.
    Disclaimer: none. Sue me.

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.09.2004
    Ort
    Heilbronn
    Alter
    41
    Beiträge
    153
    Timer- Werte sind nur dann determenistisch wenn du keine Benutzeraktion hast. Ich glaube nicht dass du es hinbekommst einen Taster mehrere Male hintereinander in einem absolut exakten Intervall zu drücken... Aber da er einen weiteren Input ausschliesst hat sich das eh erledigt...
    It is a job that is never started that takes the longest to finish - J.R.R. Tolkien

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.01.2005
    Ort
    Rendsburg
    Alter
    39
    Beiträge
    306
    Man soll sich auch irgendwann zu frieden geben!

    Das ist mir jetzt zufall genug!

    Also danke an euch alle die ihr mir geholfen habt!

    Wenn interresse besteht lade ich mal ein kleines video von der platine in aktion hoch!
    Wenn etwas klemmt, wende Gewalt an.

    Wenn es kaputt geht,
    hätte es sowieso erneuert werden müssen.

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    25.05.2007
    Ort
    Giessen und Fulda
    Alter
    39
    Beiträge
    81

    zufall in C

    Code:
    #include <stdio.h>
    #include<time.h>
    
    int zufallszahl;
    
    
    void main(void)
    {
    srand( time(NULL) );                                   
    zufallszahl = rand() % 10 + 1;
    printf("Die Zufallszahl zwischen 1 und 10 lautet: %i",zufallszahl);
    }
    Die funktion srand(time(NULL)) setzt die systemzeit auf NULL, ohne diesen Befehl würde immer die selbe Zahl generiert werden.

    Die Funktion rand() % 10 + 1 generiert zahlen zwischen 10 und 1, in dem du diese zahlen änderst, werden zahlen in dem neuen bereich generiert

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress