Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#51 Re : Programmation » divisions de grands nombres » 06-02-2018 14:28:00

J'ai écrit 500 chiffres et 500 itérations en fait c'est 500 chiffres et 100 itérations  et temps d'exécution un peu plus de 1 seconde

CORDIALEMENT.

#52 Re : Programmation » divisions de grands nombres » 06-02-2018 14:01:33

Le programme qui effectue une multiplication de deux nombres de (500 chiffres chacun) telle que chaque nombre 
est généré aléatoirement (au moyen de l'instruction "random" à chaque itération) pour un nombre d'itérations égale
à 500 s'effectue en 2 secondes . je suppose que si l'on exécute avec python le temps serait certainement plus faible
J'aimerai bien savoir dans cas ce temps d'exécution?

Cordialement.

#53 Re : Programmation » divisions de grands nombres » 06-02-2018 13:49:29

Bonjour yoshi

Merci de votre réponse et je suis convaincu qu'en programmant avec PYTHON j'aurai la réponse que je veux
serait immédiate. Pour poursuivre je commence par répondre à vos six questions :

- quotient décimal ou entier ?  je cherche à obtenir un quotient avec virgule tel que le total de ses chiffres soit au moins
                                         égal à celui du dividende;
- Dividende à virgule ou pas ?  le dividende serait un entier;
- diviseur à virgule ou pas ?  en fait les deux cas mais comme cela peut se faire avec virgule , elle se fera donc sans;
- qu'est-ce que tu appelles "vecteurs?" : Comme vous l'avez noté le nombre  par exemple   47821  serait décomposé
                                                       en cinq nombres pour obtenir (4 , 7 , 8 ,2 ,1 ) ou encore mieux
                                                       en en deux composantes (0004 , 7821)
- tu t'intéresses à la seule division ? Enfin c'est la seule qui me pose problème en utilisant le turbo pascal 7 ;
- quel est le grand nombre de chiffres des nombres que tu veux traiter ? : le plus grand nombre que je pense avoir affaire
                                                                                                    possède au plus 1300 chiffres;


Maintenant en ce qui concerne les opérations qui sont nécessaires dans mon programme principal (qui pour l'instant est
loin d'être finalisé ??!!) il faut exécuté des multiplications , des additions (soustractions) , des racines carrés  et
bien sur des divisions. Dans les premiers temps j'ai décidé de travaillés avec des nombres de 800 chiffres et si cela marche
j'aurai affaire à des nombres de 1300 chiffres. Au fait j'essai de voir si ma méthode permet de décomposer le RSA 400 qui
comme vous le savez certainement possède 400 chiffres.

  Pour toutes ces opérations (je passe sous silence l'addition et la soustraction que tout le monde peut faire) voici comment
je procède pour la multiplication :
   supposons que l'on a à calculer le produit Prod=pq  avec p à n chiffres et q à m chifres . Une fois que l'on a introduit p
sous la forme de vecteurs c'est  à dire
  *  p(i) , i=1 à n+m     où p(i)=0 pour i variant de n+1 à n+m  , p(i) le ième chiffre de p pour i variant de 1 à n
  *  q(j)=0 pour j variant de m+1 à n+m et  q(i) représente le j ème chiffre  du nombre q
       ( dans le deux cas le comptage démarre à partir des chiffres des unités)
on aura comme partie principale de cette multiplication le moyen suivant (adaptable pour tout logiciel de programmation)

    s=0
pour  i variant de 1 à n+m  pour j variant de 1 à i  begin
              s=s+p(i-j+1)*q(j)  ;
              prod(i)=s mod 10 ;
              s=s div 10  ;
             end;

il suffit d'afficher pour se convaincre que cela marche. En fait cette partie du programme n'est que la traduction
de la multiplication à la main tout en utilisant le modèle de la division de deux polynômes par la méthode d'O.R.

Pour effectuer la divisions sous les contraintes que j'ai cité ( diviseur impaire non divisible par 5 , si la division
se fait telle que le reste est égal à zéro et si le dividende est supérieur au diviseur) on exécute un programme
"inverse" à celle de la multiplication.

Cordialement.

#54 Re : Programmation » divisions de grands nombres » 06-02-2018 10:33:15

Il faut aussi corriger : "diviser un nombre de 3000 chiffres par un nombres de 2000 chiffres"  et non l'inverse.

Cordialement.

#55 Re : Programmation » divisions de grands nombres » 06-02-2018 10:26:24

je voulais écrire " le temps de calcul ne dépasse pas le temps d'affichage"

Cordialement.

#56 Re : Programmation » divisions de grands nombres » 06-02-2018 10:24:19

Bonjour

" a) des entiers signés au format LongInt, au plus égaux à 231 - 1 = 2 147 483 647 , et
b) des variables de type Comp, théoriquement des entiers signés bornés par 263 - 1 ~ 9.22E18 er permettant des calculs en précision absolue sur 18-19 chiffres; ils sont cependant traités et affichés comme des réels, et il n'est pas possible d'effectuer directement sur eux les opérations de l'arithmétique (a DIV b et a MOD b)."

Oui M. Wiwaxia vous avez parfaitement raison mais ceci dit je peut obtenir le produit d'un nombre de 2000 chiffres par un nombre
de 3000 chiffres en en une fraction de seconde en utilisant le turbo pascal. Et ce calcul peut se faire (une fois introduit ces deux
nombres ) au moyen d'un programme composer de cinq lignes pour le calcul et de trois ligne pour l'affichage.
Pour une division d'un nombre de 3000 chiffres par un nombre de 2000 chiffres (à titre d'exemple ) le programme principal pour
effectuer une telle division (si le diviseur a comme chiffre des unité l'un des chiffres 1 , 3 ,7 ,9 et le reste de la division est
un zéro )  ne comporte qu'une dizaine de lignes et le temps de calcul dépasse largement celui de l'affichage.

Cordialement.

#57 Re : Programmation » divisions de grands nombres » 06-02-2018 10:04:43

Bonjour,

Je viens de lire vos réponse et je crois avoir compris que vous avez des doutes sur ce que j'ai écrit .
je voudrai bien (et j'y tiens!!!) que vous me confirmez cela s'il y a bien des doutes de votre part concernant
mes précédentes affirmations?
Cordialement.

#58 Re : Programmation » divisions de grands nombres » 05-02-2018 21:41:40

Une autre contrainte que j'ai oublié de citer : ma méthode fonctionne seulement si le reste est nul .

CORDIALEMENT.

#59 Re : Programmation » divisions de grands nombres » 05-02-2018 21:38:24

bonjour,

merci de votre réponse. En turbo pascal un entier ne dépasse pas les 40000 (donc tout juste quelques chiffres) . Pour effectuer
des opérations de très grands nombres ( par exemple de l'ordre 101000) en turbo pascal j'introduit les nombres sous forme
de vecteurs . Par exemple multiplier un nombre de 3000 chiffres par 2000 chiffres cela se fait presque instantané une fois les deux
nombres sont introduits.  Pour ce qui est de la division il en est de même lorsque le diviseur a comme chiffre des unité un chiffre impaire différent de 5 : une telle division de tels grands nombres se fait aussi presque instantanément . Mais si ces dernières conditions n'ont pas lieu ma méthode tombe à défaut et donc je souhaite savoir s'il y a un algorithme qui m'assure toute division sans les contraintes que
j'ai cité .

Cordialement.

#60 Re : Programmation » divisions de grands nombres » 05-02-2018 18:24:34

j'entends par " grand nombre " une nombre ayant des centaines de chiffres.

cordialement.

#61 Re : Programmation » divisions de grands nombres » 05-02-2018 18:22:44

bonjour,

En fait je souhaite écrire un programme en turbo pascal pour effectuer des divisions entre de très grands nombres
tout en obtenant des quotients possédant les mêmes nombres de chiffres que le dividende (en comptant bien sur
ceux situés après la virgule)

Cordialement.

#62 Re : Programmation » divisions de grands nombres » 05-02-2018 16:16:36

je voulais dire la faire au moyen de la potence est très coûteuse!!!!!

cordialement.

#63 Programmation » divisions de grands nombres » 05-02-2018 16:14:04

hgaruo1951
Réponses : 43

bonjour ,

tout d'abord je m'excuse de reprendre un des vieux problèmes: comment effectuer une division entre deux grands nombres
en ayant dans le détail les chiffres du quotient et du reste !!!!!
merci d'avance pour toute réponse.

cordialement.

NB/ je pense que faire (et donc programmer ) à la main cette opération est très coûteuse et donc ce que je cherche
c'est une autre démarche.

#64 Re : Café mathématique » congruences » 28-09-2017 11:31:50

Re ,

et vous avez certainement remarqué que je ne réponds même pas à un certain p....

Cordialement.

#65 Re : Café mathématique » congruences » 28-09-2017 11:28:16

Bonjour ,

Là M. yoshi vous avez parfaitement raison et je vous prie de croire à ce que je dis. Si en tant
qu'enseignant vous m'attribué un 0.5 / 20 et bien je ne dirai pas un mot car pour le programme
que je donne dans cette vidéo il est loin d'être moyen et la programmation je reconnais ce n'est pas
mon DADA. Ce que vous nous présentez est très bien et je dirai à mes étudiants qui s'intéresseraient
à la programmation de regarder ce que vous avez réalisé en ci peu de temps. Ce que surtout j'ai voulu
présenté c'est que  mon programme est très simples et le programme à cet effet ne comporte
que quelques instructions. De plus ce que je démontre (même avec comme vous l'avez noté avec raison avec
des goto à la très, très ancienne!!! ) on peut résoudre le problème de l'inverse d'un nombre modulo A et aussi
résoudre facilement le problème de la recherche d'une solution particulière des équations diophantiennes
linéaires à plusieurs variables , solutions particulières très utiles à la résolution des équations pour lequel
le théorème des restes chinois est vérifié. A cette étape une question se posera tout naturellement :
Comment établir la solution générale d'une équation diophantienne linéaire à plusieurs variables.
Cette question vous admettrez qu'elle mérite qu'on lui donne une réponse. Attention les solutions présentées
dans tel ou tel site  ont généralement l'inconvénient suivant: les variables s'expriment en fonction de plusieurs
paramètres sauf si l'on traite le problème par la voie matricielle et même cette dernière devient délicate si le nombre
de variables est supérieure à quatre. Par contre en appliquant mon schéma en plusieurs étapes on arrivera
à démontrer que chacune des variables s'exprimes de façon linéaires en fonction d'un seul paramètre.
Cordialement.

#66 Re : Café mathématique » congruences » 27-09-2017 17:55:16

Re , pour le lien  j'avais un doute et pourtant celui qui a suivi marche cliquer ici

#67 Re : Café mathématique » congruences » 27-09-2017 17:41:06

Re ,

lire  Ui(x) et non  Ui(x)  avec   i qui est un indice muet.

#68 Re : Café mathématique » congruences » 27-09-2017 17:39:12

Bonjour ,

Je n'ai jamais dit que mon schéma est révolutionnaire. J'ai toujours précisé qu'il en
est un moyen qui permet de synthétiser l'algorithme d'Euclide. Je ne fais que suivre
un autre cas similaire à ma position vis à vis de mon schéma . En effet le meilleur
exemple est celui concernant le schéma de HORNER-RUFFUNI ( autrefois on disait
simplement HORNER!!). Ce dernier schéma , vous le savez certainement n'est autre
chose qu'une méthode synthétique de la division euclidienne. Oui car les nombre
du tableau de RUFFINI on les retrouve dans la division euclidienne  lorsque qu'une telle
division entre deux polynômes se fait sous la potence.

Vous dites , M. Freddy,  que vous avez saisi les opérations de ce schéma et bien je
regrette de vous dire que vous n'avez découvert que le 1/5 ème de ce schéma et
son utilisation peut servir à d'autre fins ce que l'on ne peut faire par la voie classique.

Par exemple je vous affirme qu'avec ma méthode combinée avec la méthode d'OR je peux
résoudre toute équation polynomiale de la forme

     Ai(x) Ui(x)=B(x)  avec  i=1 à n

beaucoup plus facilement que ce que d'autres préconisent.
Cordialement.

#69 Re : Café mathématique » congruences » 27-09-2017 12:38:10

Re ,

tout le monde à compris que je voulais écrire 2584

cliquer ici

Cordialement.

#70 Re : Café mathématique » congruences » 27-09-2017 12:36:59

Bonjour ,

Vous m'obligez donc à vous répondre : non monsieur vous commettez encore
une erreur il suffit de faire  2584+(-533) et vous avez le résultat . je vous laisse
approfondir la question pour ne plus faire de telles erreurs. Quant à la programmation
de mon schéma je prie de me croire que j'ai une programme que vous pouvez le
vérifier ici.

Cordialement.

N.B:  même si vous dites " notre ami " de façon il est (presque!!) claire  ironiquement
c'est tout de même beaucoup mieux que certains de vos interventions précédentes.

#71 Re : Café mathématique » congruences » 25-09-2017 17:00:48

RE ,

Pour indication seulement (et qui n'a aucun lien avec le sujet) le nom d'OURAGH est celui avec lequel
Saint Augustin est né.

Cordielemnt.

#72 Re : Café mathématique » congruences » 25-09-2017 16:56:01

Re,

Tout d'abord j'espère que le présent texte apparaîtra et que vous ne lui ferrez pas subir
la même suppression que celui que j'ai précédemment envoyé et qui avait suivi votre suggestion.
Mes citations peuvent servir autrui je le pense et je suis certain. Ceci dit j'affirme aux uns et aux autres
que je peux justifier tout ce que j'ai écrit sur le sujet. Oui vous avez parfaitement raison le schéma que
j'utilise porte mon nom comme , d'ailleurs ,  vous l'avez certainement remarquer mon pseudo sur ce site.
Je le nie pas.
Quand aux

"tu peux les remettre dans ta poche.."  ,   "tu peux aller voir ailleurs si l'herbe y est plus verte"

Je préfère suivre (oui encore une citation! ) le proverbe qui dit
" C'est mal avec le mal mais c'est pire sans mal".

Ah j'allais oublié pour le dernier exercice que vous n'avez pas résolu comme il se doit
je vous donne  ( à vous et surtout aux "forumeurs" ) la solution :

.....91.........11.......3......2........1
......0..........-8.....-3.....-1..........
......4.........-33......4.....-1.......1

et donc l'inverse de 91 mod 11=4   (et donc non pas 7.)
Si au lieu d'un nombre positif sous le "91" on avait obtenu un nombre négatif h
il suffit de faire 11+(h) pour avoir l'inverse.

Si votre question , au départ était
" J'aimerais que tu justifies  la raison théorique pour laquelle tu multiplies ensuite chaque nombre de la 3e ligne par le quotient de la 2e ligne qui le précède en diagonale et que tu ajoutes le résultat précédent de la 3e ligne..."

je vous assure que j'aurai répondu positivement sans aucune hésitation et je ne pouvais pas me lancer dans cette
voie ne sachant pas que si dans le site on connaissais cela ou non . Bon je vous est lu et je vais voir ailleurs
là ou les mathématiques peuvent pousser sans problèmes ou il n'y aurai aucune herbe .

Cordialement.

#73 Re : Café mathématique » congruences » 25-09-2017 12:04:11

Re,

     "  fausses naïves demandes d'aide et un peu de flatterie au passage. "


Et si j'ai raison de tels propos venant d'un maître sont vraiment regrettables ;

#74 Re : Café mathématique » congruences » 25-09-2017 11:58:30

Re ,

Pour ne pas vous perdre dans tels ou tels considérations je vous affirme que les tableaux
que vous avez obtenus sont corrects et la solution est même évidente !!!!!!!

Cordialement;

#75 Re : Café mathématique » congruences » 25-09-2017 11:52:40

Bonjour ,

Non ce n'est pas comme cela  que doit être exécuté le schéma . Alors puisque vous posez
le problème je vous laisse chercher d'abord votre erreur et je vous corrigerai par la suite
(ceci dit je suis persuadé que vous aller trouver l'erreur!!!!!!!!!

Cordialement.

Pied de page des forums