[LINUX] [C-Sprache] Ich möchte Zufallszahlen im angegebenen Bereich generieren

Einführung

Möglicherweise möchten Sie ein bestimmtes Array mit einem geeigneten Wert füllen. Oder Sie möchten einen zufälligen Wert für Ihre Testdaten erstellen. Hier sind einige Tipps, die Sie in solchen Fällen verwenden können.

Es ist etwas unpraktisch, wenn rand () / rand_r () unverändert bleibt

Rand () / rand_r () wird als Funktion zum Generieren von Zufallszahlen bereitgestellt.

#include <stdlib.h>

int rand(void);
int rand_r(unsigned int *seedp);

Die obige Funktion verwendet jedoch Zufallszahlen zwischen 0 und RAND_MAX ** (* 1) **. Wenn Sie also Zufallszahlen von 0 bis UCHAR_MAX (255) generieren möchten, können Sie diese nicht so verwenden, wie sie sind. ..

** (* 1) ** In meiner Umgebung wurde es in stdlib.h wie folgt definiert

/* The largest number rand will return (same as INT_MAX).  */
#define	RAND_MAX	2147483647

Lösung

Wenn Sie die folgende Wrapper-Funktion vorbereiten, können Sie den Bereich des Minimal- / Maximalwerts (0 bis RAND_MAX) angeben.

#include <stdlib.h>

int getrand(unsigned int* seed, int min, int max)
{
    return min + (int)(rand_r(seed) * (max - min + 1.0) / (1.0 + RAND_MAX));
}

DEMO

Unten finden Sie ein einfaches Beispielprogramm. Bitte benutzen Sie es, um den Betrieb zu überprüfen.

https://github.com/ydah/specified_range_rand_r

Recommended Posts

[C-Sprache] Ich möchte Zufallszahlen im angegebenen Bereich generieren
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Ich möchte den Fortschritt in Python anzeigen!
Auch mit JavaScript möchte ich Python `range ()` sehen!
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte R-Datensatz mit Python verwenden
Ich möchte nur Pods mit dem angegebenen Label mit Label Selector in Client-go extrahieren
Ich möchte den Wörterbuchtyp in der Liste eindeutig machen
[Einführung in Pytorch] Ich möchte Sätze in Nachrichtenartikeln generieren
Ich möchte die gültigen Zahlen im Numpy-Array ausrichten
Ich wollte den AWS-Schlüssel nicht in das Programm schreiben
[Linux] Ich möchte das Datum wissen, an dem sich der Benutzer angemeldet hat
LINEbot-Entwicklung möchte ich den Betrieb in der lokalen Umgebung überprüfen
Ich möchte die zweite Zeile zum Spaltennamen in Pandas machen
Ich möchte den G-Test in einem Monat Tag 1 bestehen
Ich möchte die Bevölkerung jedes Landes der Welt kennenlernen.
Ich möchte Spyder an die Taskleiste anheften
Ich möchte kühl auf die Konsole ausgeben
Ich möchte in der Einschlussnotation drucken
Ich möchte mit dem Reim Teil1 umgehen
Ich möchte mit dem Reim part3 umgehen
Schriftliche Auswahlsortierung in C.
Ich möchte den Fortschrittsbalken anzeigen
Generieren Sie mit Python eine C-Sprache aus dem S-Ausdruck
Ich möchte Matplotlib in PySimpleGUI einbetten
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
Ich möchte die Farbe ändern, indem ich auf den Streupunkt in matplotlib klicke
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Ich möchte die Django Debug Toolbar in Ajax-Anwendungen verwenden
Ich möchte einen beliebigen Befehl im Befehlsverlauf von Shell belassen
Ich möchte visualisieren, wo und wie viele Leute in der Fabrik sind
Verwendung der C-Bibliothek in Python
Ich möchte Dunnetts Test in Python machen
So generieren Sie eine Sequenz in Python und C ++
Ich möchte Datetime.now in Djangos Test reparieren
[Django-Memo] Ich möchte die angemeldeten Benutzerinformationen im Voraus im Formular festlegen.
So steuern Sie Multiprozesse ausschließlich in C-Sprache
Ich möchte mit dem Reim part7 (BOW) umgehen
Ich möchte DB-Informationen in einer Liste speichern
Ich möchte PyTorch verwenden, um so etwas wie den Text von Japari Park zu generieren
Ich möchte verschachtelte Dicts in Python zusammenführen
Ich möchte einen Lebenszyklus in der Aufgabendefinition von ECS festlegen
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
Ich habe ein Modul in C-Sprache erstellt, das von Python geladene Bilder filtert
Ich möchte die Ergebnisse von% time, %% time usw. in einem Objekt (Variable) speichern.
Ich habe versucht, eine zufällige Zeichenfolge zu generieren
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Ich möchte C ++ - Code aus Python-Code erstellen!
So zählen Sie Zahlen in einem bestimmten Bereich
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte die Aktivierungsfunktion Mish verwenden
So zeigen Sie das Änderungsdatum einer Datei in C-Sprache bis zu Nanosekunden an
Ich möchte nur das 95% -Konfidenzintervall des Unterschieds im Bevölkerungsverhältnis in Python ermitteln
Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen
So beschränken Sie die API, die in der gemeinsam genutzten Linux-Bibliothek in C-Sprache veröffentlicht werden soll