Enigmes

Forum dédié aux énigmes et à toutes formes de jeux de logique.

Déconnexion

Tu n'es pas identifié sur Prise2tete : s'identifier.

accueil Accueil forum Forum
[+]

 #26 - 30-03-2016 17:01:55

nodgim
Elite de Prise2Tete
Enigmes résolues : 0
Messages : 3801

Racine carrée de

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 ?

#0 Pub

 #27 - 30-03-2016 17:27:33

enigmatus
Expert de Prise2Tete
Enigmes résolues : 0
Messages : 561

Racnie carré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 : 3801

Raicne 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 : 3801

Racinee carrée de 2

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 : 3801

eacine 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

Racin ecarrée de 2

@nodgim #28

Sauf erreur,

Code:

Nombre initial = 0 11 01 10          |
but1=0 (1ère tranche); n=N=0

On essaye : n1=01; N1= 4*N + 4*n + 1 = 000 + 001 = 1 (on fait cette addition)
            N1 > but1
         => Ce n'est pas bon
Donc :      n1=00; N1 = 4*N = 000

but2=011
On essaye : n2=001; N2= 4*N1 + 4*n1 + 1 = 00000 + 0001 = 1 (on fait cette addition)
            N2 < but2
         => C'est bon
Donc :      n2=001; N2 = 00001

but3=01101
On essaye : n3=011; N3= 4*N2 + 4*n2 + 1 = 0000100 + 00101 = 1001 (on fait cette addition)
            N3 < but3
         => C'est bon
Donc :      n3=011; N3 = 1001

but4=0110110
On essaye : n4=0111; N4= 4*N3 + 4*n3 + 1 = 100100 + 01101 = 110001 (on fait cette addition)
            N4 < but4
         => C'est bon
Donc :      n4=0111; N4 = 110001

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

Racine caré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 : 3801

eacine carré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 caré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 hmm


"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

raxine 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 : 3801

racine xarré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 carrée dr 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 : 3801

tacine 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 : 3801

Racine carréee 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

Racie carrée de 2

Intéressant mais un peu long big_smile


"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 : 3801

Raicne carré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.

 

Réponse rapide

Rédige ton message
| | | | Upload | Aide
:) :| :( :D :o ;) :/ :P :lol: :mad: :rolleyes: :cool:
Sécurité

Répondez à la devinette suivante : 

Le père de toto a trois fils : Pif, Paf et ?

Mots clés des moteurs de recherche

Mot clé (occurences)

Pied de page des forums

P2T basé sur PunBB
Screenshots par Robothumb

© Copyright 2002–2005 Rickard Andersson

Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact
© Prise2tete - Site d'énigmes et de réflexion.
Un jeu où seules la réflexion, la logique et la déduction permettent de trouver la solution.

Flux RSS de Prise2Tete Forum Jeux & Prise2Tete Test & Prise2Tete Partenariat et Publicité sur Prise2Tete