limite d'un entier positif en C++
Bonjour
Est ce que la taille d'un entier naturel positif est toujours $\leqslant {n^{18}}$ avec cette instruction :
[code= C++]typedef unsigned long long ulonglong;[/code]
Et, peut on la modifier pour prendre des valeur $n = 10^{21}$ par exemple ?
Car lorsque je rentre une valeur début: $n = 10^{19}$ et fin $n = 10^{21} + 300$ j'ai un message d'erreur : constante trop large... sur les deux lignes ... Et donc je bug....
Et si oui , je dois donc remplacer tous les ulonglong dans les fonction ou elle est utilisée ...?
je peux cribler jusqu'à $9\times10^{18}$ etc etc ... sans souci ma liste d'entiers .... $30k+i$
Est ce que la taille d'un entier naturel positif est toujours $\leqslant {n^{18}}$ avec cette instruction :
[code= C++]typedef unsigned long long ulonglong;[/code]
Et, peut on la modifier pour prendre des valeur $n = 10^{21}$ par exemple ?
Car lorsque je rentre une valeur début: $n = 10^{19}$ et fin $n = 10^{21} + 300$ j'ai un message d'erreur : constante trop large... sur les deux lignes ... Et donc je bug....
Et si oui , je dois donc remplacer tous les ulonglong dans les fonction ou elle est utilisée ...?
je peux cribler jusqu'à $9\times10^{18}$ etc etc ... sans souci ma liste d'entiers .... $30k+i$
Réponses
-
Je n'ai aucun problème avec 18 000 000 000 000 000 011, en tout état de cause la limite est $2^{64} -1$ soit 18 446 744 073 709 551 615.
J'utilise VS version gratuite.Il ne faut pas respirer la compote, ça fait tousser.
J'affirme péremptoirement que toute affirmation péremptoire est fausse -
Bonjour
tu veux dire que mon programme , sans le modifier , il faut que j'utilise VS alors que je l'ouvre avec Code::Blocks , car je suis sous linux mint ...?
De toutes les façons, la valeur maximale que je pourrai renter, serrait bien : 18 446 744 073 709 551 615. . Don un poil plus...
Je peux te l'envoyer , pour faire un teste .. ? Afin de rentrer $9*10^{19}$ à la ligne :
156 : ulonglong début = 90 000 000 000 000 000 002;
157 : ulonglong début = 90 000 000 000 000 000 32;
le reste tu ne touches pas , pour l'instant ; il est paramétré pour la famille $30k + 23$... -
Vos nombres sont supérieurs à $2^{64}$Il ne faut pas respirer la compote, ça fait tousser.
J'affirme péremptoirement que toute affirmation péremptoire est fausse -
Bonjour
Tout à fait , donc je suis limité même sous Unix, à la valeur de la limite $n = 18 446 744 073 709 551 600$, ce que j'ai déjà testé.. à moins d'avoir un pc de 128 bits...
Merci. -
Il y a aussi des librairies "big numbers" comme : List of arbitrary-precision arithmetic software - WikipediaIl ne faut pas respirer la compote, ça fait tousser.
J'affirme péremptoirement que toute affirmation péremptoire est fausse -
Oui ... Mais je ne suis pas assez compétent pour modifier mon programme C++ , afin de vérifier jusqu'à quelle limite $n$ je pourrai cribler ... ou installer une de ces applications sous linux... pour vérifier cette conjecture de Goldbach...
Merci . -
La conjecture de Goldbach dit que chaque entier pair se décompose en somme de 2 premiers d'au moins 1 façon.
Dans les faits, un nombre pair de l'ordre de 100 Milliards par exemple se décompose en somme de 2 premiers de $n$ façons, avec $n$ très grand, plusieurs millions. Et on peut trouver des formules qui estiment ce $n$.
Si il y a certains nombres pour lesquels l'estimation théorique dit qu'il y a 5 Millions de couples, mais que dans les faits, il y en a '''seulement''' 1 Million, alors tes calculs sont intéressants... s'il y a des accidents de ce type, il peut aussi y avoir des accidents plus grands, et peut être même des accidents tels que pour un nombre pair, on ne trouve pas de couple de nombres premiers.
Mais si pour tous les nombres pairs jusqu'à 100 Milliards, l'estimation marche bien, si le nombre de décompositions effectifs est proche du nombre théorique à 5% près... peu de chances de trouver des contre-exemples !
Ce qui est intéressant, ce n'est pas de vérifier si on trouve au moins un couple de premiers pour chaque entier pair $p$, c'est de compter le nombre de couples de premiers qui donnent $p$ et de voir comment ce nombre évolue.
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. Benjamin Franklin
L'hypocrisie est pire qu'une vérité qui fait mal. Franck Ntasamara. -
Tout à fait .!
Effectivement , il ne s'agit pas de ne trouver qu'un couple de premier pour tout 2n , mais de vérifier les résultats par rapport à une formule .
Il suffit de prendre une borne ... comme la racine carré de la limite $n$ divisée par 30 , de calculer le nombre de premier $p'\;de\; 1\;à\sqrt{n}$ divisée par 30...
et de cribler ce nombre de premiers $p'$ qui vérifie la conjecture ...
Comme tu le dis, ce nombre de solutions est oscillatoire pour chaque entier pair , on a effectivement un nombre de solutions qui va varier entre un minimum et un maximum pour cet entier 2n en fonction de la forme qu'il a....
C'est pour cela que pour éviter ces trop grands écarts..que l'on constate dans l'ensemble des entier naturels:
On choisit qu'une famille ou trois de la forme $30k+i$ avec $i\in(1,7,11,13,17,19,23,29)$ et on peut vérifier à partir d'une limite $n\geqslant{3000000}$ la variation du nombre de solutions pour $2n + k30$...
Car de ce fait , on prend uniquement les familles de premiers sur les 8, qui sont concernées en fonction de la forme de ces $2n$
On , pourra alors constater les variations et que la formule d'estimation, reste dans l'intervalle du nombre de solutions réelles par rapport à la limite fixée : $\sqrt{n}\;divisée\; par\;30$ pour la circonstance...ce qui réduit les tableaus de premiers p' à cribler avec Goldbach, que tu peux vérifier, si tu as une formule qui s'adapte ...à cet algorithme ...
En exemple : 3 fichiers joins : un pour $2n$ de la forme $30k$ ( les 8 famille sont concernées ) ; un pour $2n$ de la forme $30k+ 2$ (il n'y a que 3 familles concernées $(30k + 1, +13 \; ou\;19)$ ; et un pour $2n$ de la forme $30k+4$ uniquement 3 familles aussi : $30k +11 , 17 \;ou\; 23$
Ces 8 familles ont la même densité de nombres premiers.
Il faut aussi savoir, que pour tout $2n$ qui vérifie la conjecture , on connaît aussi le résultat pour le $2n+2$ suivant; sans rien faire, si ce n'est que de regarder le criblage du $2n$ en question...(propriété de l'algorithme)...
Car tout résultat pour un entier $2n$ est issue du criblage précédent , par famille, en utilisant les congruences , fait par le programme .
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 165.1K Toutes les catégories
- 59 Collège/Lycée
- 22.1K Algèbre
- 37.5K Analyse
- 6.3K Arithmétique
- 58 Catégories et structures
- 1.1K Combinatoire et Graphes
- 13 Sciences des données
- 5.1K Concours et Examens
- 20 CultureMath
- 51 Enseignement à distance
- 2.9K Fondements et Logique
- 10.7K Géométrie
- 83 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 79 Informatique théorique
- 3.9K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 337 Mathématiques et Physique
- 5K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10.1K Probabilités, théorie de la mesure
- 801 Shtam
- 4.2K Statistiques
- 3.8K Topologie
- 1.4K Vie du Forum et de ses membres