Étant donné deux entiers et en représentation binaire, quelle est la complexité du calcul de la taille en bits de ?n x n
Une façon de procéder consiste à calculer en calculant une approximation de avec une précision suffisante. Il apparaît que le calcul avec bits de précisions peut se faire dans où est le temps nécessaire pour calculer le produit de deux entiers de longueur . Cela donne un algorithme (pas spécialement simple) de complexité approximativement si est une limite sur la taille des bits de et (si je n'ai fait aucune erreur).log 2 ( x ) log 2 ( x ) k O ( M ( k ) log k ) M ( k ) k O ( s log 2 s ) s x n
Peut-on battre où est la taille de et (dans le cas où ils ont des tailles comparables)? Existe-t-il un algorithme simple pour obtenir cette complexité ou mieux?s x n
Remarque: Je m'intéresse à la complexité d'un modèle théorique tel que les machines de Turing.
Réponses:
[modifier] Comme suggéré, je modifie ma réponse pour donner plus de détails.
La réponse à ma deuxième question est non :
Proposition. Calculer jusqu'à la précision est au moins aussi difficile que calculer la taille en bits de .k x 2 kJournal( x ) k X2k
Preuve. Soitdésigne la taille en bits d'un entier . Remarquez tout d'abord que pour un entier non négatif , la taille en bits de est .y y y 1 + ⌊ log y ⌋|y| y y y 1+⌊logy⌋
Ainsi, . Maintenant est positions décalées vers la gauche. Ainsi, on peut calculer à la précision en soustrayant simplement à la taille de bit de et en décalant les positions résultantes vers la droite. 2 k log(x)log(x)klog(x)k1 x 2 k k∣∣x2k∣∣=1+⌊2klogx⌋ 2klog(x) log(x) k log(x) k 1 X2k k
la source