Machines de Turing
Voilà un petit cadeau:
Depuis que les ordinateurs sont puissants, les OS controlent entierement les cartes graphiques, donc je ne peux pas vous proposer de version "modernes" du spectacle suivant!
Les ordinateurs actuels exécutent des milliards d'opérations par seconde. Un ordinateur n'est rien d'autre qu'une machine de Turing
But du jeu: "voir la bande" (où la petite tête de la machine se promène et change les cases. 1 million de petites cases changées par seconde, c'est tentant de la voir en live...
Le petit programme suivant, qui s'exécute automatiquement sous dos en pplein écran (vous n'avez rien à faire) met provisoirement votre PC en mode 320×200 et 256 couleurs (juste ce qu'il faut pour q'un segment ancienne version tienne sur l'écran (64000 cases).
Le premier nombre à entrer est le nb d'opération: si vous voulez voir quelque chose entrez un nombre entre 10000000 et 100000000.
Le deuxième est le nombre d'état de la machine: entrez pas plus que 7 (vous pouvez aller jusqu'à 19 sans bug, mais elles deviennent trop subtiles). Le troisième est l'"alphabet": (nombre de couleurs). Essayez 5 (jusqu'à 255 possible).
Vous verrez alors une machine de Turing s'exécuter en live à environ 1000000 cases changées par seconde. Le programme les choisit au hasard et les change toutes les 300000 opérations: sinon bcp d'entre elles font rien (ou efface la bande)...
http://www.logique.jussieu.fr/~chalons/TURING.EXE
Depuis que les ordinateurs sont puissants, les OS controlent entierement les cartes graphiques, donc je ne peux pas vous proposer de version "modernes" du spectacle suivant!
Les ordinateurs actuels exécutent des milliards d'opérations par seconde. Un ordinateur n'est rien d'autre qu'une machine de Turing
But du jeu: "voir la bande" (où la petite tête de la machine se promène et change les cases. 1 million de petites cases changées par seconde, c'est tentant de la voir en live...
Le petit programme suivant, qui s'exécute automatiquement sous dos en pplein écran (vous n'avez rien à faire) met provisoirement votre PC en mode 320×200 et 256 couleurs (juste ce qu'il faut pour q'un segment ancienne version tienne sur l'écran (64000 cases).
Le premier nombre à entrer est le nb d'opération: si vous voulez voir quelque chose entrez un nombre entre 10000000 et 100000000.
Le deuxième est le nombre d'état de la machine: entrez pas plus que 7 (vous pouvez aller jusqu'à 19 sans bug, mais elles deviennent trop subtiles). Le troisième est l'"alphabet": (nombre de couleurs). Essayez 5 (jusqu'à 255 possible).
Vous verrez alors une machine de Turing s'exécuter en live à environ 1000000 cases changées par seconde. Le programme les choisit au hasard et les change toutes les 300000 opérations: sinon bcp d'entre elles font rien (ou efface la bande)...
http://www.logique.jussieu.fr/~chalons/TURING.EXE
Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
Réponses
-
Pensez à mettre le programme à un endroit où le chemin ne comporte aucune espace...
-
Désolé, je voulais le faire avant, mais... grosses occupations.
Voilà le programme (en pascal pour DOS, version 7)
Il se télécharge facilement sur le net (le TPascal 7, je veux dire)
**************
program essaitur; uses dos, crt; type reac=record change:byte; mouv:byte; eta:byte; end; var i:longint; var t:array[0..64000] of byte absolute $A000:0000; var cur:longint; var etat:byte; mem:array[0..20,0..255] of reac; procedure initializgraph; begin [/i]asm mov ah,0 mov al,$13 int $10 end [i]; end; procedure turing(n,m:byte); var i,j:byte; begin for i:=0 to 20 do begin for j:=0 to 255 do begin mem[i,j].change:=random(m); mem[i,j].mouv:=random(3); mem[i,j].eta:=random(n); end; end; end; procedure deplace(c:byte); begin if c=0 then if cur>0 then dec(cur) else cur:=64000 else if c=2 then if cur<64000 then inc(cur) else cur:=0; end; procedure pas; var a,c:byte; begin a:=t[cur]; t[cur]:=mem[etat,a].change; c:=mem[etat,a].mouv; etat:=mem[etat,a].eta; deplace(c); end; var max,j:longint;n,m:byte; begin randomize; cur:=32000; etat:=0; writeln('nombre operations a raison d1 million/s'); readln(max); writeln('nombre etats de la turing machine'); readln(n); writeln('nombre de couleurs reconnues'); read(m); turing(n,m); initializgraph; for j:=0 to 64000 do t[j]:=j mod 256; for j:=1 to max do begin pas; if j mod 300000=0 then turing(n,m); end; readln; end.
[La fonte italique est-elle indispensable pour le code ? AD]Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi -
Je fais remonter le fil.
Réponse à AD: non, j'avoue, je sais pas pourquoi j'ai mis le code en italique, peut-être pour l'isoler du reste, mais bon, il n'y avait pas de risque de confusion
Je fais remonter le fil, je me lasse pas d'admirer le spectacle...
Un conseil: si vos PC sont modernes et rapides, essayez 300000000 d'opérations, 3 états et 11 couleurs.
Et entrez dans la matrice...
vous pouvez cliquer sur "executer" directement, pas vraiment besoin de l'enregistrer, de toute façon, je le laisserai éternellement sur mon site à ce lien
http://www.logique.jussieu.fr/~chalons/TURING.EXEAide les autres comme toi-même car ils sont toi, ils sont vraiment toi
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.1K Toutes les catégories
- 7 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 52 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 62 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 312 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 772 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres