/* zuf_lin_kongr.c - Programm berechnet eine Folge von Zufallszahlen */ /* mittels der "Methode der linearen Kongruenz" */ /* -- includes ---------------------------------------------------------------- */ #include #include #include /* -- main() ------------------------------------------------------------------ */ int main(void){ long a, b, m, i, anz; long long *x; printf( "Zufallszahlengenerator\n" "----------------------\n\n"); printf( "Eine Folge von Zufallszahlen wird mittels folgender Methode berechnet:\n" "\t\t\"x[i+1]:=(a*x[i]+b) mod m\"\n\n"); printf("Wieviele Zufallszahlen sollen berechnet werden?: "); scanf("%ld", &anz); // reservieren von Speicher für anz viele Zufallszahlen if((x=(long long *)malloc(anz*sizeof(long long)))==NULL){ perror("-> Fehler bei malloc()"); printf("--> Programmabbruch...\n\n"); return 1; } // Einlesen der restlichen Variablen printf("Wie groß soll der Faktor a sein?: "); scanf("%ld", &a); printf("Wie groß soll der Summand b sein?: "); scanf("%ld", &b); printf("Wie groß haben Sie m gewählt?: "); scanf("%ld", &m); printf("Welchen Wert soll x[0] haben?: "); scanf("%Ld", &x[0]); printf("\n\nDie Folge Ihrer Zufallszahlen lautet:\n"); // Berechnen der Folge von Zufallszahlen und Ausgabe; die beiden for-Schleifen // hätten natürlich auch zusammen gefasst werden, die getrennte Schreibweise soll // hier nur bekräftigen, dass man mit dem entstandenen Feld von Zufallszahlen // auch weiter rechnen könnte... for(i=0; i