|
#26 - 30-03-2016 17:01:55
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
Raicne carrée de 2
5) On revient à 3) tant que N1 est différent de but, qu'il y a encore des tranches non utilisées différentes de 00, et qu'on n'a pas atteint le nombre de décimales fixées
Cette phrase manque un peu de précision. Ce que je n'ai pas vu, c'est la comparaison avec le but. Tu n'en fais pas ? il n'y a pas de reste ?
#27 - 30-03-2016 17:27:33
- enigmatus
- Expert de Prise2Tete
- Enigmes résolues : 0
- Messages : 561
Racine carrrée de 2
@nodgim #26
On s'arrête si - (on a atteint le nombre de "décimales" que l'on voulait) ou - (N1==but1) et (on n'a plus de "décimales" non traitées)
Non, il n'y a pas de reste, et je compare N1 à but1 dans 4) . Je suppose qu'on peut le faire visuellement sans faire d'opération.
#28 - 30-03-2016 17:48:23
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
Rcine carrée de 2
Bon alors, je fais un essai de ton algo. but: 0110110 n=N=0 Je prends 011 de but n1=01 et N1=001 Je fais quoi après ?
#29 - 30-03-2016 18:11:01
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
Racine carrée d e2
C'est bon j'ai compris Enigmatus. Je valide. C'est sensiblement différent de ma méthode, c'est une variante. Tu pourras comparer. Dans ma méthode, quand je fais l'addition, je suis sûr qu'elle aboutira, c'est à dire qu'elle ne servira pas à rien. Dans ta méthode, statistiquement, une addition sur 2 est à jeter.
#30 - 30-03-2016 18:16:34
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
Raine carrée de 2
Finalement, je crois que ta méthode, Enigmatus, est la même que celle de Fix33, pour ce que j'en ai compris.
#31 - 30-03-2016 18:30:33
- enigmatus
- Expert de Prise2Tete
- Enigmes résolues : 0
- Messages : 561
Racine carrrée de 2
@nodgim #28
Sauf erreur,
et on peut continuer pour calculer les "décimales"
#32 - 30-03-2016 18:33:20
- enigmatus
- Expert de Prise2Tete
- Enigmes résolues : 0
- Messages : 561
Rcine carrée de 2
nodgim #29 a écrit:Dans ta méthode, statistiquement, une addition sur 2 est à jeter.
C'est exact.
#33 - 31-03-2016 11:00:39
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
racine czrrée de 2
Bon je vais proposer ma solution.
Dans les réponses données, on a eu:
-Unanimement, la méthode dite de la potence. Mais celle-ci suppose un calcul du reste entre le carré de la racine partielle et l'entier, et donc une soustraction, opération non prévue dans l'énoncé.
-Une méthode plus brute avancée par Fix33 et Enigmatus, qui consiste à tester chaque nouveau bit de la racine pour voir si son carré ne dépasse pas l'entier proposé. Et effectivement, une addition suffit à chaque étape. L'inconvénient est tout de même qu'à peu près une addition sur 2 est faite inutilement en cas dépassement de l'entier.
L'algo que je propose est une solution intermédiaire, basée sur le principe de l'invariance, à partir d'un certain rang de bits, entre le nb de bits de la racine carrée approchée et le carré correspondant: double ou double moins une unité. Cette invariance permet alors de fixer au départ une indexation.
Je vous laisse lire la recette, n'hésitez pas à faire vos remarques si ce n'est pas clair.
Bonne lecture et merci pour votre participation.
--------------------------------------------------------------
Recette pour écrire les décimales d'une racine carrée d'un entier en binaire.
1) Au préalable, ôter 1 au nombre entier pour le remplacer par une infinité de 1 après la virgule.
2) Trouver la racine carrée approchée la plus petite R0 telle que R0² donne au moins l'écriture correcte de l'entier moins une unité.
3) Remplacer les chiffres à gauche de la virgule de R0² par un index. Cet index I0 portera le nombre: -de chiffres à gauche de la virgule de R0² si nb de chiffres de R0² pair. -de chiffres + 1 à gauche de la virgule de R0² si nb de chiffres de R0² impair.
4) Repérer le rang du 1er zéro à droite de I0. On dira qu'il est à distance "d" de I0 (nb de chiffres de décalage).
5) Vérifier si le 1er chiffre à gauche de R0 doit être placé au regard de I0+d ou bien de I0+d+1. (voir test plus bas) Si placement en I0+d, alors R0 devient R1 en lui ajoutant 1 au rang I0+d et les 0 intercalaires éventuels (R1 contient alors I0+d chiffres). Si placement en I0+d+1, alors R0 devient R1 en lui ajoutant 1 au rang I0+d+1 et les 0 intercalaires éventuels. 6) Selon placement, ajouter 2*R1-1 aux décimales de R0² (le 1er chiffre de 2*R1-1 en I0+d ou I0+d+1).
7) changer l'index: I1=I0+d. Effacer les chiffres de rang inférieur ou égal à I1.
8) Reprendre l'algorithme en 4) en incrémentant les variables.
Test Additionner un nombre X qui commence par 0 avec un nombre R qui commence par 1. Le but est d' avoir 1 comme 1er chiffre du résultat, mais sans qu'il y ait de retenue à gauche. On regarde chiffre à chiffre (X,R) à partir de la gauche: Si un couple (0,0) apparait en 1er, alors le 1er chiffre de R se positionne au droit du 1er zéro de X. Si c'est un couple (1,1) qui apparait en 1er, alors R est à décaler d'un rang vers la droite.
#34 - 31-03-2016 18:49:30
- shadock
- Elite de Prise2Tete
- Enigmes résolues : 39
- Messages : 3334
racine careée de 2
Du coup ça donne quoi pour racine de deux par exemple parce que j'ai pas saisi la recette qui soit dit en passant nécessite dès l'étape 2 de faire une racine carrée... du coup il n'y a pas que des additions
"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline
#35 - 31-03-2016 21:56:39
- enigmatus
- Expert de Prise2Tete
- Enigmes résolues : 0
- Messages : 561
Racnie carrée de 2
Déjà, la première étape va prendre un "certain temps", puisqu'elle consiste à ajouter une infinité de 1 après la virgule…
#36 - 01-04-2016 08:49:59
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
raxine carrée de 2
@Shadock: ce que j'avais déja écrit. Mais tu admettras tout de même que le nombre de décimales à trouver est très limité par rapport à toutes celles qu'on aura à trouver après. @Enigmatus: Faut il répondre à cette remarque ?
Pour racine de 2, les réponses à chaque étape :
Recette pour écrire les décimales d'une racine carrée d'un entier en binaire.
1) Au préalable, ôter 1 au nombre entier pour le remplacer par une infinité de 1 après la virgule.
Donc ça donne 1,11111....
2) Trouver la racine carrée approchée la plus petite R0 telle que R0² donne au moins l'écriture correcte de l'entier moins une unité.
Donc 1
3) Remplacer les chiffres à gauche de la virgule de R0² par un index. Cet index I0 portera le nombre: -de chiffres à gauche de la virgule de R0² si nb de chiffres de R0² pair. -de chiffres + 1 à gauche de la virgule de R0² si nb de chiffres de R0² impair.
Donc (2)000000000.....
4) Repérer le rang du 1er zéro à droite de I0. On dira qu'il est à distance "d" de I0 (nb de chiffres de décalage).
Donc d=1
5) Vérifier si le 1er chiffre à gauche de R0 doit être placé au regard de I0+d ou bien de I0+d+1. (voir test plus bas) Si placement en I0+d, alors R0 devient R1 en lui ajoutant 1 au rang I0+d et les 0 intercalaires éventuels (R1 contient alors I0+d chiffres). Si placement en I0+d+1, alors R0 devient R1 en lui ajoutant 1 au rang I0+d+1 et les 0 intercalaires éventuels.
Donc R0=1 et comme I0+d=3 alors R0 est allongé avec un 1 au rang 3. R0=1 et R1=101
6) Selon placement, ajouter 2*R1-1 aux décimales de R0² (le 1er chiffre de 2*R1-1 en I0+d ou I0+d+1).
Donc (2)000...+1001 = (2)1001
7) changer l'index: I1=I0+d. Effacer les chiffres de rang inférieur ou égal à I1.
Donc (2)1001 devient (3)001
8) Reprendre l'algorithme en 4) en incrémentant les variables.
R0 à remplacer par R1, I0 par I1.
#37 - 01-04-2016 09:34:52
- enigmatus
- Expert de Prise2Tete
- Enigmes résolues : 0
- Messages : 561
Racine crrée de 2
@nodgim Ta méthode "simple" ressemble à une blague de 1er avril… J'avoue avoir la flemme de tester cet algorithme, mais j'y remarque un certain nombre d'additions et de soustractions.
#38 - 01-04-2016 10:29:06
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
Racine carréée de 2
Non, Enigmatus, ce n'est pas une blague du 1er avril, et il n'y a aucune autre opération que l'addition. Tu ne l'as sans doute pas encore comprise complétement. A l'usage, elle est très simple, c'est juste un coup à prendre. Insiste un peu, tu vas voir c'est très élémentaire en fait.
#39 - 01-04-2016 11:15:40
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
Racine caarrée de 2
Je donne ici l'application (améliorée même) pour la racine de 2:
Au départ: Carré: (2)00... Racine: 1--->101(3) Opération: (2)000...+ 1001=(2)1001=(3)001
Carré (3)001 racine: 101--->1011(4) Opération: (3)001 + 10101=(3)11001=(5)1001
Carré (5)001 racine 1011-->101101(6) Opération: (5)001 + 1011001= (5)1101001=(7)01001
Carré (7)01001 racine 101101--->10110101(8) Opération (7)01001+101101001=(7)111111001=(13)001
Carré (13)001 racine 10110101---->10110101000001(14)
etc....
#40 - 01-04-2016 18:24:19
- shadock
- Elite de Prise2Tete
- Enigmes résolues : 39
- Messages : 3334
acine carrée de 2
Intéressant mais un peu long
"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline
#41 - 01-04-2016 19:14:25
- nodgim
- Elite de Prise2Tete
- Enigmes résolues : 0
- Messages : 3802
racine careée de 2
C'est du binaire, donc la racine s'étale vite. Mais si tu compares avec la méthode de la potence en binaire, y pas photo: c'est moins sujet à erreur et plus rapide.
Mots clés des moteurs de recherche
|
|