Re: Aufgaben und Übungen,

Ich muss jetzt allerdings den Automaten verbessern. Dabei sollte jeder Zustand ein Mal mindestens erreicht werden

Ich habe schon eine Idee. Da ich nur noch eine Eingabevariable habe. Verwende ich einfach ein eindimensionales Array. Und sortiere das beliebig. Dabei darf am Ende kein Zustand auf sich selbst zeigen

Die Sortierung mache ich so - dass ich die Sortierung nur bei Zufall durchführe. Also, die Vertauschung. Um zu erreichen, dass kein Zustand auf sich selbst zeigt, mache ich das so - dass dieser Algorithmus solange ausgeführt wird, bis dieser Fall eingetreten ist.

Ein zweites Feld, ist für die andere Eingabe von
\section{ Re: Aufgaben und "Ubungen, }
Ich habe aber bei der Fernuni Hagen, gleich noch was phantastisches gefunden. Eine Vorlage, wie man Schaltnetze zeichnet. Das ist sehr praktisch. Dann sehen sie in Zukunft gescheiht aus. Im Gegensatz zum Automaten ist das aber nicht mehr trivial.\\
\\
Ich habe einen besseren Code erschaffen\\

\begin{verbatim}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define EMPTY_Z -1
#define UNINIT_Z -2

int main (void) {
    time_t t;
    int i, j;
    int z [4][2];
    int flag;

    srand ((unsigned)time (\&amp;t));


    for (i = 0;  i < 4;  i++) {
        z [i][0] = i;
        z [i][1] = i;
    }
    flag = 0;
    while (!flag) {
        for (i = 0;  i < 4;  i++) {
            for (j = i + 1;  j < 4;  j++) {
                if ((rand () % 32) > 16) {
                    t = z [j][0];
                    z [j][0] = z[i][0];
                    z [i][0] = t;
                }
            }
        }
        for (i = 0;  i < 4;  i++) {
            for (j = i + 1;  j < 4;  j++) {
                if ((rand () % 16) < 8) {
                    t = z [j][1];
                    z [j][1] = z[i][1];
                    z [i][1] = t;
                }
            }
        }
        flag = 1;
        for (i = 0;  i < 4;  i++)
            if ((z[i][0] == z[i][1]) \&amp;\&amp; (z[i][1] == i)) {
                flag = 0;
            }

    }

printf("\documentclass{article}n");
printf("\usepackage[utf8]{inputenc}n");
printf("\usepackage{pgf, tikz}n");
printf("\usetikzlibrary{arrows , automata , positioning}n");
printf("\begin{document}nn");


printf("\begin{center}n");
printf("\begin{tikzpicture}[>=stealth',shorten >=1pt,auto,node distance=2.5cm]n");
printf("%Knotenn");
printf("\node (0) [state, thick] {0};n");
printf("\node (1) [state, thick, right of= 0] {1};n");
printf("\node (2) [state, thick, right of= 1] {2};n");
printf("\node (3) [state, thick, below of= 1] {3};nn");

printf("%Verbindungenn");
printf("\path[thick,->]n");


for (i = 0;  i < 4;  i++) {
        j = 0;
        fprintf(stderr, "%in", z [i][0]);
        if (z [i][j] == i)
            printf ("(%i) edge [loop above] node {%i/%i} (%i)n", i, j, rand () % 4, z[i][j]);
        else
            printf ("(%i) edge node {%i/%i} (%i)n", i, j, rand () % 4, z[i][j]);
        j = 1;
        if (z [i][j] == i)
            printf ("(%i) edge [loop] node {%i/%i} (%i)n", i, j, rand () % 4, z[i][j]);
        else
            printf ("(%i) edge [bend angle=15, bend left,below] node {%i/%i} (%i)n", i, j, rand () % 4, z[i][j]);
}
printf(";n");
printf("\end{tikzpicture}n");
printf("\end{center}n");
printf("\end{document}n");


return 0;
}

Image test11

Image test12

Image test13

Image test14