Écriture binaire d'un premier

Est-ce que dans l'écriture en binaire d'un nombre premier, il y aurait en moyenne plus de 0 que de 1 ?

Réponses

  • Ben, tu peux te faire une idée par toi-même en programmant un peu.
  • Bonjour

    Les 8 premiers premiers sont, en binaire 10,11, 101, 111, 1011, 1101, 10001, 10011. 19 fois 1 et 9 fois 0. D'où sort ton idée ?

    Cordialement.
  • Un petit script GP PARI pour étudier un peu la question.

    binprime(M)={
    local(T=0,q,u,l,N,P,i);
    for(q=1,M,u=binary(prime(q));l=length(u);N=0;P=0;for(i=1,l,if(u[ i]==0,N++,P++));if(P>=N,T++));
    print("nombre de nombres premiers dont le nombre de 1 est >= au nombre de 0:",T);
    print("nombre de nombres premiers evalues:",M);
    }
    

    Je suis en train de faire le calcul pour le premier million de nombres premiers.

    PS2:
    Sauf erreur, pour les dix mille premiers nombres premiers il y a exactement $7029$ nombres premiers dont le nombre de $1$ dans le développement en binaire est supérieur au nombre de $0$
  • Pour le premier million de nombres premiers, la moyenne de la proportion du nombre de $1$ est $0,5386$ et $59,\!7\,\%$ des nombres premiers ont plus de 1 que de 0.

    Pour $10^7$ nombres premiers, la moyenne est $0,5293$ et il y a $57,\!9\,\%$ de premiers avec plus de 1 que de 0.

    Enfin, sans doute.
  • La proportion tend-elle vers 0,5 quand le nombre de nombres premiers considérés augmente?
  • Sauf pour 10, le premier et le dernier chiffre sont toujours des 1. (:D
  • Bonsoir,

    Hormis deux, un nombre premier en base deux commence et ça finit par $1$. Heuristiquement, toutes choses égales d'ailleurs, $0$ doit être moins fréquent. Bof...
    Cordialement
    Paul

    Edit:grillé
  • Si je ne dis pas de bêtises il y a eu des travaux sur la répartition des "décimales binaires" des nombres premiers, notamment Mauduit et Rivat.
  • Les résultats de mon calcul (cf le programme ci-dessus).
    Sur le premier million de nombres premiers exactement $699403$ ont plus de 1 que de 0 (s'il y a autant de 1 que de 0 on considère qu'il y a plus de 1) dans leur développement binaire.
  • Bonjour,

    il me semble qu'il faudrait ne pas tenir compte des $1$ qui commencent et terminent les nombres; par ailleurs, je ne sais si la proportion de nombres qui ont autant de $1$ "intérieurs" que de $0$ est dérisoire. Bref, si je savais programmer ...

    Cordialement
    Paul
  • Pas de nouvelles d'Apollonius, qui n'a pas dit d'où lui est venue son idée.
  • Le langage de programmation de GP PARI est très simple (mais il n'y a pas d'outil hormis le essai-erreur pour mettre au point un programme sauf erreur). L'inconvénient de GP PARI est que les scripts sont lents (il a fallu 6h de calcul pour obtenir la proportion indiquée ci-dessus du premier million de nombres premiers) mais cela suffit souvent à éliminer de fausses conjectures.
  • Il faudra que j'y retourne, nous ne trouvons pas la même chose !
  • La question est maintenant de savoir si la proportion de nombres premiers qui ont plus de 1 dans leur écriture binaire tend vers une limite quand on augmente la population considérée et si cette limite existe est-elle nulle ou pas.
  • Math Coss:

    Mon programme est peut-être plein d'erreurs. Après la suppression des erreurs grossières dans la mise au point, j'ai testé pour les dix premiers nombres premiers, à la main, puis avec le programme et j'ai trouvé le même nombre j'en ai déduit que mon programme était probablement correct.
  • J'ai écrit un deuxième script GP PARI différent du premier.
    Pour les 10 000 premiers nombres premiers je trouve le même résultat que celui trouvé précédemment.
    binar(n)={local(P=0,N=0);while(n>=1,r=n%2;if(r==1,P++,N++);n=(n-r)/2);if(P>=N,return(1),return(0))}
    
    binprime2(M)={
    local(T=0);
    for(q=1,M,T+=binar(prime(q)));
    return(T);
    }
    

    La première fonction compte le nombre de 0 et de 1 dans le développement binaire d'un nombre et renvoie 1 si le nombre de 1 est égal ou plus grand que celui du nombre de 0.
  • Ah ! Voilà d'où venait la différence : je sélectionnais les nombres pour lesquels le nombre de chiffres 1 est strictement plus grande que la proportion de 0 alors que tu sélectionnais ceux pour lesquels elle est supérieure ou égale. Avec Sage et $\ge$, je retrouve bien tes 699403 nombres premiers dans le premier million de nombres premiers.

    Bref, nos programmes concordent (ça aurait fait mal pour un programme si court !), à ceci près que nous ne calculions pas la même chose.
  • Tu utilises mon script ou tu as un script plus rapide? Parce que ton calcul a été rapide.

    Je viens de faire le calcul pour les premiers cent mille nombres premiers et j'obtiens à nouveau le même résultat: $68687$

    (le deuxième script est plus lent que le premier semble-t-il)
  • L'idée, c'était de confirmer le résultat par un autre programme, Sage en l'occurrence (qui sous-traite peut-être certains trucs à Pari, comme le calcul du nombre premier suivant).

    Côté temps, pour aller jusqu'à un million de premiers, il faut un peu moins de 9 s sur mon laptop ; sur un serveur collectif qui accomplit d'autres tâches, ça prend un peu plus de 37 s. Sur ce même serveur, il faut environ 30 s à Pari pour exécuter ton script, ce qui est un peu plus rapide.

    Cela me surprendrait que soit plus lent que Sage pour ce genre de calculs. Il y a quelques mois, pour un calcul analogue (boucle simple), j'ai pu aller jusqu'à $10^9$ en quelques dizaines de secondes grâce à Pari quand Sage calait vers $10^8$.
    def teste(n):
        p, ch, sel = 1, 0, 0
        for k in range(n):
            p = next_prime(p)
            l = p.bits()
            prop = add(l)*1./ZZ(len(l))
            ch += prop
            if prop >=.5:
                sel+= 1
            if random()<1e-6:
                print "Exemple : p = %s = %s, proportion = %s" % (p,l,add(l)*1./ZZ(len(l)))
        return ch*1./n, sel*1./n
    
  • Ce script ressemble à du Python.
  • Sage c'est du Python.
  • Sage est un mix:
    Wikipedia a écrit:
    Outre ses fonctionnalités mathématiques, SageMath fournit une interface Python pour les logiciels qu'il inclut, par exemple Maxima, PARI/GP et Singular, ainsi que pour différents logiciels mathématiques non-intégrés comme Fricas, gnuplot, GNU Octave, Maple, Magma et Mathematica.
Connectez-vous ou Inscrivez-vous pour répondre.