Algorithmes en Arithmétique

 

Table des matières cliquable

  1. Produit de deux entiers

  2. Min et max pour deux entiers

  3. Vérification de la décomposition en somme de quatre carrés

  4. Notation des colonnes en mode Excel

  5. Nombres premiers

  6. Nombres parfaits

  7. Décomposition de Lagrange et problème de Waring

  8. Syracuse, premiers essais

  9. Syracuse, suite et fin

10. Dénombrements

 

1. Produit de deux entiers

On se donne deux nombres entiers $a$ et $b$. Ecrire un algorithme qui calcule le produit $c$ de $a$ et $b$.

On nommera respectivement $\mathtt{valA}$, $\mathtt{valB}$ et $\mathtt{valC}$ les variables algorithmiques correspondantes.

Cliquez et recliquez  ici  pour avoir des exemples de valeur de $a$ et $b$.

      a =     b =        

Pour valider l'algorithme associé, le nom de l'exercice est prodEnt.

2. Min et max pour deux entiers

On se donne deux nombres entiers $a$ et $b$. Ecrire un algorithme qui calcule le minimum $p$ et le maximum $g$ de $a$ et $b$.

On nommera respectivement $\mathtt{valA}$, $\mathtt{valB}$, $\mathtt{petit}$ et $\mathtt{grand}$ les variables algorithmiques correspondantes.

Cliquez et recliquez  ici  pour avoir des exemples de valeur de $a$ et $b$.

      a =     b =        

Pour valider l'algorithme associé, le nom de l'exercice est petitgrand.

3. Vérification de la décomposition en somme de quatre carrés

On se donne cinq nombres $a, b, c, d$ et $n$. Ecrire un algorithme qui indique si la différence $e$ entre $n$ et la somme $a^2+b^2+c^2+d^2$ est nulle ou pas. Pour cela on calculera la valeur absolue $e$ de cette différence.

On nommera respectivement $\mathtt{valA}$, $\mathtt{valB}$, $\mathtt{valC}$, $\mathtt{valD}$, $\mathtt{valN}$ et $\mathtt{valE}$ les variables algorithmiques correspondantes.

Cliquez et recliquez  ici  pour avoir des exemples de valeur de $a, b, c, d$ et $n$.

      a =   ;   b =   ;   c =   ;   d =   ;   n =        

La validation de cet exercice vient juste tester la valeur de $e$.

Pour valider l'algorithme associé, le nom de l'exercice est verifDecomp4c.

4. Notation des colonnes en mode Excel

Le logiciel Excel et ses "collègues" des familles *Office ont une «curieuse et sympathique» façon de nommer les colonnes. Les colonnes de 1 à 26 se nomment respectivement A, B,C... c'est-à-dire à l'aide d'une seule lettre majuscule. Ensuite, de 27 à 702 on passe aux mots à deux lettres majuscules exactement et ainsi de suite. Trouver comment convertir une notation Excel $c$ en le nombre entier correspondant puis trouver comment convertir un nombre entier positif $n$ en notation Excel $c$.

Cliquez et recliquez  ici  pour avoir des exemples de valeur de $n$ et $c$.

      $n$ =   ;   $c$ =    
 
      $c$ =   ;   $n$ =    

2.1 D'une chaine à un nombre

Ecrire un algorithme qui convertit une notation Excel $c$ en le nombre entier correspondant. On nommera respectivement $\mathtt{colExcel}$ la variable d'entrée (chaine de caractères) et $\mathtt{numCol}$ la variable de sortie (numérique). On pourra utiliser le code suivant pour disposer de correspondances entre lettre et nombre :


     # correspondances entre les lettres de l'alphabet et leur valeur numérique
     
     affecter base           <-- 26
     affecter valLettre      <-- initialiseTableau(base,0)
     
     affecter valLettre["A"] <-- 1
     affecter valLettre["B"] <-- 2
     affecter valLettre["C"] <-- 3
     affecter valLettre["D"] <-- 4
     affecter valLettre["E"] <-- 5
     affecter valLettre["F"] <-- 6
     affecter valLettre["G"] <-- 7
     affecter valLettre["H"] <-- 8
     affecter valLettre["I"] <-- 9
     affecter valLettre["J"] <-- 10
     affecter valLettre["K"] <-- 11
     affecter valLettre["L"] <-- 12
     affecter valLettre["M"] <-- 13
     affecter valLettre["N"] <-- 14
     affecter valLettre["O"] <-- 15
     affecter valLettre["P"] <-- 16
     affecter valLettre["Q"] <-- 17
     affecter valLettre["R"] <-- 18
     affecter valLettre["S"] <-- 19
     affecter valLettre["T"] <-- 20
     affecter valLettre["U"] <-- 21
     affecter valLettre["V"] <-- 22
     affecter valLettre["W"] <-- 23
     affecter valLettre["X"] <-- 24
     affecter valLettre["Y"] <-- 25
     affecter valLettre["Z"] <-- 26
     

Pour valider l'algorithme associé, le nom de l'exercice est colExcelEnNum.

2.2 D'un nombre chaine à une chaine

Ecrire un algorithme qui convertit un nombre entier strictement positif correspondant à un numéro de colonne en sa notation Excel $c$. On nommera respectivement $\mathtt{numCol}$ la variable d'entrée (numérique) et $\mathtt{colExcel}$ la variable de sortie (chaine de caractères).

Pour valider l'algorithme associé, le nom de l'exercice est numColExcelEnChaine.

5. Nombres premiers

Un nombre entier $n$ strictement positif est dit premier s'il ne possède que 2 diviseurs distincts, 1 et lui-même. En particulier, 1 n'est donc pas un nombre premier. Par contre 2, 3, 5 et 7 le sont. Ecrire un algorihme qui renvoie 1 si $n$ est premier et 0 sinon.

Modifier ensuite l'algorithme pourqu'il affiche tous les nombres premiers entre 1 et 99. On essaiera de reproduire l'affichage suivant en matrice (10,10) où seuls les nombres premiers sont affichés.

Cliquer  ici  pour générer l'affichage.

6. Nombres parfaits

Un nombre entier strictement positif est dit parfait s'il est somme de ses diviseurs sauf lui-même. Ainsi 6, 28 et 496 sont les 3 premiers nombres parfaits. Ecrire un algorithme qui calcule et affiche les 4 premiers nombres parfaits. On les nommera $\mathtt{parfait1}$, $\mathtt{parfait2}$, $\mathtt{parfait3}$ et $\mathtt{parfait4}$.

Pourquoi est-ce difficile de trouver les 100 premiers nombres parfaits ?

Pour valider l'algorithme associé, le nom de l'exercice est parfaits.

7. Décomposition de Lagrange et problème de Waring

D'après le théorème de Lagrange-Bachet, tout entier positif est somme d'au plus quatre carrés. Par exemple, $20 = 3^2+3^2+1^2+1^2$. Cette décomposition n'est pas forcément unique. Ainsi $20 = 4^2+2^2+0^2+0^2$. Ecrire un algorihme qui affiche toutes les décompositions en somme de quatre carrés de $n$.

Raffiner ensuite l'algorithme pour qu'il n'affiche que les décompositions non équivalentes par permutation.

Combien faut-il de cubes au minimum pour décomposer un entier ?

Il est possible de visualiser l'arbre des décompositions de $n$ = en cliquant après avoir donné une valeur à $n$.

8. Syracuse, premiers essais

La suite $(u_n)$ de Syracuse-Collatz d'un nombre $n$ = est définie par $u_0=n$ et $u_{n+1}=u_n/2$ si $u_n$ est pair, $u_{n+1}=(3*u_n+1)$ si $u_n$ est impair. Donner un algorihme qui à partir d'un nombre $n$ affiche les valeurs de sa suite de Syracuse-Collatz. On s'arrêtera lorsque $u_n$ vaut 1.

Cliquez et recliquez  ici  pour avoir des exemples de valeur de cette suite.

      $n$ =     ;   $(u_n)$ =  

9. Syracuse, suite et fin

On nomme longueur (ou "temps de vol") de Syracuse du nombre $n$ le nombre de termes de la suite de Syracuse-Collatz de ce nombre nécessaires pour obtenir la valeur 1. Donner un algorihme qui fournit les $p$ plus grandes longueurs de Syracuse pour des nombres entre 1 et 1 million. On pourra par exemple prendre $p= 10$.

10. Dénombrements

On s'intéresse ici à des dénombrements usuels. Si $E$ est un ensemble à $n$ éléments et $F$ est un ensemble à $p$ éléments, combien y a-t-il de bijections de $E$ vers $F$ ? et d'injections ? et de surjections ? On pourra se limiter à $n$ et $p$ entre 1 et 10.

 

 

   retour gH    Retour à la page principale de   (gH)