| |
Posté le 19 février 2021 - 07:26 |
Bonjour
Je veux entrer un nombre de plus de 50 chiffres pour la partie entière et 20 chiffres pour la décimale dans un champ 1 numérique puis dans un deuxième champ 2 numérique afin d'avoir un résultat final.
résultat final= Champ 1 * champ 2
mais cela n'accepte pas tous les nombres même si je spécifie 38 dans la partie complète et la partie décimale.
Merci d'avance de me donner une idée. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 939 messages Popularité : +53 (65 votes) |
|
Posté le 19 février 2021 - 10:58 |
Bonjour,
Voir le type Monétaire.
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
Posté le 19 février 2021 - 11:26 |
Merci de ton retour
Le type monétaire est de 23 |
| |
| |
| | | |
|
| | |
| |
Posté le 19 février 2021 - 13:10 |
Je veux entrer un nombre de plus de 50 chiffres pour la partie entière et 20 chiffres pour la décimale dans un champ 1 numérique puis dans un deuxième champ 2 numérique afin d'avoir un résultat final.
résultat final= Champ 1 * champ 2
mais cela n'accepte pas tous les nombres même si je spécifie 38 dans la partie complète et la partie décimale.
Donc, tu veux mettre 50 chiffres dans une zone qui est décrite comme maximum 38 et tu t'étonne que ca ne fonctionne pas? |
| |
| |
| | | |
|
| | |
| |
Posté le 19 février 2021 - 15:24 |
c'est déjà testé et ça n'a pas marché numérique est de(3866) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 892 messages Popularité : +227 (347 votes) |
|
Posté le 19 février 2021 - 18:22 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 348 messages Popularité : +93 (137 votes) |
|
Posté le 20 février 2021 - 00:30 |
Voroltinquo, reste plus qu'à faire ces algo en wlangage. Et d'utiliser les entier sur 8 octets |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 892 messages Popularité : +227 (347 votes) |
|
Posté le 20 février 2021 - 05:02 |
Les algos sont déjà là. Il lui suffit juste de les traduire
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 892 messages Popularité : +227 (347 votes) |
|
Posté le 20 février 2021 - 07:10 |
Ensuite, quand tu travaille sur des donnée de l'ordre de 10^50, les millièmes, tu t'en moque alors les 10^-20...
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Posté le 20 février 2021 - 08:07 |
Merci beaucoup de vos retours
Alors j'essaye d'appliquer (AB * CD) Algorithme Karatsuba
//Voila mon exemple pour 2 nombres (A et de 60 chiffres A est un numérique=123456789012345678901234567890123456789012345678901234567890 B est un numérique=998765432109876543210987654321098765432109876543210987654321 C est un numérique D est un numérique
R est un numérique=A *C * 10 * Exp(4)+ ( A * C + B * D - ( A - *(C - D))*10 * Exp(2)+C * D
Trace(R)
Mon problème je n'arrive PAS À appliquer la Karatsuba À mon CAS Vous pouvez m'aider svp
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 20 février 2021 - 08:57 |
hello, A noter qu'avec la bibliothèque logicielle GMP, il n'y a plus guère de limitations.
GNU MP, également appelée GMP, est une bibliothèque logicielle de calcul multiprécision sur des nombres entiers, rationnels et en virgule flottante. Voici par exemple les résultats de son utilisation dans windev pour 1 - une multiplication d'un flottant avec 50 chiffres significatifs et 20 chiffres en décimal 2 - une élévation de 49 à la puissance 20,30,35,100,200 3 - une boucle de 40 itérations de nombre = nombre*49
49 à la puissance 200 produit un résultat de 339 chiffres :
49^200 = 109450060433611308542425445648666217529975487335970618633541940751543906316349209002147856846968715280739995373528253861552495710170702637728891720852868384710440066743972862761169960663579079291058878933088274875698178024977088223396398265555596916473536792437134632739719389969690630523317113111727683195819839003492006097994729312240001
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Posté le 20 février 2021 - 09:38 |
Merci Jurassic Pork pour ton retour
Est ce que j'importe La bibliothèque GMP dans windev , vraiment j'ai pas bien compris votre message
C'est possible tu peux me faire un exemple dans windev
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 213 messages Popularité : +12 (12 votes) |
|
Posté le 20 février 2021 - 16:22 |
>49 à la puissance 200 produit un résultat de 339 chiffres
Un bon début pour une clé de chiffrage.
-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | |
| |
Posté le 22 février 2021 - 13:08 |
Bonjour jurassic
Lors de mon test il me demande l'installation de L'objet L'objet automation 'BedvitCom.BignumArithmeticInteger' n'est pas installé sur votre système.
J'essaye avec un ActiveX mais il n' a y a pas cet objet comment dois- je faire ?
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 22 février 2021 - 15:26 |
hello, Faq a écrit :
Bonjour jurassic Lors de mon test il me demande l'installation de L'objet L'objet automation 'BedvitCom.BignumArithmeticInteger' n'est pas installé sur votre système.
Attention là tu nous parles de la bibliothèque russe Bedvitcom accessible en objet automation, disponible ici : https://www.bedvit.ru/com/ C'est en russe il faut traduire 1 - Télécharger sur la page le fichier BedvitCom.zip ( le bouton est en haut à droite) 2 - Extraire les deux fichiers En supposant que l'on est sur un windows 64 bits : Si on a un projet Windev 32 bits il faudra utiliser la dll 32 bits du fichier zip Pour enregistrer la dll dans une invite de commande tapez :
c:\windows\SysWOW64\regsvr32.exe "BedvitCOM(x86).dll" Si on veut désenregistrer la dll tapez :
c:\windows\SysWOW64\regsvr32.exe /u "BedvitCOM(x86).dll"
Si on a un projet Windev 64 bits il faudra utiliser la dll 64 bits du fichier zip Pour enregistrer la dll dans une invite de commande tapez :
c:\windows\System32\regsvr32.exe "BedvitCOM(x64).dll" Si on veut désenregistrer la dll tapez :
c:\windows\System32\regsvr32.exe /u "BedvitCOM(x64).dll" Normalement maintenant les objets automations sont alors disponibles après enregistrement. Exemple d'utilisation : Avec ce code :
BigEntier est un objet automation "BedvitCom.BignumArithmeticInteger" a1,b1,c1 sont des octets a1 = 1 ; b1 = 2 ; c1 = 3 BigEntier>>BignumSet(a1, "12345678901234567890123456789012345678901234567890") BigEntier>>BignumSet(b1, "998765432109876543210987654321098765432109876543210987654321") BigEntier>>Multiply(c1,a1,b1) Trace( "12345678901234567890123456789012345678901234567890" + " X 998765432109876543210987654321098765432109876543210987654321 =") Trace(BigEntier>>bigNum(c1)) BigEntier>>BignumSet(a1,"49") pow est un entier = 60 BigEntier>>Power(c1,a1,pow) Trace("49^60 = " + BigEntier>>bigNum(c1))
BigFlottant est un objet automation "BedvitCom.BignumArithmeticFloat" BigFlottant>>SizeBitsSet(a1,512) BigFlottant>>SizeBitsSet(b1,512) BigFlottant>>BignumSet(a1, "1234567890123456789012345678901234567890.12345678901234567891") BigFlottant>>BignumSet(b1, "12345678901234567890.123456789") BigFlottant>>SizeBitsSet(c1,512) BigFlottant>>Multiply(c1,a1,b1) Trace("1234567890123456789012345678901234567890.12345678901234567891" + " X 12345678901234567890.123456789 =") Trace(BigFlottant>>bigNum(c1,10,100,".",1))
j'obtiens ceci :
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |