Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
AutreMonde
27 mars 2006

Compétences Citoyennes - Suite (I)

AVERTISSEMENT: Ce texte est la suite du texte Compétences Citoyennes qui, matériellement et dans l'organisation du blog, ... le suit.

Deuxième exercice à examiner.

(II) Entiers tricarrés.

Voici un entier tricarré : 144 400
C’est un carré : 144 400 = 380x380 = 3802
Il a un nombre pair de chiffres (6 chiffres): 6 = 2x3
La moitié gauche de son écriture (ses 3 chiffres de gauche, puisqu’il en a 6) forme un nombre qui est un carré : 144 = 12x12 = 122
La moitié droite de son écriture (ses 3 chiffres de droite) forme un nombre qui est un carré : 400 = 20x20 = 202

En voici un autre, à quatre chiffres celui-là : 1681
1681=412
16=42
81=92
Vous voyez la chose ?

Donc, un entier tricarré est un entier qui s’écrit avec 2n chiffres. Il doit être un carré (c’est à dire le carré d’un autre entier). Ses n premiers chiffres forment un nombre qui doit être un carré. De même ses n derniers chiffres. On écarte comme non pertinent le cas d’un entier terminé par n zéros.

La rubrique « Affaire de Logique » du journal Le Monde proposait l’autre mardi la détermination des entiers tricarrés à 2, puis 4, puis 6 chiffres et sollicitait un exemple d’entier tricarré à 20 chiffres. Diable ! On avait une solution dans le numéro daté du 21 Mars.
L’exercice (comme la démarche-solution proposée) était intéressant parce que permettant de réfléchir à la différence entre raisonnement et technique de calcul.

Examinons un peu cela.

Le cas de 2 chiffres, est immédiat. Écriture « ab » avec a et b à choisir dans la famille {1, 2, 3, 4, 5, 6, 7, 8, 9} . Cela semble faire 81 cas (9 choix par chiffre), mais comme on connaît bien les carrés « à 2 chiffres » ( compris entre 10 et 99) : {16, 25, 36, 49, 64, 81}, plutôt partir de là et constater sans phrase que seul 49=72 est tri carré.
Pour les tricarrés à 4 chiffres, on peut encore envisager la chose sans raisonnement vrai et … « à la main ». L’entier cherché s’écrira en effet « abcd » avec nécessairement « ab » aussi bien que « cd » désignant chacun un carré à deux chiffres, donc un élément de la famille déjà citée : {16, 25, 36, 49, 64, 81}. Cela ne fait au fond que 36 situations à tester, de 1616 à 8181. Ayant ainsi écrit un nombre à 4 chiffres possible, la touche «racine carrée» d’une calculette de type collège (qui calcule le nombre qui a pour carré celui qui vous intéresse) vous donne la réponse. On note ici Rac cette touche. Si vous tapez « Rac1616 », vous lisez : 40,199…. Il y a des chiffres après la virgule. Le nombre qui a pour carré 1616 (c’est lui la « racine carrée de 1616 ») n’est pas entier. Donc 1616 n’est pas le carré d’un entier et ne peut plus du coup être tricarré. Vous n’avez que 36 essais à faire, ce n’est pas la mer à boire… et seul Rac1681 s’affiche sans chiffre après la virgule, donc comme entier : Rac 1681 = 41. Donc : 1681=412. On retrouve (il était en exemple préalable) 1681 comme entier tricarré, mais on a contrôlé que c’était le seul à 4 chiffres.

Les cas 6 chiffres et au delà deviennent trop lourds pour du bricolage « à vue ». Par exemple, un tricarré à 6 chiffres s’écrit « abcdef », où « abc » est un carré et « def » aussi, tous deux à trois chiffres. Mais quels sont les carrés à 3 chiffres, bases d’une méthode par essai-erreur ? Il y en a malgré tout 31 , depuis : 100=102 jusqu’à : 961=312. Pour recomposer « abcdef », il y a donc 22x22=222=484 cas à envisager et…. cela commence à lasser les bonnes volontés (faire 484 fois « Rac abcdef » et examiner l’affichage avec le critère : « des » ou «pas de » chiffre(s) après la virgule ……). Dans le cas de 8 chiffres, il faudrait recomposer en les accolant de toutes les façons possibles les 68 carrés à 4 chiffres qui existent, de 322=1024 à 992=9801. On arrive à 682=4624 essais … Exclu n’est-ce pas ? On est d’accord.

Il faut donc changer de méthode… Mais peut-être pas encore « vraiment » raisonner . On abandonne la calculette de type collège et on se munit d’une calculatrice de type lycée, programmable, c’est à dire pouvant exécuter un programme de calcul (à lui pré-implanter). Voyons, on essaie d’en mettre un au point pour le cas « 6 chiffres » et puis on verra si on peut, à moindres frais, le modifier pour l’utiliser dans les cas 8 chiffres et au delà.
Une calculatrice (un ordinateur), c’est idiot, mais puissant. Au moins au départ, inutile de finasser pour « économiser » les étapes. On peut analyser le travail à confier à la machine comme suit (… pour entiers tricarrés à 6 chiffres, donc):


1. Passer en revue les nombres entiers N=A2, à 6 chiffres, qui sont des carrés. Il suffit de commencer avec A=317 (A2=100489) et de poursuivre {A=318, 319, 320, ….} jusqu’à : A=999 (A2=998001)
2. N peut se lire BC, où B et C sont deux nombres à trois chiffres mis côte à côte. Sélectionner-définir B. Il suffit pour cela de diviser N par 1000 et de ne prendre que la «partie entière » (c’est à dire ce qui est avant la virgule, quand il y en a une). Les calculatrices font ça par la ‘’touche’’ : «Int». On commandera donc : B=Int(N/1000). D’où : B.
3. On teste RacB. Si c’est un nombre avec des chiffres après la virgule, B n’est pas un carré, N n’est pas tricarré et on peut passer au cas N suivant en augmentant A de 1.
4. Si B a été testé comme carré, il faut tester C. Pour isoler C, il suffit de retrancher 1000xB de N . On commandera donc : C=N-1000xB. D’où : C.
5. On teste RacC. Si c’est un nombre avec des chiffres après la virgule, C n’est pas un carré et N n’est pas tricarré . On peut passer au cas N suivant en augmentant A de 1.
6. Si on a successivement trouvé B puis C comme carrés (et si C n’est pas réduit à des zéros), alors, N est un entier tricarré, on demande une pause dans le programme et on affiche « A,N, RacB et RacC » pour pouvoir ainsi bien lire les éléments caractéristiques de l’entier tricarré qu’on vient de trouver. On relance le programme pour passer au cas N suivant en augmentant A de 1.

Dégager un tel algorithme est envisageable avec un niveau d’études actuelles de troisième / seconde. Et il faut un niveau de classe de seconde pour écrire effectivement le petit programme correspondant dans le langage de la calculatrice.

Résultats à 6 chiffres :

144400=3802={144}{400}={122}{202}
225625=4752={225}{625}={152}{252}
256036=5062={256}{036}={162}{62}
324900=5702={324}{900}={182}{302}
576081=7592={576}{081}={262}{92}

Comment modifier l’algorithme pour régler les cas suivants, à 8 chiffres ?

1. Balayer cette fois de A=3163 (31632=10004569) à A=9999 (99992=99980001)
2. Diviser N par 10000. B=Int(N/10000)
3. Inchangé
4. C=N-10000xB
5. Inchangé
6. Inchangé

La modification est donc immédiate. On lance le programme ….
Résultat(s) à 8 chiffres: 24019801=49012={2401}{9801}={492}{992}
Il n’y a qu’une seule solution.

Mais on constate que le déroulement des opérations commence à être très lent-lourd : le programme s’exécute cette fois pour 6837 valeurs successives de A (« seulement » 683 valeurs dans le cas 6 chiffres) et la pauvre calculatrice trouve le temps long …

Si on veut encore tenter la recherche exhaustive des entiers tricarrés à 10 chiffres avec cette malheureuse machine, il faut envisager de trouver un algorithme réclamant moins de tests. L’idée pourrait être dans la perspective de l’écriture N=BC, de tester plutôt à partir de B, entier carré à 5 chiffres, donc carré d’un entier compris entre100 et 316, ce qui ne fait «que» 217 «points de départ». Pour atteindre un N à contrôler, il faut accoler à l’écriture de B un nombre compris entre 00000 et 99999 et examiner si le nombre obtenu, le N à tester, est un carré. Quelques essais manuels suffisent à entrevoir qu’il y a peu d’entiers entre Rac(B00000) et Rac(B99999) quand B est lui-même un carré à 5 chiffres.
Par exemple, pour B=1502=22500, on a : Rac(2250000000)=47434,16… et Rac(2250099999)=47435,21.. Pour B=1502, n’est donc à tester comme tricarré N possible que 474352=2250079225 , ce qui renvoie au seul test de 79225 comme carré (avec ici rejet : Rac79225= 281,46…).
Autre exemple : B=2972=88209.
On calcule : Rac8820900000=93919,64.. et Rac8820999999=93920,17…
Là encore, on n’a à tester qu’un N possible : 939202 = 8820966400 qui renvoie au test de 66400 comme carré (rejet encore : Rac66400=257,68..).

On va donc tenter un algorithme « à partir de B ». Par exemple :

1. Passer en revue les entiers A de 100 à 316. On aura B=A2.
2. Tester pour chacun N comme tricarré possible avec N compris entre B00000 et B99999 : on va en fait se caler sur les entiers compris entre RacB00000 et RacB99999, qu’on va appeler respectivement M et P et calculer par : M=Int (RacB00000)+1 et P=Int(RacB99999). Pour M, le « +1 » est justifié par le fait que même si RacB00000 est entier, N=B00000 n’est pas accepté comme tricarré (dans N=BC, C ne doit pas être réduit à des zéros).
3. Pour un nombre que j’appelle K et que je fais dès lors avancer depuis M jusqu’à P, je vais examiner N=K2. La suite peut s’inspirer de l’algorithme précédent.
4. On recalcule B par B= Int (N/100000) et C par : C=N-100000xB
5. On teste « B carré » par : « RacB s’affiche sans chiffre après la virgule » ; on teste de même « C carré ? » ; on contrôle C différent de zéro
6. Si B et C (C non nul) sont des carrés, alors N=K2 est entier tricarré et on marque une pause pour afficher « N,K,RacB et RacC ». Après quoi on augmente K de 1 et on continue l’exploration (jusqu’à K=P, on l’a dit).

Le programme n’est pas plus difficile à « écrire-installer » sur la calculatrice que le précédent.
Et cette fois, son exécution est rapide.

Résultats à 10 chiffres:

1299602500=360502={12996}{02500}={1142}{502}
1587624025=398452={15876}{24025}={1262}{1552}
2371690000=487002={23716}{90000}={1542}{3002}
2496401296=499642={24964}{01296}={1582}{362}
2528178961=502812={25281}{78961}={1592}{2812}
2924105625=540752={29241}{05625}={1752}{752}
3132976729=559732={31329}{76729}={1772}{2772}
5198410000=721002={51984}{10000}={2282}{1002}
5616902916=749462={56169}{02916}={2372}{542}
6350496100=796902={63504}{96100}={2522}{3102}
8122515625=901252={81225}{15625}={2852}{1252}
9985605184=999282={99856}{05184}={3162}{722}

Voilà, voilà …… C’est fait pour 10 chiffres et il n’y a que douze solutions.

Et au-delà de 10 chiffres ?                              A suivre ….

Publicité
Publicité
Commentaires
AutreMonde
Publicité
Derniers commentaires
Archives
Publicité