2009-12-21 13 views
1

Comment créer une machine de Turing qui calculera la somme de deux chiffres binaires séparés par #, par ex. 111 # 101B, où B est pour blanc? Le résultat peut être écrit à la fin de la bande.Machine de Turing ajoutant deux nombres

+0

Est-ce que c'est ce devoir? (Il suffit de demander) – John

+1

Nous n'allons pas vous donner de réponses à vos devoirs. Vous devez au moins montrer que vous avez essayé et poser des questions spécifiques où vous rencontrez des problèmes. –

+0

Ok, je comprends. Je voulais juste avoir une idée comme dans la réponse ci-dessous. Merci :) – szaman

Répondre

11
  1. Ecrivez une machine de gravure pour convertir les deux nombres binaires en unaires (en conservant le blanc entre eux).
  2. Ecrivez une machine à tailler pour remplacer l'ébauche par 1 et coupez un chiffre de l'extrémité.
  3. Ecrivez une machine à convertir pour convertir un nombre unaire en binaire.
  4. Enchaînez ces trois machines ensemble.
+1

Vous, monsieur, êtes un smartass. +1 – dmckee

+1

Je déteste jouer au nécromancien, mais cela arrive quand vous google pour "ajouter des nombres binaires machine temps linéaire". Et non ce n'est en aucun cas une solution efficace puisqu'il prend un nombre exponentiel de pas (en taille d'entrée originale). – Raphael

-11

Vous avez appris à ajouter des chiffres à l'école primaire. Juste mettre en œuvre la même chose ici. Avec l'approche naïve, c'est en temps quadratique.

D'autres accélérations sont possibles.

Questions connexes