Algorithme de divisibilité par le ruban de Pascal

Computer ScienceAlgorithms and ProgrammingHard

Published:

Exemple:

Pour vérifier si $K = 296419750389$ est divisible par $7$ ou non, on suit la démarche suivante :

1) Commencer par aligner le nombre $K$ avec le ruban de $7$ en commençant par la droite :

$K = 296419750389$

$Ruban = 546231546231$

2) Calculer la somme des produits entre les chiffres de $K$ et les chiffres du ruban :

$S = 2*5 + 9*4 + 6*6 + 4*2 + 1*3 + 9*1 + 7*5 + 5*4 + 0*6 + 3*2 + 8*3 + 9*1 = 196$

3) Recommencer avec la somme obtenue $196$ :

$K = 196$

$Ruban = 231$

$S = 1*2 + 9*3 + 6*1 = 35$

4) Recommencer avec la somme obtenue $35$ :

$K = 35$

$Ruban = 31$

$S = 3*3 + 5*1 = 14$

5) Recommencer avec la somme obtenue $14$ :

$K = 14$

$Ruban = 31$

$S = 1*3 + 4*1 = 7$

6) Recommencer avec la somme obtenue $7$ :

$K = 7$

$Ruban = 1$

$S = 7*1 = 7$

On arrête le calcul puisque la somme $S$ devient stationnaire. La valeur finale de $S = 7 = D$, donc le nombre $K = 296419750389$ est divisible par $7$.

En disposant d'un fichier texte existant "$C:\Nombre.txt$" contenant des nombres binaires (un nombre par ligne), on se propose d'écrire un programme permettant :

- d'appliquer la règle de divisibilité du ruban de Pascal expliquée ci-dessus pour :

- placer chaque nombre binaire du fichier "$C:\Nombre.txt$" qui est divisible par $7$ suivit par son équivalent décimal en les séparant par "#" dans une ligne d'un premier fichier nommé "$C:\Div7.txt$"

- placer chaque nombre binaire du fichier "$C:\Nombre.txt$" qui est divisible par $13$ suivit par son équivalent décimal en les séparant par "#" dans une ligne d'un deuxième fichier nommé "$C:\Div13.txt$"

- d'afficher le contenu des deux fichiers "$C:\Div7.txt$" et "$C:\Div13.txt$".

Travail demandé :

1) Pour $D = 13$, donner les $4$ premiers nombres du ruban de Pascal.

2) Ecrire l'algorithme du programme principal en le décomposant en modules.

3) Ecrire l'algorithme pour chaque module envisagé.

N.B : l'élève n'est appelé à remplir le fichier "$C:\Nombre.txt$"

Animated Video Solution

The first half plays free, the full solution is in the app.

Step by Step Written Solution

1
Step 1

Salut iyed, nous allons résoudre cet exercice d'informatique qui porte sur la règle de divisibilité du ruban de Pascal.

Divisibilité par le Ruban de Pascal (D = 7 et 13)

2
Step 2

L'énoncé nous explique comment vérifier la divisibilité par un nombre D en utilisant un ruban de coefficients. D'abord, traitons la question 1 : donner les 4 premiers nombres du ruban de Pascal pour D égale 13.

Question 1 : Ruban pour D = 13

3
Step 3

Le ruban de Pascal est constitué des restes de 10 puissance i modulo D, en commençant par le rang zéro en partant de la droite.

$$R_i = 10^i \pmod{D}$$

Pour $D = 13$ :

4
Step 4

Pour i égale zéro, dix puissance zéro égale un. Un modulo treize égale un. C'est notre premier nombre.

$$10^0 \pmod{13} = 1 \pmod{13} = 1$$
5
Step 5

Pour i égale un, dix puissance un égale dix. Dix modulo treize égale dix.

$$10^1 \pmod{13} = 10 \pmod{13} = 10$$
6
Step 6

Pour i égale deux, dix au carré égale cent. Cent divisé par treize donne sept, et il reste neuf car treize fois sept égale quatre-vingt-onze.

$$10^2 \pmod{13} = 100 \pmod{13} = 9$$
7
Step 7

Enfin pour i égale trois, mille modulo treize donne douze. Car 13 fois 76 égale 988.

$$10^3 \pmod{13} = 1000 \pmod{13} = 12$$
8
Step 8

Les quatre premiers nombres du ruban pour treize sont donc 1, 10, 9 et 12.

9
Step 9

Passons à l'algorithme. Nous devons lire des nombres binaires, calculer le décimal, vérifier la divisibilité par sept et treize avec le ruban, et écrire dans les fichiers. Commençons par la structure globale.

Question 2 & 3 : Algorithmes

Programme Principal

The rest of this solution is on Solvi

8 more steps are locked. Watch the full animated, narrated solution for free.

Snap a photo, solve any question like this.

Download on the App Store Get it on Google Play

Free to download · First solutions are on us

100K+Questions solved daily
50K+Students learning
4.8 ★App Store rating

About This Question

Subject
Computer Science
Topic
Algorithms and Programming
Difficulty
Hard
Question Type
Open Ended

Solve any question in seconds

Snap a photo and AI explains it step by step with voice and animation.

Download on the App Store Get it on Google Play
Solvi
The full solution is in the appFree to download · First solutions are on us
Get