#include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX_SPECIAL_STATES 3 #define MAX_STATES 8 #define MIN_STATE 1 #define SPECIAL_STATE_1 1 #define SPECIAL_STATE_2 2 #define SPECIAL_STATE_3 3 #define MAX_INPUTS 2 int main (void) { time_t t; int i; int q [MAX_SPECIAL_STATES]; int j; int a [MAX_STATES]; int b [MAX_STATES]; int x [MAX_STATES]; srand ((int)time (\&t)); q [SPECIAL_STATE_1] = (rand () % MAX_STATES) + MIN_STATE; while ((q [SPECIAL_STATE_2] = ((rand () % MAX_SPECIAL_STATES)+MIN_STATE)) == q [SPECIAL_STATE_1]); while (((q [SPECIAL_STATE_3] = ((rand () % MAX_STATES)+MIN_STATE)) == q [SPECIAL_STATE_1]) || (q [SPECIAL_STATE_3] == q [SPECIAL_STATE_2])); j = rand () % MAX_INPUTS; printf ("Zur Sicherheit: %i %i %in", q [SPECIAL_STATE_1], q [SPECIAL_STATE_2], q [SPECIAL_STATE_3]); printf ("ZustandttFolge-Zustand fuertAusgangn"); printf ("tttx=0tx=1ttttn"); for (i = MIN_STATE; i < (MAX_STATES+MIN_STATE); i++) { if (i == q [SPECIAL_STATE_1]) { a [q [SPECIAL_STATE_1] - MIN_STATE] = q [SPECIAL_STATE_2]; b [q [SPECIAL_STATE_1] - MIN_STATE] = q [SPECIAL_STATE_3]; x [q [SPECIAL_STATE_1] - MIN_STATE] = j; } else if (i == q [SPECIAL_STATE_2]) { a [q [SPECIAL_STATE_2] - MIN_STATE] = q [SPECIAL_STATE_3], b [q [SPECIAL_STATE_2] - MIN_STATE] = q [SPECIAL_STATE_1]; x [q [SPECIAL_STATE_2] - MIN_STATE] = j; } else if (i == q [SPECIAL_STATE_3]) { a [q [SPECIAL_STATE_3] - MIN_STATE] = q [SPECIAL_STATE_1]; b [q [SPECIAL_STATE_3] - MIN_STATE] = q [SPECIAL_STATE_2]; x [q [SPECIAL_STATE_3] - MIN_STATE] = j; } else { a [i - MIN_STATE] = (rand () % MAX_STATES) + 1; b [i - MIN_STATE] = (rand () % MAX_STATES) + 1; x [i - MIN_STATE] = (rand () % MAX_INPUTS); } } for (i = MIN_STATE; i < (MAX_STATES + MIN_STATE); i++) printf ("%ittt%it%itttt%in", i - MIN_STATE, a [i - MIN_STATE], b [i - MIN_STATE], x [i - MIN_STATE]); return 0; }