Comment peut-on décider si a une séquence de chiffres?


130

On nous a donné l'exercice suivant.

Laisser

f(n)={10n occurs in the decimal representation of π0else

Prouver que est calculable.f

Comment est-ce possible? Pour autant que je sache, nous ne savons pas si π contient toutes les suites de chiffres (ou lesquelles) et un algorithme ne peut certainement pas décider qu'une séquence ne se produit pas . Par conséquent, je pense que f n’est pas calculable, car le problème sous-jacent n’est que semi-décidable.


32
Pardonnez-moi d’être complètement ignorante, il me manque évidemment un élément fondamental de la question, mais 0 ^ n n’est-il pas toujours 0? Puisque la 32e décimale si pi est 0, cela ne signifie-t-il pas que f (n) renvoie toujours 1?
Cory Klein

69
@CoryKlein: il s'agit d' une notation linguistique formelle ; superscript signifie ici concaténation de -fold, soit . n'est qu'un symbole ici, pas un nombre. n a 5 = a a a a a 0nna5=aaaaa0
Raphaël

Réponses:


133

Il n'y a que deux possibilités à considérer.

  • Pour chaque entier positif , la chaîne apparaît dans la représentation décimale de . Dans ce cas, l'algorithme qui renvoie toujours 1 est toujours correct.n0nπ

  • Il existe un plus grand entier tel que apparaisse dans la représentation décimale de . Dans ce cas, l'algorithme suivant (avec la valeur codée en dur) est toujours correct:N0NπN

    Zeros-in-pi(n):
     if (n > N) then return 0 else return 1
    

Nous n'avons aucune idée de laquelle de ces possibilités est correcte, ou quelle valeur de est la bonne dans le second cas. Néanmoins, l'un de ces algorithmes est garanti d'être correct. Ainsi, il existe un algorithme pour décider si une chaîne de zéros apparaît dans ; le problème est décidable.Nnπ


Notez la différence subtile avec l'ébauche de preuve suivante proposée par gallais :

  1. Prenez une machine de Turing aléatoire et une entrée aléatoire.
  2. Soit le calcul dure indéfiniment, soit il s’arrête à un moment donné et il existe une fonction calculable (constante) décrivant chacun de ces comportements.
  3. ???
  4. Profit!

Alex ten Brink explique:

observez ce que dit le théorème Halting: il dit qu’il n’existe pas de programme capable de décider si un programme donné est interrompu. Vous pouvez facilement créer deux programmes tels que l’un ou l’autre calcule si un programme donné s’arrête: le premier dit toujours «il s’arrête», le second «ça ne s’arrête pas» - un programme a toujours raison, nous ne pouvons pas calculer lequel d'entre eux est!

sepp2k ajoute:

Dans le cas de l'exemple d'Alex, aucun des algorithmes ne donnera le bon résultat pour toutes les entrées. Dans le cas de cette question, l'un d'entre eux le fera. Vous pouvez affirmer que le problème est décidable parce que vous savez qu'il existe un algorithme qui produit le bon résultat pour toutes les entrées. Peu importe que vous sachiez lequel est cet algorithme. dix


Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
Gilles

12
Que se passerait-il si quelqu'un prouvait que la déclaration "Pour chaque entier positif n, la chaîne 0 ^ n apparaît dans la représentation décimale de π" est non démontable? Dirions-nous toujours que ce problème est décidable, malgré le fait qu'aucun algorithme correct ne pourrait jamais être construit?
Autres

4
@Autres Oui, nous le ferions.
JeffE

1
@ JeffE Très bien. Une preuve est-elle possible dans la logique intuitionniste? Ou la loi du tiers exclu est-elle nécessaire ici?
Autres

@Autres Si j'ai bien compris, l'idée est la suivante: si nous définissons pour chaque la machine de Turing comme dans la première partie de la réponse, nous savons alors que l' un d'entre eux calcule cette fonction. Nous ne savons pas laquelle (et si votre déclaration est prouvée, nous saurions même qu'il est impossible de savoir laquelle) mais nous savons toujours qu'il existe une telle machine de Turing , la fonction est donc calculable. M NNMN
JiK

14

Je viens de poster une légère précision sur la réponse de JeffE.

Nous savons qu'il existe deux fonctions / cas pouvant calculer la fonction f (n):

  1. Une fonction qui retourne toujours vrai (pour tout n, il existe n nombre de 0 consécutifs)
  2. Une fonction qui renverra true si n est inférieur à un entier N, où N est défini comme la longueur maximale des zéros consécutifs existant dans le nombre irrationnel donné (sinon, elle renvoie false).

Une et une seule de ces fonctions peut être correcte. Nous ne savons pas lequel, mais nous savons avec certitude qu'il existe une réponse. La calculabilité nécessite l'existence d'une fonction capable de déterminer la réponse en un nombre fini d'étapes.

Le nombre d'étapes dans le cas 1 est trivialement lié à simplement renvoyer 1.

Dans le cas 2, le nombre d'étapes est également fini. Pour chaque entier nous pouvons construire une machine de Turing qui accepte si et sinon rejette en temps fini. Donc, ne pas savoir une limite supérieure sur n'a pas d'importance. Pour chaque il existe une machine de Turing, à savoir , qui calcule correctement si (nous ne savons pas lesquelles sont correctes, mais peu importe, il en existe une).T N ( n ) n < N N N T N ( n ) n < NNTN(n)n<NNNTN(n)n<N

Bien qu'il ne soit peut-être pas possible de choisir entre les deux cas (même si l'un semble plus probable qu'un autre), nous savons que l'un d'entre eux doit être correct.

En remarque: notre solution suppose que bien que nous ne puissions pas déterminer quelle fonction déclenchera une valeur correcte, l’essence de la calculabilité ne repose pas sur la constructibilité de la preuve. L'existence pure est suffisante.


9
Tous les mathématiciens ne l'acceptent pas, par exemple les intuitionnistes.
Reinierpost

Vous faites en fait un long exemple de la loi du tiers exclu, , lol. Dans la logique intuitionniste ou dans tout système logique basé sur la théorie des types, cette preuve est rejetée. P¬P
Kaa1el

5

L'étape 5 de la tentative de preuve suivante est injustifiée et en fait fausse - un contre-exemple peut être trouvé ici . (merci, Yuval; cela ressemblait à la partie la plus esquissée du croquis). J'ai laissé la réponse ici car je pense que l'erreur est instructive.


Tout d'abord: la paire de réponses de JeffE est suffisante; f est calculable de toute façon.

Un bref détour, cependant, pour tenter d’esquisser une preuve par induction:
Prémisse R : ne se répète pas. 1. Regardez en base 2. Ceci est principalement pour réduire le nombre de cas. 2. Peu importe dans quelle mesure la ligne que vous alliez, vous trouverez toujours une autre 1 quelque part: l'alternative est tous les zéros, ce qui voudrait dire commence à répéter, ce qui va à l' encontre R . 3. Même chose pour aller le long de la ligne et trouver 0 . 4. Développez les séquences à deux chiffres: vous ne pouvez pas arrêter de rechercher 01 ou 10 (c’est-à-dire des endroits où il bascule), car sinonπ π π ππ
π
π

π commencerait à répéter sur 1 ou sur 0 . De même, vous ne pouvez pas arrêter de rechercher 11 ou 00 , car sinon, la répétition commence sur 1010101 ...
5. L'étape inductive: chaque séquence finie doit apparaître un nombre infini de fois, car l'alternative est que commence à répéter le l' une des séquences plus courtes, ce qui contredit R .π


10
Tout d'abord, nous savons que le développement binaire de ne se répète pas car est irrationnel. Deuxièmement, il existe des nombres irrationnels qui ne contiennent ni 000 ni 111 dans leur développement binaire, par exemple celui correspondant à la séquence de Thue-Morse: 0.0110100110010110 ...πππ
Yuval Filmus

1
Ah, les dangers des sauts inductifs: P Bonne prise, merci.
Stephen Voris

1
Incidemment, si la conclusion est fausse, est-il plus logique pour moi de la supprimer ou de la laisser et de confirmer par la modification que c'est faux?
Stephen Voris

4
@StephenVoris Cela dépend de votre erreur en matière d'éducation. Notez que la question de savoir si est normale (son base- extension contient toutes les séquences fini de chiffres -aire infiniment souvent) est l' un des grands problèmes ouverts de la théorie des nombres. b bπbb
David Richerby

2
@ David Richerby Grand problème ouvert, vous dites? Oui, c'est bon à savoir. Je pense effectivement que c'est une erreur raisonnablement éducative, car il est évident que le problème sur lequel se base la question du PO est délicat - de toute évidence, je pourrais également me tromper, étant donné le vote négatif.
Stephen Voris
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.