[HELP] programme en c++ "multiplications"
16 posts
• Page 1 of 2 • 1, 2
[HELP] programme en c++ "multiplications"
Bonjour, je voudrais calculer un nombre premier avec plus d' 1millions de chiffres (un pari avec un pote....)....
pour ça quoi de plus plus simple que la formule P(n)=n!+1 X)
Mais pour faire un nombre avec plus d' 1 millions de chiffre je dois faire des GROOOSSSEEESS multiplications !
Donc soit il existe déjà un programme pour ceci sur Windows
soit je dois le programmer en c++ !
si je dois le programmer :
-quel technique le conseiller vous pour programmer la multiplications de deux chaîne de caractère en c++ ? genre "12"*"50"="600 ?
-on peux tester la longueur d'une chaîne d'1 millions au moins de caractère ?
-que me conseiller vous ?...4
merci d'avance
pour ça quoi de plus plus simple que la formule P(n)=n!+1 X)
Mais pour faire un nombre avec plus d' 1 millions de chiffre je dois faire des GROOOSSSEEESS multiplications !
Donc soit il existe déjà un programme pour ceci sur Windows
soit je dois le programmer en c++ !
si je dois le programmer :
-quel technique le conseiller vous pour programmer la multiplications de deux chaîne de caractère en c++ ? genre "12"*"50"="600 ?
-on peux tester la longueur d'une chaîne d'1 millions au moins de caractère ?
-que me conseiller vous ?...4
merci d'avance
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes
megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes
megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes
-
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1016
- Images: 1
- Joined: 16 Feb 2012, 18:39
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Fac de maths
Re: [HELP] programme en c++ "multiplications"
nikitouzz wrote:Donc soit il existe déjà un programme pour ceci sur Windows
Si tu optes pour la solution toute faite, regarde parmi (sans ordre):
-MPIR
-BigInt
-GMP
-
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2955
- Images: 3
- Joined: 10 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
Re: [HELP] programme en c++ "multiplications"
J'ai regarder GMP mais incapable de l'installer !
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes
megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes
megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes
-
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1016
- Images: 1
- Joined: 16 Feb 2012, 18:39
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Fac de maths
Re: [HELP] programme en c++ "multiplications"
Non, programme-le !
C'est un super bon exercice...
C'est un super bon exercice...
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: [HELP] programme en c++ "multiplications"
Avec GMP / MPIR, il est en effet trivial de gérer des nombres qui font des millions de chiffres.
Programmer soi-même ce genre d'algorithmes prend plus de temps, naturellement ^^
Sauf rare exception (certaines classes précises de nombres tels que les nombres de Mersenne 2^p-1 et quelques autres), il est impossible de déterminer à coup sûr la primalité d'un nombre d'un million de chiffres. Seuls les algorithmes probabilistes comme Rabin-Miller donnent une réponse "probablement premier".
Programmer soi-même ce genre d'algorithmes prend plus de temps, naturellement ^^
Sauf rare exception (certaines classes précises de nombres tels que les nombres de Mersenne 2^p-1 et quelques autres), il est impossible de déterminer à coup sûr la primalité d'un nombre d'un million de chiffres. Seuls les algorithmes probabilistes comme Rabin-Miller donnent une réponse "probablement premier".
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6865
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: [HELP] programme en c++ "multiplications"
mais on peux generer facilement des nombre premier de N chiffre N→oo avec n!1 entre autres ! comment utiliser GMP ? ou MPIR ?
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes
megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes
megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes
-
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1016
- Images: 1
- Joined: 16 Feb 2012, 18:39
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Fac de maths
Re: [HELP] programme en c++ "multiplications"
nikitouzz wrote:comment utiliser GMP ? ou MPIR ?
Il faut réussir à compiler la lib
-
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2955
- Images: 3
- Joined: 10 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
Re: [HELP] programme en c++ "multiplications"
Oui, ou encore, programmer soi-même...
Ce n'est pas la mer à boire, franchement (du moins, si l'on se contente de l'approche "triviale")
Il faut juste gérer des listes d'entiers de taille fixe (par exemple limités à 10^18, si tes entiers sont codés sur 64 bits) et programmer les 4 opérations avec gestion des retenues, etc...
Je tiens quand même à te signaler que ta fameuse formule P(n)=n!+1 ne fournit pas forcément un nombre premier !! Elle fournit un nombre dont le plus petit facteur premier est supérieur strictement à n, ce qui est complètement différent, car il faut ensuite déterminer ce facteur !
Par exemple : P(4)=25 dont le plus petit facteur premier est 5 ou encore P(13)=6227020801, dont le plus petit facteur premier est 83...
En fait, les cas où P(n) est premier sont même rares. Seuls n=2, 3, 11, 27 donnent des premiers pour n<=30.
Ce n'est pas la mer à boire, franchement (du moins, si l'on se contente de l'approche "triviale")
Il faut juste gérer des listes d'entiers de taille fixe (par exemple limités à 10^18, si tes entiers sont codés sur 64 bits) et programmer les 4 opérations avec gestion des retenues, etc...
Je tiens quand même à te signaler que ta fameuse formule P(n)=n!+1 ne fournit pas forcément un nombre premier !! Elle fournit un nombre dont le plus petit facteur premier est supérieur strictement à n, ce qui est complètement différent, car il faut ensuite déterminer ce facteur !
Par exemple : P(4)=25 dont le plus petit facteur premier est 5 ou encore P(13)=6227020801, dont le plus petit facteur premier est 83...
En fait, les cas où P(n) est premier sont même rares. Seuls n=2, 3, 11, 27 donnent des premiers pour n<=30.
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: [HELP] programme en c++ "multiplications"
Bisam mes nombre doivent avoir au moins 1 000 000 de chiffre... donc en 64 bit ça va etre compliqué !
Bisam tu aurais pas une formule pour donner un nombre premier random ?
EDIT : n*n + n + 41 marcherais.... Boisam tu saurais comment prouver que cette formule donne un nnombre premier ! ?
RE-EDIT : enfaite ca marche pour qu'un certain n max..... après y'a 2^p-1 qui fonctionne tout le temps ! mais bon faut encore trouver un p premier mais je peux faire des iterations....
Bisam tu aurais pas une formule pour donner un nombre premier random ?
EDIT : n*n + n + 41 marcherais.... Boisam tu saurais comment prouver que cette formule donne un nnombre premier ! ?
RE-EDIT : enfaite ca marche pour qu'un certain n max..... après y'a 2^p-1 qui fonctionne tout le temps ! mais bon faut encore trouver un p premier mais je peux faire des iterations....
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes
megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes
megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes
-
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1016
- Images: 1
- Joined: 16 Feb 2012, 18:39
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Fac de maths
Re: [HELP] programme en c++ "multiplications"
Pour la simple recherche de tous les nombres dérivés d'une certaine formule, possédant une certaine propriété, sur une certaine plage, je sais que certains, sur MersenneForum, aiment beaucoup PARI/GP.
Aucune formule simple ne produit de nombre premier aléatoire pour des valeurs arbitraires de n. Rien que trouver une formule A(n) qui produit des nombres premiers quel que soit n entre 1 et 50 est très difficile, alors une formule valable pour n entre 1 et 100...
Les nombres premiers de Mersenne sont très rares. On n'en connaît que 48, le 48ème étant 2^57885161-1, et il n'y a eu de vérification que jusqu'au 43ème (depuis hier). Voir http://mersenne.org/ .
Ce n'est pas difficile de trouver un petit nombre p premier, la division entière triviale (TF) est acceptablement rapide jusqu'à quelques milliers, voire quelques dizaines de milliers. C'est avec un bête TF (même pas de crible !) que j'ai fait ceux des problèmes du projet Euler liés aux nombres premiers auxquels j'ai répondu. Ca commencerait à être un peu lent pour répondre au problème 41, par exemple ("Pandigital prime").
Bisam tu saurais comment prouver que cette formule donne un nombre premier ! ?
Aucune formule simple ne produit de nombre premier aléatoire pour des valeurs arbitraires de n. Rien que trouver une formule A(n) qui produit des nombres premiers quel que soit n entre 1 et 50 est très difficile, alors une formule valable pour n entre 1 et 100...
après y'a 2^p-1 qui fonctionne tout le temps ! mais bon faut encore trouver un p premier mais je peux faire des iterations....
Les nombres premiers de Mersenne sont très rares. On n'en connaît que 48, le 48ème étant 2^57885161-1, et il n'y a eu de vérification que jusqu'au 43ème (depuis hier). Voir http://mersenne.org/ .
Ce n'est pas difficile de trouver un petit nombre p premier, la division entière triviale (TF) est acceptablement rapide jusqu'à quelques milliers, voire quelques dizaines de milliers. C'est avec un bête TF (même pas de crible !) que j'ai fait ceux des problèmes du projet Euler liés aux nombres premiers auxquels j'ai répondu. Ca commencerait à être un peu lent pour répondre au problème 41, par exemple ("Pandigital prime").
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6865
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
16 posts
• Page 1 of 2 • 1, 2
Return to Maths, physique, informatique et autre...
Who is online
Users browsing this forum: ClaudeBot [spider] and 13 guests