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).

#1 05-02-2018 16:14:04

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

divisions de grands nombres

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.

Hors ligne

#2 05-02-2018 16:16:36

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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

cordialement.

Hors ligne

#3 05-02-2018 17:35:05

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : divisions de grands nombres

Bonjour,

en ayant dans le détail les chiffres du quotient et du reste !!!!!

Ça demande une précision :
soit à effectuer
[tex]37589541256987498752651 \div  12459875215[/tex]
Ceci te suffit-il :
[tex]37589541256987498752651 = 12459875215 \times 3016847328594 +157354941[/tex] ?
Ou veux-tu, comme avec la potence, le détail des calculs sous le Dividende ?
En outre, veux-tu une une division euclidienne (D, d, q, r entiers) ou veux-tu utiliser des virgules ?

Ensuite, quel langage de programmation voudrais-tu utiliser ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#4 05-02-2018 18:22:44

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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.

Hors ligne

#5 05-02-2018 18:24:34

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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

cordialement.

Hors ligne

#6 05-02-2018 21:00:35

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : divisions de grands nombres

Salut,

Combien de chiffres peuvent avoir les entiers en Turbo Pascal ?
En Python, pour travailler avec des nombres entiers, je ne suis limité que par la quantité de RAM de ma machine,
Quotient et restes finaux te suffisent-ils ou

veux-tu, comme avec la potence, le détail des calculs sous le Dividende ?

.
Si tu ne veux que quotient et reste, pour les chiffres décimaux, après la division euclidienne, on peut prendre le reste entier, lui ajouter (par exemple) 50 zéros et recommencer une division euclidienne et rassembler les morceaux après, en mettant une virgule au bon endroit.
Il est bien évident que ce quotient décimal ne pourra pas être utilisé en tant que nombre : sa représentation "décimale correcte n'y survivrait pas, mais comme une chaîne de caractères...
En Python, j'ai une instruction qui me permet d'obtenir, quotient et reste en une seule fois :

Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> q,r=divmod(37589541212459875215569874987526513758954121245987521556987498752651,5215569874987526513758954121245987521556987498752651)
>>> q
7207178144181180
>>> r
4903035585506820859138204524075340493012703749444471
>>> 4903035585506820859138204524075340493012703749444471<5215569874987526513758954121245987521556987498752651
True

Mon dividende a 68 chiffres, le diviseur 52.
J'ai vérifié que j'ai bien r<d...

La division est instantanée...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#7 05-02-2018 21:38:24

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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.

Hors ligne

#8 05-02-2018 21:41:40

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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

CORDIALEMENT.

Hors ligne

#9 06-02-2018 08:02:20

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : divisions de grands nombres

Bonjour,


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'introduis les nombres sous forme
de vecteurs .

Peux-tu montrer comment procède ton algo ? en le documentant quand même un peu parce que même si j'ai des notions de C, C++ et que j'ai beaucoup programmé en BASIC, le TP est assez différent...
Vecteurs ? Au lieu de stocker 112233445566778899 par exemple tu stockes (1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9) ?

Je ne crois pas qu'un algo tel que tu le cherches, il va falloir se retrousser les manches... C'est pour ça que je demande à voir comment tu fais exactement, pour repartir d'une base existante et pas tout refaire...
Il me revient qu'avec le BASIC de mon Amstrad CPC 6128 cadencé à 4,77 Hz et 128 ko de RAM, j'avais réécrit les 4 opérations + la racine carrée : je calculais le nombre d'or avec 100 décimales en... 1 h !

Ça date des années 70, la préhistoire de ce qu'on appelle maintenant le PC. Il matche encore, il faut que je trouve le temps de jeter un œil pour voir si je peux mettre la main pour m'en inspirer et récrire éventuellement l'Algo en Python, la documenter et te laisser le soin de l'adapter en Turbo Pascal...

Le temps, c'est ce qui va me manquer d'ici le 15 mars : j'ai la revue trimestrielle de 20 pages de mon association à rédiger (et aussi trouver les sujets) puis finir mon programme de routage des 250 n°s. Et le routage, ce n'est pas de la tarte : comprendre les mécanismes d'affections des adresses aux différents bureaux distributeurs, c'est la dernière chose qui me manque. Je ne trouve pas la doc de la Poste, désolé pour eux, très claire sur le sujet...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#10 06-02-2018 09:43:17

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : divisions de grands nombres

Re,

En allant chercher mon pain, il m'est revenu un souvenir, la convention CLE (Code à Large Echelle) pour écrire les nombres...
Jette un œil, peut-être que ça va t'inspirer une idée...
http://www.bibmath.net/forums/viewtopic.php?id=5011
http://www.bibmath.net/forums/viewtopic.php?id=7077
http://ldb2007.free.fr/Seconde2/fiches_ … ection.pdf
https://www.mimaths.net/IMG/pdf/tm4_spe_1314-2.pdf

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#11 06-02-2018 09:52:39

Wiwaxia
Membre
Lieu : Paris 75013
Inscription : 21-12-2017
Messages : 409

Re : divisions de grands nombres

Bonjour,

Avec le Turbo Pascal 7 on dispose entre autres:
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).

Il est possible de travailler en précision absolue sur de très grands nombres, à condition de les exprimer sous forme de polynômes:
N = a0  + a1*B + a2*B2 + ... + an*Bn
et que les produits (ai*aj) ne dépassent jamais les limites précédentes.
On sera donc amené à choisir l'une des bases de numération suivantes: B = 104 (dans le cas de tableaux de LongInt) ou B = 109 si l'on prend les Comp).
L'algorithme conduisant au quotient et au reste de la division euclidienne ne sera pas le même dans l'un ou l'autre cas, pour la raison évoquée plus haut, et il faudra recourir à la programmation dynamique en raison du grand espace mémoire des variables.

L'utilisation de Virtual Pascal serait sous cet aspect beaucoup plus souple.

On doit trouver dans d'anciens livres d'exercices de TP des exemples de programmes traitant de problèmes apparentés. Je me rappelle de la recherche d'une racine carrée avec 10000 chiffres.

Hors ligne

#12 06-02-2018 10:04:43

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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.

Hors ligne

#13 06-02-2018 10:24:19

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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.

Hors ligne

#14 06-02-2018 10:26:24

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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

Cordialement.

Hors ligne

#15 06-02-2018 10:33:15

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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

Cordialement.

Hors ligne

#16 06-02-2018 11:14:48

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : divisions de grands nombres

Bonjour,

Je viens de lire vos réponse et je crois avoir compris que vous avez des doutes sur ce que j'ai écrit .

Des doutes ? Quels doutes ? Sur quoi ?
Non, tu viens, tu soumets un problème - intéressant au demeurant - j'y réfléchis comme toujours avant de me lancer (vieille habitude d'ex prof de Maths et joueur d'échecs), j'essaie d'être sûr de ce que tu veux exactement faire.
J'ai quelques idées, mais pour choisir, je veux être sûr d'avoir pesé avantages/inconvénients, surtout que tu disposes déjà d'un programme performant mais incomplet...
Je ne connais pas le Pascal...
Je demande à voir ton code afin de savoir si je peux m'inspirer de ce que tu as déjà fait (on gagnerait du temps) pour faire ça en Python et te le proposer - bien documenté - pour que tu puisses décider si tu peux l'adapter...

Je te pose donc des questions que je précise davantage :
- quotient décimal ou entier ?
- Dividende à virgule ou pas ?
- diviseur à virgule ou pas ?
- qu'est-ce que tu appelles "vecteurs" ?
- tu t'intéresses à la seule division ?
- quel est le grand nombre de chiffres des nombres que tu veux traiter ?

Ta réponse à wiwaxia, m'inspire une autre question :

quels sont les plus grand nombres sur lesquels tu puisses faire a div b (a//b en Python quotient entier) et a mod b ? Ça très important pour savoir si l'idée qui m'est venue est jouable question temps de travail...

Python me donne instantanément :
[tex]2^{63}-1 = 922 3372 036 854 775 807[/tex] bien trop petit...

Et avec ce choix arbitraire de nombres :
>>> a=6**4251+5
>>> b=7**2453+1
>>> len(str(a))
3308
>>> len(str(b))
2074
>>> a//b
78609172737418289083686600953330129546080384096023626977680130562619646996376247228719884305967664754188554538923144632055969124182047838232982310959070406426144727235514389238440890726861991833638787549650736780795291478501930566405413157535629546965814932094274818301558631653991421265922566333913746781989262060613735552674960245239991518885360936368560163697198501432141426906041430673708688103791045449762652736835439144540327213370739952401875650784562167712669106186787874214755307540562499912368912965537534703414953198157610824604147924795577605862750920601154462327163911015109170105212260596796670143396602803204352726402063271235214959595068540894422769077187137717204846080891890426597006385114055688241519362328855322703043474439837408780337442541440136339630500342998727251047112018041563728190886903444247057482144055056339363128162623513701866472203207747611860784707323977652127182002027382599433243560232815961873622580818401421717688371210945580955539354066118255113537063957556259757779096723960922221615493584276283387545233017545232635258652331620857535414488531038463067437885270897818337978758340802670746615859487305877515363990789036157229767483396752500369549422423965096808720171080055943948858135144743980
>>> a%b
892105626430367941904143674686006035519059116417893542813337924644983448795340889361956349876501036722136837505942886400282463383275341913432582677521371702999311915997302903535481486066555398596350575086806970799245021528583160097147741434638393333934136936184569764007164799849784262249373151841407250991589770063510109474672807614691777330232479865883807086639090894297465745586681183690395333309410638733787346740116932951113824802637707150006092964188218380429132542445331206447303978242145352614093425419043254381323102992345748127240669897990762119756372597110440103667275624852612114736997764816652536935577823293652582413813834143318194006705193035910764726727306530678219938642465025292331373923402324262331544745855520893297310715803480166977665271209539374021924211416114353337096356378329029018228722392323555038217256347426474687953495918519359815782996924105235112032199898208854086899707874314232603243567919047184056838850003613187842767100208802551704708501876310259142851522459344934860349726684678318545621655269979530876411964774365583667827406167062298413391750064773662874142129486362868837312568358022117353901234988842699181988173031705366527043761005169008829536672256984369048630039184584507544161689109831358970584785334141715697650696893537879310184915080056050245691376087539830815397269767560663773023081380963350000062887767240476015266758226264475685340126501780134642903548874682888515606120987549175837636951077550730299760019980663615965807387075895582832218943639292296576691620305956855401751399264203210301476736083041851430586777088508066288148311584441389303542986000925342504374821469259801223286267180246560733312421398304541444081806036281441559649236633851032633330251985759825765130899912913716759381348329153462720557972576633779941932354309258246496989673487822355805626136202429050505197187142604235759109447521411594905513793941285331269853973891042109637771401049389222478295326709354896046090499446487959034769466124320877696777142471756190220614274139385082407710466794507080545093962243532781718258926737890565384112421
(Le reste a 2073 chiffres)

3300 chiffes par 2074, ça colle avec ton cahier des charges, donc pour mes essais, je pourrai repartir de ces deux nombres...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#17 06-02-2018 12:02:22

Wiwaxia
Membre
Lieu : Paris 75013
Inscription : 21-12-2017
Messages : 409

Re : divisions de grands nombres

hgaruo1951 a écrit :

... Oui M. Wiwaxia vous avez parfaitement raison mais ceci dit je peux obtenir le produit d'un nombre de 2000 chiffres par un nombre de 3000 chiffres 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 composé de cinq lignes pour le calcul et de trois lignes pour l'affichage ...

Avec Python ou Maxima, l'affirmation ne poserait aucun problème ... Mais avec Turbo Pascal (et pire encore version 5.5, puisque tu sembles ne pas connaître les entiers longs), franchement non !
A moins d'un énorme malentendu, volontaire ou non ...

hgaruo1951 a écrit :

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

La division est encore plus difficile à coder, et son exécution plus longue.

Je ne doute pas que tu aies pu rédiger un programme; mais qu'il se réduise à cinq lignes de code, cela ressemble fort à de la prestidigitation !

hgaruo1951 a écrit :

... 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 ...

Le programme principal peut se réduire à l'appel d'une procédure

BEGIN
  P1
END.

laquelle peut dissimuler cinq ou dix pages de code source !

Peut-on connaître ce code génial ? Je suis tout à fait preneur ...

Hors ligne

#18 06-02-2018 13:06:19

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : divisions de grands nombres

Ami wiwaxia,

Tu as le droit d'être étonné... mais là franchement, tu affiches un scepticisme qui risque de heurter hgaruo1951 inutilement...
Après tout pourquoi ne serait-ce pas exact ?
[HS]
Tiens,
dans le domaine des choses qui paraissent impossible, je te pose une colle :
es-tu capable en une douzaine lignes en tout et pour tout, sans lexique de verbes, de déterminer si un verbe en ir que tu fournis est du 2e ou du 3e groupe ?

Moi, oui. J'avais mis 3 mois pour trouver l'algorithme quand j'avais écrit mon programme de conjugaison avec le BASIC de l'Amstrad CPC 6128 dans les années 70... programme que j'ai récrit par la suite en Turbo Basic et que j'ai l'intention de porter sous Python (c'est en cours)  avec une interface graphique comme l'original.
[/HS]

Bon je vais creuser mon idée à base de découpage en attendant réponse à mes questions...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#19 06-02-2018 13:49:29

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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.

Hors ligne

#20 06-02-2018 14:01:33

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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.

Hors ligne

#21 06-02-2018 14:28:00

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

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.

Hors ligne

#22 06-02-2018 16:13:41

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : divisions de grands nombres

Salut,

J'ai des tas de plantages...
Questions
si p=3457 et q =982
P=[3,4,5,7,0,0,0], [7,5,4,3,0,0,0]ou autre chose ?
En Pascal
tes boucles vont de 1 à n inclus ?
En Python, c'est de 0 à n exclu soit de 0 à n-1...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#23 06-02-2018 17:04:30

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

salut

il faut introduire  P=[0,0,0,3,4,5,7]  et  Q=[0,0,0,0,9,8,2]
i va de 1 à 7    et j va  de 1 à i ;  (n+m)=7

bien sur on a par exemple p(1)=7  et q(2)=8

Si vous faites i variant de 0 à 6 vous poserez n+m-1 au lieu de n+m et dans ce cas on notera p(0)=7  et  q(1)=8

cordialement.

Dernière modification par hgaruo1951 (06-02-2018 17:11:33)

Hors ligne

#24 06-02-2018 18:17:50

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : divisions de grands nombres

Re,


1. En Python,  "p et P" sont deux variables différentes
2. p= 3457 est un nombre entier, P=[0,0,0,3,4,5,7] est une liste (une forme de tableau).
    Si je cherche la valeur du i_ème élément, soit l'élément n° i-1, avec i=3
    Soit P(2), je trouve 0
    Le  7, c'est P[6].
    C'est pourquoi, je t'ai proposé P= [7,5,4,3,0,0,0] et Q=[2,8,9,0,0,0,0] : ainsi, j'ai P[0]=7 et Q[1]=8...
Nanti de ces infos, je vais essayer comme ça...
J'ai programmé quelque chose, mais vu le nombre de lignes ce ne sera pas performant, d'autant que le Pascal est compilable, lui...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#25 06-02-2018 18:31:57

hgaruo1951
Membre
Inscription : 13-09-2017
Messages : 104

Re : divisions de grands nombres

salut ,

et si wiwaxia essaie avec maxima  les indications pour la multiplication que j'ai proposées pour avoir une idée
de temps d'exécution pour les 100 itérations que j'ai signalé .

cordialement.

Hors ligne

Pied de page des forums