Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MACHINE DE TURING (ENTIÈREMENT CONFIGURABLE) ...


Information sur la source

Catégorie :Divers Niveau : Expert Date de création : 25/04/2005 Vu / téléchargé: 4 236 / 428

Note :
9,5 / 10 - par 4 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

Bonsoir à tous ...
Avant d'entrer dans les détails, je vais brièvement expliquer ce qu'est une machine de Turing ... C'est une machine abstraite qui peut représenter n'importe quel algorithme. C'est un peu compliqué à expliquer, mais une fois que l'on a compris comment ça fonctionne, c'est super simple. Je vous conceille Google pour mieux comprendre ...
Le problème principal de la machine est qu'elle doit comprendre une bande de taille infinie ... Et comme tout le monde le sait, infini et informatique, c'est pas compatible. Donc pour résoudre ce problème, j'ai créé une sorte de système de double-pointeur-objet ... Enfin c'est un peu bordelique. L'autre difficulté était de créer un système pour parser tous les états possibles ... Pareil, un peu galère, mais au final, ça fonctionne ...
 

Conclusion

La machine est quasiment terminée, mais il manque encore pas mal de chose ... Déjà, je vais finir toute la programmation orientée objet, parce que l'interface est un peu (voir beaucoup) brouillon. Ensuite, je dois créer un tutoriel pour permettre à l'utilisateur de rentrer tous les états sans devoir forcement modifier le code-source ...
Ensuite, et surtout, dans la version définitive, je vais ... COMMENTER ! Parce que le code est immense et il n'y a quasiement aucun commentaire alors c'est un peu chaud pour suivre (et je m'en excuse).
Juste un truc ... Pour ceux que le script amuse, pour pouvoir ajouter ces propres états, il suffit d'utiliser la méthode Learn(strQuintuplet); autant de fois qu'il y a d'état. Voilà ...
Je radote, mais c'est une version BETA ! Alors, c'est normal que ce soit un peu le bordel ...
++ !
(c) LocalStone
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de LocalStone le 25/04/2005 01:26:19

Juste un truc, j'ai falli me suicider à cause de ce script ... Alors vous avez interet à commenter, proposer des choses, etc. ...

signaler à un administrateur
Commentaire de coucou747 le 25/04/2005 12:31:36

Très joli code, sauf pour le nom des fonctions, on s'y perds...
en général, on met une majuscule pour le nom du constructeur, et on reprend le nom du constructeur pour les méthodes...

ça reste bien programmé, on ne vois pas souvent ce genre de sources sur javascriptfr !

signaler à un administrateur
Commentaire de LocalStone le 25/04/2005 13:27:34

Merciiii ... Serieux, ça fait plaisir, parce que j'ai pas mal galéré. Est-ce que tu peux m'en dire plus pour les conventions d'appellation comme celle que tu as dit ? Parce qu'en fait, j'ai essayé de suivre la notation hongroise pour les variables, et quitte à faire les choses, autant les faire complètement ...

signaler à un administrateur
Commentaire de fg85 le 25/04/2005 14:13:48

Le script est bien fait, c'est en effet niveau expert/confirmé. Quelque petit commentaire constructif ?
- Il y a des parties de code que tu utilisais pour faire des test 'style : alert("stop")' qui sont placé sous commentaire, mieux vo les supprimés lorsque tu met sa sur javascriptfr . Sa permet d'augmenté la visibilité.
- Au bout d'un moment, il n'y au plus que des 0 qui s'affiche et ta machine en transforme un sur deux par un 1 .

Sinon le système est facile à comprendre après le démarrage du script.

Pour les curieux, voici ce que j'ai compris :
Quand la machine tombe sur un 2 : Elle baisse le nombre de droit jusqu'a avoir un 1. Et baisse (puis augmente si <0) le nombre de gauche, puis continue son trajet .
Quand la machine tombe sur un 1 ou un 0 : Une fois sur 2 (sa dépend de l'intervalle) elle transforme le 1 par 0 et le 0 par 1 , si bien que la suite parfaite est (0,1,0,1,0,1,0,1)

LocalStone c'est juste ?

------------------------------
http://fg.logiciel.free.fr

signaler à un administrateur
Commentaire de LocalStone le 25/04/2005 14:45:24

Salut fg85,
Je vais essayer de t'expliquer concrêtement comment fonctionne la machine, plutôt que te dire si tu as juste ou non ...
En fait, il n'y absolument aucune mathématique dans cette machine. On peut la programmer pour qu'elle effectue une opération mathématique, mais la machine en soit n'utilise pas les maths. En effet, tout est formel. Dans la machine que j'ai posté, j'ai mis les symboles "0", "1" et "2", mais j'aurais très bien pu mettre une boite de concerve, un sèche-cheveux et un chat (mais "0", "1" et "2", c'est plus pratique ...).
Ensuite, la machine fonctionne en fonction des quintuplets que l'on lui donne par la méthode Learn(strQuintuplet); ... Et on défini un état par une suite de quintuplet. Par exemple, si tu sais que la machine n'utilise que 2 symboles, tu auras que 2 quintuplets nécessaires pour définir un état. Et un quintuplet "(a0, X, O, +1, a1)", tu peux le traduire comme ça : "Si la machine est à l'état a0 et que le symbole actuel est X, alors je le remplace par O, je vais à droite et je passe à l'état a1" ...
Est-ce assez clair, ou tu veux plus d'explication ?

signaler à un administrateur
Commentaire de fg85 le 25/04/2005 14:54:46

Ok MERCI ! Je comprend mieux maintenant ;-)
Merci de cette explication .

Cordialement
------------------------------------------------
http://fg.logiciel.free.fr

signaler à un administrateur
Commentaire de thralia le 10/05/2005 11:34:13

Je n'ai strictement rien à dire sur ce script : il est parfait ! Et respect à toi, fg85 : d'une part pour cette source, et d'autre part pour ton langage sans fautes d'orthographe(ca se perd).
Encore merci et bravo !

signaler à un administrateur
Commentaire de thralia le 10/05/2005 11:38:23

OOPS!!! Vous aurez compris que je m'adressais à toi,localstone;bien que je n'aie rien contre toi,fg85

signaler à un administrateur
Commentaire de ifebo le 10/05/2005 19:48:00

Houa ! J'ai bien fait de suivre ton conseil LocalStone et d'approfondir la définition avec l'aide de Google.
Super ! Génial ! Et je pèse mes mots avec cette autre machine de Turing : Mon cerveau ! Si je meurs demain ce sera avec quelques cellulles grises en +  ;-)

signaler à un administrateur
Commentaire de LocalStone le 11/05/2005 11:05:02

Ha bah euh ... Merci !

signaler à un administrateur
Commentaire de homelaet le 30/09/2005 11:56:33

on doit t'appeler maitre ou LocalStone :) ?

signaler à un administrateur
Commentaire de LocalStone le 01/10/2005 11:55:54

Bah comme tu veux. J'aime bien "ma seigneurie", mais c'est toi qui choisi !

signaler à un administrateur
Commentaire de miximog le 18/11/2005 19:10:41

Ma seigneurie !
tu n'aurai pas les chevilles qui anflent ?!
:)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.