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 Re : Entraide (collège-lycée) » Résoudre x² = 3/2 x +10 » Hier 12:36:20

Bonjour,

Je veux bien...
Mais il est où est le Message 3 ? Pas dans cette discussion, apparemment : pas vu !...
Ah ! Tu veux dire message ou post #3...

Bon, ça fait déjà un moment (9 jours) : j'ai oublié comment j'en suis arrivé là, mais c'est faux...
Donc j'ai écrit :

Tu peux dire, par contre que f(x)=g(x) aura des solutions lorsque g(x) sera positif soit pour [tex]x>\dfrac{−21}{2}[/tex]

C'est très étrange. Ce n'est pas une simple erreur de calcul...
Hmmmmm...
J'ai "trouvé".
Juste au-dessus, je t'avais écrit :

Ici, ton k c'est g(x)  qui est égal à [tex]\dfrac 3 2 x+10[/tex] dont tu prétends sans vergogne que c'est positif !!!
Essaie donc pour [tex]x = -7[/tex]...

La seule explication que je voie est que j'ai fait : [tex]\dfrac 2 3 x>-7[/tex] ce qui équivaut à [tex]x>\dfrac{−21}{2}[/tex]...
Mais c'est tout aussi bizarre parce que ça n'a rien à voir avec $g(x)$, donc non, ça n'explique rien...

Mais voilà :
[tex]g(x)\geqslant 0[/tex]
[tex]\;\Leftrightarrow[/tex]
[tex]\dfrac 3 2 x+10\geqslant 0[/tex]
[tex]\;\Leftrightarrow[/tex]
[tex]\dfrac 3 2 x\geqslant -10[/tex]
[tex]\;\Leftrightarrow[/tex]
[tex] x\geqslant -\dfrac {20}{3}[/tex]

@+

#2 Re : Programmation » crible en python » Hier 11:09:34

Re,

J'ai encore dû gagner un pou_ième en passant par un test bit à bit.
Je ne maîtrise pas totalement ça encore totalement, mais ça marche.
| est un opérateur binaire : 0|0=1, 0|1=1, 1|0  =1  et 1 |1 =1 qui force un bit précis à 1.
& est un autre opérateur binaire qui teste l'état d'un bit et renvoie 0 ou 1,2,4,8,16,32,64,128 dont les valeurs booleennes sont True...
J'initialise une variable temoin à 0
Sa représentation binaire est 00000000.
Supposons que fam=2
Je stocke la valeur booleenne du bit n° fam de temoin dans la variable testbit par testbit=(1<<fam)&temoin
Si testbit vaut False, je force la valeur du bit n° fam de temoin à 1 :
temoin=((1<<fam)|temoin
et je continue.
Ça remplace l'accès à la liste : je n'utilise qu'un temoin dont la valeur va varier de 1 à 255...


from time import time
from os import system
from collections import OrderedDict

## V. 6.3 ##

def eratostene(n):
    n = int((2*n)**0.5)
    m = (n-1) // 2
    limite=1+n
    b = [True]*m
    premiers = [2]
    for i,p in enumerate(range(3,limite,2)):
        if b[i]:
            premiers.append(p)
            j = 2*i*i + 6*i + 3
            debut,pas=j,2*i+3
            for j in range(debut,m,pas):
                b[j] = False
    debut=i
    for i in range(debut,m):
        if b[i]:
            premiers.append(p)
        p += 2
    return premiers[3:]

def Crible_mod30(n):
    # INITIALISATION
    global fam,temoin
    start_i= time()
    Primes_init = eratostene(n)
    nn,nbcell=n*2,n//30
    nombres=[]
    for i in range(8):
        nombres.append([1]*nbcell)
    P8=[1, 7, 11, 13, 17, 19, 23, 29]
    Dico=OrderedDict={1:0,7:1,11:2,13:3,17:4,19:5,23:6,29:7}
    s_1=time()-start_i
    print("Phase d'initialisation: %s seconds ---" % s_1)
   
    # FAMILLES POUR CHAQUE Pi
    start_time = time()
    for i,pi in enumerate(Primes_init):      
        r=nn%pi
        debut,fin,pas=r+pi*(1-r%2),1+r+pi*29,pi*2
        temoin=0
        for j in range(debut,fin,pas):    
            if j%3!=0 and j%5!=0:
                fam=Dico[j%30]
                testbit=(1<<fam)&temoin
                if not testbit:
                    temoin=(1<<fam)|temoin
                    debut_index=j//30
                    Nombres_fam=nombres[fam]
                    for index in range(debut_index, nbcell,pi):
                        Nombres_fam[index] = 0  
    s_23=time()-start_time
    print("Bloc S2_s3 : %s seconds ---" % s_23)

    # CALCUL DES NOMRES PREMIERS ENTRE n ET 2*n
    start_time = time()
    total = 0
    for sous_liste in nombres:
        total+=sum(sous_liste)      
    s_4=time() - start_time
    s=s_1+s_23+s_4
    print("Extraction des premiers n à 2*n : %s seconds ---" % s_4)
    return total,s

n = int(input("Donnez la valeur de n = 30k : "))
nbr,s= Crible_mod30(n)
print ("\n** ",nbr,"nombres trouvés en %s secondes" % s ,"**")
system("pause")

Pour n=360000000
Version 6.3

Phase d'initialisation: 0.6170353889465332 seconds ---
Bloc S2_s3 : 16.123922109603882 seconds ---
Extraction des premiers n à 2*n : 0.9270529747009277 seconds ---

**  17922760 nombres trouvés en 17.668010473251343 secondes **

Version 6.2

Phase d'initialisation: 0.6210355758666992 seconds ---
Bloc S2_s3 : 16.406938314437866 seconds ---
Extraction des premiers n à 2*n : 0.9250528812408447 seconds ---

**  17922760 nombres trouvés en 17.95302677154541 secondes **

Et encore, les variations de temps me paraissent aléatoires...

@+

#3 Re : Programmation » crible en python » 16-06-2018 16:46:41

Re,

Là, je crois bien que faire mieux (plus rapide) ça va être mission impossible...
A tout hasard, essaie ça :


from time import time
from os import system
from collections import OrderedDict

## V. 6.2 ##

def eratostene(n):
    n = int((2*n)**0.5)
    m = (n-1) // 2
    limite=1+n
    b = [True]*m
    premiers = [2]
    for i,p in enumerate(range(3,limite,2)):
        if b[i]:
            premiers.append(p)
            j = 2*i*i + 6*i + 3
            debut,pas=j,2*i+3
            for j in range(debut,m,pas):
                b[j] = False
    debut=i
    for i in range(debut,m):
        if b[i]:
            premiers.append(p)
        p += 2
    return premiers[3:]

def Crible_mod30(n):
    # INITIALISATION
    start_i= time()
    Primes_init = eratostene(n)
    nn,nbcell=n*2,n//30
    nombres=[]
    for i in range(8):
        nombres.append([1]*nbcell)
    P8=[1, 7, 11, 13, 17, 19, 23, 29]
    Dico=OrderedDict={1:0,7:1,11:2,13:3,17:4,19:5,23:6,29:7}
    s_1=time()-start_i
    print("Phase d'initialisation: %s seconds ---" % s_1)
   
    # FAMILLES POUR CHAQUE Pi
    start_time = time()
    for i,pi in enumerate(Primes_init):      
        r=nn%pi
        debut,fin,pas=r+pi*(1-r%2),1+r+pi*29,pi*2
        Fam=[0,0,0,0,0,0,0,0]
        for j in range(debut,fin,pas):    
            if j%3!=0 and j%5!=0:
                fam =Dico[j%30]
                if not Fam[fam]:
                    Fam[fam] = 1
                    debut_index=j//30
                    Nombres_fam=nombres[fam]
                    for index in range(debut_index, nbcell,pi):
                        Nombres_fam[index] = 0  
    s_23=time()-start_time
    print("Bloc S2_s3 : %s seconds ---" % s_23)

    # CALCUL DES NOMRES PREMIERS ENTRE n ET 2*n
    start_time = time()
    total = 0
    for sous_liste in nombres:
        total+=sum(sous_liste)      
    s_4=time() - start_time
    s=s_1+s_23+s_4
    print("Extraction des premiers n à 2*n : %s seconds ---" % s_4)
    return total,s

n = int(input("Donnez la valeur de n = 30k : "))
nbr,s= Crible_mod30(n)
print ("\n** ",nbr,"nombres trouvés en %s secondes" % s ,"**")
system("pause")
 

@+

#4 Re : Programmation » crible en python » 16-06-2018 13:36:23

Re,

C'est fait. Ça roule...
Déception : je dois gagner 1/10e s pour n=36000000. Mais on gagne en place mémoire.
Satisfaction : j'ai toujours maintenu que, si, si, mon programme criblait bien. J'avais raison
Résultat :

Phase d'initialisation: 0.08200454711914062 seconds ---
Bloc S2_s3 : 1.3980798721313477 seconds ---
Extraction des premiers n à 2*n : 0.09300541877746582 seconds ---

**  2024396 nombres trouvés en 1.573089838027954 secondes **

from time import time
from os import system
from collections import OrderedDict

## V. 6.1 ##

def eratostene(n):
    n = int((2*n)**0.5)
    m = (n-1) // 2
    limite=1+n
    b = [True]*m
    premiers = [2]
    for i,p in enumerate(range(3,limite,2)):
        if b[i]:
            premiers.append(p)
            j = 2*i*i + 6*i + 3
            debut,pas=j,2*i+3
            for j in range(debut,m,pas):
                b[j] = False
    debut=i
    for i in range(debut,m):
        if b[i]:
            premiers.append(p)
        p += 2
    return premiers[3:]

def Crible_mod30(n):
    # INITIALISATION
    start_i= time()
    Primes_init = eratostene(n)
    nn,nbcell=n*2,n//30
    nombres=[]
    for i in range(8):
        nombres.append([1]*nbcell)
    P8=[1, 7, 11, 13, 17, 19, 23, 29]
    Dico=OrderedDict={1:0,7:1,11:2,13:3,17:4,19:5,23:6,29:7}
    s_1=time()-start_i
    print("Phase d'initialisation: %s seconds ---" % s_1)
   
    # FAMILLES POUR CHAQUE Pi
    start_time = time()
    for i,pi in enumerate(Primes_init):      
        r=nn%pi
        debut,fin,pas=r+pi*(1-r%2),1+r+pi*29,pi*2
        Fam=[0,0,0,0,0,0,0,0]
        for j in range(debut,fin,pas):    
            if j%3!=0 and j%5!=0:
                fam =Dico[j%30]
                if Fam[fam] == 0:
                    Fam[fam] = j
                    debut_index=j//10//3
                    Nombres_fam=nombres[fam]
                    for index in range(debut_index, nbcell,pi):
                        Nombres_fam[index] = 0  
    s_23=time()-start_time
    print("Bloc S2_s3 : %s seconds ---" % s_23)

    # CALCUL DES NOMRES PREMIERS ENTRE n ET 2*n
    start_time = time()
    total = 0
    for sous_liste in nombres:
        total+=sum(sous_liste)      
    s_4=time() - start_time
    s=s_1+s_23+s_4
    print("Extraction des premiers n à 2*n : %s seconds ---" % s_4)
    return total,s

n = int(input("Donnez la valeur de n = 30k : "))
nbr,s= Crible_mod30(n)
print ("\n** ",nbr,"nombres trouvés en %s secondes" % s ,"**")
system("pause")
 

Voilà, tu peux jouer

@+

#5 Re : Programmation » crible en python » 16-06-2018 13:09:16

Re,

OK...
Inattention !
Je ne me suis pas méfié...
Du coup mon compteur cpt est non seulement faux mais inutile.
Je vais reprendre et m'en passer.
Ca va être vite fait.
Ce sera le moment de vérité...

C'est fait : 2 correctifs...
Remplacenent debut_index par debut_index=j//10//3
Suppression cpt et remplacement par fam

Moyennant quoi j'ai bien 40  premiers annoncés pour n=240
Je vais monter dans les n...

@+

#6 Re : Café mathématique » Collection "Génie des mathématiques" » 16-06-2018 12:14:55

Bonjour,

J'en ai acheté 3...
Impossible de trouver les autres à la vente au détail autour de chez moi...

@+

#7 Re : Programmation » crible en python » 16-06-2018 11:30:34

Salut,

Je ne comprends absolument rien à tes propositions : trop d'infos tue l'info.
Je maintiens que, si, je crible.
J'ai un problème et je n'ai pas l'habitude de travailler en disant : je jette le bébé avec l'eau du bain...
Je ne change de méthode que si, lorsque j'ai trouvé le problème, je suis convaincu que je ne peux pas faire autrement...

Le problème est que, contrairement à ce que j'ai écrit, je me suis aperçu que les debut_index sont archi-faux...
J'ai donc remonté le courant et j'ai découvert que traitant les j à la volée, ils ne sont pas traités dans l'ordre de stockage d'une Fam.
Preuve :
           Vraie Fam :  [151, 67, 11, 193, 137, 109, 53, 179]
Ordre traitement  :  [11, 53, 67, 109, 137, 151, 179, 193]

Je présume que ça doit poser un pb qui fait que les debut_index sont tous faux et que mon prog 6.0 crible (si, si !) n'importe comment...
C'est toi le spécialiste là, : j'attends ta confirmation.

Donc ma vision de Fam était incomplète : non seulement, il y a stockage pour y éviter les doublons, mais stockage à un endroit précis en lien avec Dico : ce n'est pas pour rien...

En attendant, je retourne à ma Revue, mes relecteurs m'ont envoyés des propositions de correction...

@+

#8 Re : Programmation » crible en python » 16-06-2018 07:41:02

Bonjour,

Je vais essayer de trouver un fil d'Ariane dans ton abondante littérature... Ca ne risque de ne pas être évident parce que tu as du mal (c'est normal) - en ce qui concerne la programmation - à être synthétique.
Si ma version donne un nombre incorrect de premiers pour n=240, il est inutile d'espérer que pour des valeurs de n supérieures, ça s'arrange.
Donc j'en reste à n=240 jusqu'à ce le résulrat soit correct. Après seulement j'irais voir plus loin.

Tu as écrit :

donc j'ai regardé avec l'indentation de G9Y

il y avait quelque chose qui me chiffonnait  le fait d'avoir mis cpt et non j

il faut "réindenter" cette partie..avec:

Jusqu'à preuve du contraire, l'indentation est correcte.
En ce qui concerne cpt c'est le n° d'ordre du j traité.

Ce qui te chiffonne (tu veux un fer à repasser ? ^_^) vient de ce que tu as oublié ce que j'avais annoncé de ma "philisophie" :
je traite les j à la volée et j'ajoute maintenant dès qu'il y en a un accepté et stocké dans Fam.

A quoi sert Fam, alors ? Juste à empêcher qu'on traite un j trop souvent : à l'intérieur d'une Fam (ex Pf[i']), il n'y avait pas de doublons et il n'y en a pas non plus maintenant. Fam est un stockage temporaire.

Toi tu proposes de stocker tous les j dans Fam, puis de repartir de cpt =0 avec une nouvelle boucle, moi je traite les j dans l'ordre de leur création (avec l'index cpt) au fur et à mesure...

        for j in range(debut,fin,pas):    
            if j%3!=0 and j%5!=0:
                fam =Dico[j%30]
                if Fam[fam] == 0:  # Si l'emplacement contient 0
                    Fam[fam] = j     # j'y stocke le j
                    cpt+=1             # j'augmente mon compteur de 1
                    debut_index=Fam[cpt]//10//3  # Je crée le début_index à partir du j et la suite c'est le bloc s3
                    Nombres_cpt=nombres[cpt]
                    for index in range(debut_index, nbcell,pi):
                        Nombres_cpt[index] = 0

En principe, Fam[cpt] c'est le j traité. Je vais vérifier dans un moment...

@+

#9 Re : Programmation » crible en python » 15-06-2018 19:26:22

Salut,

Je viens de voir ta réponse :
j'avais entre temps repris des tests...
Pour n=240,
J'ai affiché les Fam du prog expérimental  correspondant aux Pfam[i'] de la dernière version fonctionnelle, puis pour chaque Fam les debut_index correspondants de l'un et de l'autre : identiques...
L'erreur est après : je vais bien la dénicher...
Ça me navre d'autant plus qu'avant l'essai, j'étais sûr que c'était bon.

Alors explication de texte de ce qui m'a conduit au au programme expérimental...
Donc, je suis arrivé à la conclusion que si je ne voulais pas faire des tests inutiles, j'étais obligé de garder les différentes Pfam[i']  mais une seule, pour chaque i différent, à cause de

if j%3!=0 and j%5!=0:
    fam =Dico[j%30]      
        if Pf[fam] == 0: # <---
            Pf[fam] = j    # <---

Et ayant vérifié qu'on traitait bien une Pf après l'autre, et en lecture dans le même ordre qu'à la construction, j'ai décidé de laisser tomber la liste de listes Pfam, pour n'en garder qu'une, Fam,  que je remplis, puis vide à chaque tour...

Mais, dans le prog qui est juste,
les j sont d'abord les nombres qui sont stockés dans les Pfam[i'] (dans le bloc s2)
Donc dans le bloc s3 il y avait :

        for j in range(8):
            debut_index=Pf[j]//10//3

puis à l'étape suivante de lecture des Pfam ('dans le bloc s3),
les j sont juste un index de 0 à 7 qui donne la position du nombre que l'on extrait alors d'un Pfam[i'].

Comme j'ai fusionné les blocs s2 et s3, j ne pouvait plus être l'un et l'autre. J'ai donc conservé j comme nombre, et j'ai dû recréer un index (cpt) qui vaudra de 0 à 7 et qui par Fam[cpt]  remplacera le Pf[j] du bloc s3...
J'ai vérifié : l'erreur ne vient pas de là...
Ceci :

    for i,pi in enumerate(Primes_init):      
        r=nn%pi
        debut,fin,pas=r+pi*(1-r%2),1+r+pi*29,pi*2
        Fam,cpt=[0,0,0,0,0,0,0,0],-1
        for j in range(debut,fin,pas):    
            if j%3!=0 and j%5!=0:
                fam =Dico[j%30]

est quasiment repris du bloc s2

Fam,cpt=[0,0,0,0,0,0,0,0],-1 : sur cette ligne : Fam c'est l'ancien Pf (=Pfam[i']) et je ne stocke plus l'intégralité de Pfam. Gain de place mémoire.
Et cpt, initialisé à -1, est incrémenté de de 1 à chaque j valable stocké va de 0 à 7.
Quand suite à ces lignes tu vois cpt, c'est le j du bloc s3...

                    debut_index=Fam[cpt]//10//3
                    Nombres_cpt=nombres[cpt]

avant, c'était :

            debut_index=Pf[j]//10//3
            Nombres_j=nombres[j]

Et la suite du bloc s3 est alors reprise en remplaçant j par cpt...

Tu comprends pourquoi ce matin, je croyais dur comme fer que ça fonctionnerait...
Ça aurait dû  ! En théorie...
Il y a sûrement un petit détail qui m'échappe : la nuit porte conseil !

J'ai été clair ?

@+

#10 Re : Café mathématique » Article sur les deux infinis égaux démontrés il y a quelques mois. » 15-06-2018 14:20:14

Bonjour,

Reprenons...
Soit x un nombre réel quelconque...
Si x est un nombre décimal pur, par définition, la suite des décimales est finie, c'est à dire composée de 0 à partir d'un certain rang...
Si x est un rationnel pur (il est appelé suite décimale périodique illimitée), alors il existe une fraction irréductible [tex]\dfrac a b=x[/tex] où a et b sont des entiers naturels...
Et si $x$ est "irrationnel" ? Il n'est ni entier, ni décimal, ni rationnel. Ex : [tex]\sqrt 2[/tex]

Cantor a dit : supposons que [tex]\mathbb{R}[/tex] soit dénombrable.
Il comprend donc au moins une suite  [tex](u_n)[/tex] de nombres réels définie comme suit...
Les termes (nombres composant la suite) de la suite [tex]u_n[/tex] sont notés : [tex]u_{1},\;u_{2},\;u_{3},\;u_{4},\;\cdots u_{n}[/tex] tous différents.

Je désigne encore par :
[tex]u_{11},\;u_{12},\;u_{13}u_{14}\cdots u_{1n}[/tex] les décimales du nombre [tex]u_1[/tex]  et  [tex]u1=0,u_{11}u_{12}u_{13}u_{14}\cdots u_{1n}[/tex]
[tex]u_{21},\;u_{22},\;u_{23}u_{24}\cdots u_{2n}[/tex] les décimales du nombre [tex]u_2[/tex]  et  [tex]u_2=0,u_{21}u_{22}u_{23}u_{24}\cdots u_{2n}[/tex]

[tex]u_{31},\;u_{32},\;u_{33},u_{34}\cdots u_{3n}[/tex] les décimales du nombre [tex]u_3[/tex]  et  [tex]u_3=0,u_{31}u_{32}u_{33}u_{34}\cdots u_{3n}[/tex]

[tex]u_{41},\;u_{42},\;u_{43},\;u_{44}\cdots u_{4n}[/tex] les décimales du nombre [tex]u_4[/tex]  et  [tex]u_4=0,u_{41}u_{42}u_{43}u_{44}\cdots u_{4n}[/tex]
.........................................................................................................................................................
[tex]u_{n1},\;u_{n2},\;u_{n3},\;u_{n4},\;\cdots u_{nn}[/tex] les décimales du nombre [tex]u_n[/tex]  et  [tex]u_n=u_{n1}u_{n2}u_{n3}u_{n4}\cdots u_{nn}[/tex]

Cantor a alors  construit maintenant le nombre $x$ tel que (on pourrait en construire bien d'autres) :
[tex]x=u_{11}u_{22}u_{33}u_{44}\cdots u_{nn}[/tex]...
Ce nombre x n'appartient pas à la suite [tex]u_{1},\;u_{2},\;u_{3},\;u_{4},\;\cdots u_{n}[/tex]  précédemment définie !
Or, le nombre n, qui sert d'indice ayant été défini comme appartenant à  [tex]\mathbb{N}[/tex] peut être aussi grand souhaité puisque [tex]\mathbb{N}[/tex] est infini...
Il en résulte déjà que le cardinal de l'ensemble U des nombres composant la suite suite [tex](u_n)[/tex] est un nombre "infini" : on peut établir une bijection entre [tex]\mathbb{N}[/tex] et cet ensemble....
Or le nombre x que l'on construit n'est pas dans cet ensemble... et le nombre x' composé des décimales "en miroir"  de x non  plus et d'autres encore par un procédé différent mais toujours avec diagonales qui n'appartiendrait pas non plus à l'ensemble U...
On a donc en incluant dans U tous ces x supplémentaires, un 2nd ensemble V également infini...

S'il y a bijection entre U et [tex]\mathbb{N}[/tex], il ne peut donc y avoir de bijection entre (V plus "grand" que U) et [tex]\mathbb{N}[/tex]...
Coluche disait dans un sketch connu : plus blanc que blanc, c'est quoi ?...
Cf encore : http://www.bibmath.net/dico/index.php?a … cdiag.html

Qu'as-tu donc à redire sur la diagonale de Cantor ?
Parce que toi, tu dis : j'ai prouvé que [tex]\mathbb{R}[/tex] est dénombrable...
Or, depuis 1891, aucun mathématicien, personne n'a pu prouver que la démonstration de Cantor était fausse...
Pourtant, il ne peut pas y avoir deux démonstrations justes qui aboutissent à deux conclusions opposées !

Alors ?
Il ne reste plus que la fameuse "théorie du complot" : depuis 1891, tous les mathématiciens du monde se sont mis d'accord pour faire taire tous ceux qui ne penseraient pas comme Cantor !??
Ou encore : ils sont tous surcotés ?
Ou encore : ils acceptent tous comme parole d'évangile, comme un dogme intangible, ce qu'a dit Cantor ? par paresse intellectuelle ?

Pourtant, celui qui montrerait que Cantor avait tort, recevrait à coup sûr la médaille Fields... et la coquette somme qui va avec...

Ce que tu nous dit de tes travaux est largement insuffisant pour vérifier quoi que ce soit.
Je te suggère de déposer ton document sur http://www.cjoint.fr et de suivre la procédure, puis d'inscrire le code d'accès dans un post afin qu'on puisse récupérer ledit document

@+

#11 Re : Enigmes, casse-têtes, curiosités et autres bizarreries » Aides solution énigme » 15-06-2018 12:03:12

Bonjour,

Je décide de soustraire membre à membre les deux premères lignes :
j'obtiens y-z=-5
J'additionne les k=lignes 3 et 4 :
y+z=12

J'arrive maintenant au système :
[tex]\begin{cases}y-z&=-5\\y+z&=12\end{cases}[/tex]
J'additionne les deux lignes :
[tex]2y=7[/tex] d'où [tex]y=\dfrac 7 2[/tex]
Et maintenant, je "remonte le courant"...

J'en déduis
[tex]z=12-y=12-\dfrac 7 2=\dfrac{24}{2}-\dfrac 7 2 =\dfrac{17}{2}[/tex]
puis
[tex]x=13-z=13-\dfrac{17}{2}=\dfrac{26}{2}-\dfrac{17}{2}=\dfrac 9 2[/tex]
Et enfin :
[tex]w=z-6=\dfrac{17}{2}-6=\dfrac{17}{2}-6=\dfrac{17}{2}-\dfrac{12}{2}=\dfrac 5 2[/tex]

Vérification au hasard :
[tex]y+w=\dfrac 7 2+\dfrac 5 2=\dfrac{12}{2}=6[/tex]...

@+

#12 Re : Programmation » crible en python » 15-06-2018 11:00:11

Re,

Je suis un têtu et je poursuis mon idée :


from time import time
from os import system
from collections import OrderedDict

## V. 6.0 ##

def eratostene(n):
    n = int((2*n)**0.5)
    m = (n-1) // 2
    limite=1+n
    b = [True]*m
    premiers = [2]
    for i,p in enumerate(range(3,limite,2)):
        if b[i]:
            premiers.append(p)
            j = 2*i*i + 6*i + 3
            debut,pas=j,2*i+3
            for j in range(debut,m,pas):
                b[j] = False
    debut=i
    for i in range(debut,m):
        if b[i]:
            premiers.append(p)
        p += 2
    return premiers[3:]

def Crible_mod30(n):
    # INITIALISATION
    start_i= time()
    Primes_init = eratostene(n)
    nn,nbcell,nbcl=n*2,n//30,n//30-1
    nombres=[]
    for i in range(8):
        nombres.append([1]*nbcell)
    Pfam,P8=[],[1, 7, 11, 13, 17, 19, 23, 29]
    Dico=OrderedDict={1:0,7:1,11:2,13:3,17:4,19:5,23:6,29:7}
    s_1=time()-start_i
    #print("Phase d'initialisation: %s seconds ---" % s_1)

    # FAMILLES POUR CHAQUE Pi
    start_time = time()
    for i,pi in enumerate(Primes_init):      
        r=nn%pi
        debut,fin,pas=r+pi*(1-r%2),1+r+pi*29,pi*2
        Fam,cpt=[0,0,0,0,0,0,0,0],-1
        for j in range(debut,fin,pas):    
            if j%3!=0 and j%5!=0:
                fam =Dico[j%30]
                if Fam[fam] == 0:
                    Fam[fam] = j
                    cpt+=1
                    debut_index=Fam[cpt]//10//3
                    Nombres_cpt=nombres[cpt]
                    for index in range(debut_index, nbcell,pi):
                        Nombres_cpt[index] = 0
    s_23=time()-start_time

    # CALCUL DES NOMRES PREMIERS ENTRE n ET 2*n
    start_time = time()
    total = 0
    for sous_liste in nombres:
        total+=sum(sous_liste)      
    s_4=time() - start_time
    s=s_1+s_23+s_4
    print("Extraction des premiers n à 2*n : %s seconds ---" % s_4)
    return total,s

n=240
nbr,s= Crible_mod30(n)
print ("\n** ",nbr,"nombres trouvés en %s secondes" % s ,"**")
system("pause")

Il me reste un "détail" à régler :
j'obtiens seulement 38 nbs premiers au lieu de 40..
Je n'ai pas encore trouvé pourquoi...

Je ne stocke plus l'intégralité de Pfam, seulement Pfam[i'] que j'ai appelé Fam...
J'ai contrôlé un par un tous les Fam obtenus : ils sont bons...
Comme dans la dernière version propre, dans le Criblage des familles on redémarrait avec for j in range(8) et comme, là, j est encore un des nombres stockés dans Fam j'ai introduis un compteur cpt que j'initialise à -1...
J'ai vérifié pour chaque Fam le cpt associé : il est bien à 7...
Je pense que l'erreur est sur cette ligne :
for index in range(debut_index, nbcell,pi):

Lorsque ça fonctionnera, je pense que le gain de temps sera sensible.
Pour n=240, la dernière version fonctionnelle me donnait chez moi : 0.0009999275207519531 s
Avec la version en cours : c'est 0.0 s.

@+

#13 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 14-06-2018 18:57:02

Re,

Ceci n'est pas à faire :
considérons maintenant l'inégalité |x|⩽2 en posant X = x - 3 c'était juste donné poir te permettre de comprendre que ce n'était pas le signe de $x$ qui m'importait mais celui de $x-3$...
Et tout ce que tu as proposé est de plus parfaitement illisible et n'a pas de sens.

Tu dois bien comprendre que si j'ai écrit $X = x-3$ ce n'était pas comme toi, tu l'as fait pour remplacer $x$ par $x-3$ : utiliser $X$ et $x$, c'est utiliser deux inconnues différentes dans leurs valeurs et dans leurs écritures !

Ne t'amuse pas avec les changements de variables, ils arriveront bien assez tôt à partir de l'an prochain, si tu choisis une section scientifique...
Pour le moment, abandonne cette idée : là, tu ne faisais que compliquer inutilement la présentation...
On n'utilisera les changements de variables que dans des cas très précis, où tu ne peux pas faire autrement pour répondre à la question posée.

Je vais donc devoir me montrer plus prudent, plus circonspect à l'avenir dans ce que j'écris...

@+

#14 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 14-06-2018 17:44:29

Re,

Voilà, tu as ta solution.
Maintenant une habitude  : vérifie !
Tu prends un nombre inférieur à 1, un nombre supérieur à 5, un entre les deux...
Ça ne coûte pas grand chose, mais ça peut rendre service...

C'est bon, t'as tout pigé ?

@+

#15 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 14-06-2018 17:15:19

Re,

$-x + 3 + (-3) \leqslant 2 + (-3)$
Ce n'est plus la peine e procéder ainsi maintenant que tu as conscience en le faisant que c'est un raccourci qui "cache" le véritable procédé...
Tu peux te contenter de :
$-x + 3  \leqslant 2$
$ \;\Leftrightarrow$
$-x\leqslant 2-3$
$ \;\Leftrightarrow$
$x\geqslant1$

Et comme tu es dans le cas où x\leqslant 3, l'encadrement de $x$ est [tex]1\leqslant x \leqslant 3[/tex] que tu peux écrire [tex]x \in [1\,;\,3][/tex]
Dans le cas n°2, tu es arrivé à [tex]x \in [3\,;\,5][/tex]  soit  [tex]3\leqslant x \leqslant 5[/tex]
Maintenant il te faut réunir les intervalles :
[tex]x \in [1\,;\,3]\,\cup\,[3\,;\,5][/tex]
et tu arrives à la réponse attendue [tex]\cdots\leqslant x \leqslant \cdots[/tex]
Et tu peux vérifier en prenant des x en dehors de l'intervalle trouvé, qu'ils ne sont pas solution...

$-x \leqslant -1$
je ne peux pas avoir une inéquation du type : $- x\leqslant (??)$

On considère que tu n'as fini le travail (il y a encore une erreur à ne pas faire en divisant - ou multipliant - les deux membres par -1)...
La solution d'une inéquation est soit
* [tex]x\in \varnothing[/tex]
* [tex]x<\cdots[/tex]  ou [tex]x\leqslant \cdots[/tex]
* [tex]x<\cdots[/tex]  ou [tex]x\leqslant \cdots[/tex]

De même, la solution d'une équation est soit :
* [tex]x\in \varnothing[/tex]
* [tex]x=\cdots[/tex] 'dans le cas où la solution est une fraction, on la donne écrite sous forme irréductible)

@+

[EDIT] Bon sang, leo, fais attention : regarde ce que tu écris : $3 \leqslant 1\; ...$

#16 Re : Café mathématique » Article sur les deux infinis égaux démontrés il y a quelques mois. » 14-06-2018 16:47:11

Re,

Ok.
Mais entre 10 et 11 de [tex]\mathbb{N}[/tex] soit pour toi entre 0,01 et 0,11 de [tex]\mathbb{R}[/tex], il y a "autant" de nombres que dans tout [tex]\mathbb{N}[/tex]...
A quel nombre de [tex]\mathbb{N}[/tex] ferais-tu correspondre [tex]\sqrt 2[/tex] ? [tex]\pi[/tex] ?

Parce que là, avec ton miroir tu ne construis que des fractions décimales qui sont des décimaux purs : [tex]0,31=\dfrac{31}{100}[/tex] ...
Or, [tex]\mathbb{D}\subset \mathbb{Q}\subset\mathbb{R}[/tex], il y a encore de la marge...

Lecture pour lecture, je renouvelle ma suggestion... Tu es d'ailleurs parfaitement en droit de t'exclamer  : quoi, lire une BD ? J'ai passé l'âge !
CV de JP Petit  : Docteur es Sciences, Astrophysicien et dans sa jeunesse : Chargé de recherches au CNRS, Professeur de micro-informatique, Professeur aux Beaux-Arts...

Donc après ta lecture; ici : http://www.savoir-sans-frontieres.com/J … GOTRON.pdf p.17 à 25... (ça devrait te rappeler quelque chose), si tu le veux bien dus-nous ce que tu as à objecter à la démonstration présentée et à quoi ta méthode répondrait ?

@+

#17 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 14-06-2018 15:53:39

Salut,

Tu es sur la bonne voie...

Mais :

premier cas : $x - 3 \leqslant 0 \Leftrightarrow x - 3 + 3 \leqslant 0 + 3 \Leftrightarrow x \leqslant 3$

Dans ce cas $|x-3| \leqslant 2$ <=> $-(x-3) \leqslant 2 $ <=> $-x+3\leqslant2$ <=> $-x + 3 + (-3)  \leqslant 2 + (-3) $ <=> $-x \leqslant -1$.
Donc :

Donc quoi ?
Il faut donner une suite à  $-x \leqslant -1$....
Puis penser que tu es dans le cas [tex] x\leqslant 3[/tex] pour obtenir un premier encadrement... comme tu m'a fait pour le cas n°2 puis créer la réunion des deux intervalles...

@+

#18 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 14-06-2018 14:27:55

Re,

leo0 a écrit :

examinons deux cas selon le signe de x ...

nan !
Tu recommences  la même erreur.
Je t'ai écrit

tu as deux cas à étudier selon le signe de... x−3 et non le signe de x...

selon le signe de $(x-3)$ et non le signe de $x$
selon le signe de [tex]x-3[/tex] Pourquoi étudies-tu me signe de $x$ ?
La quantité dans la valeur absolue, c'est $x-3$, pas $x$
Les 2 cas à étudier sont donc
1. [tex]x-3\leqslant 0[/tex]  c'est à dire pour [tex]x\leqslant \cdots[/tex]
    Dans ce cas  [tex]x-3= \cdots[/tex]

2. [tex]x-3 \geqslant 0[/tex]  c'est à dire pour [tex]x\geqslant \cdots[/tex]
   Dans ce cas  [tex]x-3= \cdots[/tex]

Arrête-toi à la résolution des deux inéquations : je vais revenir...

Dans les deux cas, tu ne peux répondre qu'en remplaçant (c'est juste un remplacement !) la valeur absolue par une expression en fonction de x et 3...

@+

#19 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 14-06-2018 10:58:23

Re,

Tu as coincé dès le départ, j'ai bien fait de te poser la question
C'est [tex]|x-3|[/tex] et non |x|
[tex]|x-3|\neq |x|-3[/tex] ...
Si tu poses $X=x-3$, tu as [tex]|X|\leqslant 2[/tex] et tu étudies bien 2 cas  selon le signe de X ? D'accord ?

Et bien là ce n'est pas $X$  mais $x-3$ et tu as deux cas à étudier selon le signe de... $x-3$ et non le signe de $x$...
Comprends-tu ?
Maintenant, tu dois pouvoir redémarrer...

@+

#20 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 14-06-2018 09:44:27

Re,

Je vais vérifier : je ne sais plus : c'est probable...
Par contre, ça :
On a $|x-3|\leqslant 2$,  $x$ est un réel
Donner l'encadrement de $x$.
c'est à ta portée dès cette année, ça n'a rien de sorcier !
Alors, peux-tu répondre ?

@+

#21 Re : Café mathématique » Article sur les deux infinis égaux démontrés il y a quelques mois. » 14-06-2018 09:40:43

Bonjour,

Pour une approche en images de la non-dénombrabilité de [tex]\mathbb{R}[/tex] puis vous inciter à aller lire le Logotron, BD dee Jean-Pierre Petit p.17 à 25...
Ici : http://www.savoir-sans-frontieres.com/J … GOTRON.pdf
Ne commettez pas l'erreur - grossière - JP Petit pour un farfelu, il a un un CV que beaucoup lui envieraient : il a écrit beaucoup d'autres BD, toutes édifiantes. Je cite les premières :
Le Geometricon
Tout est relatif
Le Trou Noir
BigBang,
Mille milliards de soleils
Cosmic Story
Le mur du Silence
A quoi rêvent les robots ?
Le Topologicon
Si on volait
L'informagique
.....
Téléchargeables (librement) ici : http://www.savoir-sans-frontieres.com/J … m#francais

Je partage la position de Wiwaxia, même si je ne pense pas qu'il entrait dans les intentions de LEG d'afficher du mépris pour les Scientifiques...
Personnellement, au prétexte que j'aurais quelques idées originales sur un domaine, je ne me permettrais jamais de les présenter comme des vérités absolues :
- en Mathématiques : qu'en penseraient Cedric Villani and Co ? Je soumettrais d'abord un mémoire argumenté à quelques sommités en espérant qu'elles me lisent et me répondent...
- En médecine ???
- En Informatique ???
and so on...

Certes, la probabilité que se découvre un génie méconnu, self made man, n'est pas nulle, mais elle doit en être assez proche !

Je voudrais d'abord en ce qui concerne Larac2 qu'il précise sa notion de "décimales actives"...

@+

#22 Re : Programmation » crible en python » 14-06-2018 08:26:18

Re,

Je vais revenir aux manettes.
Plus que le routage à faire...

Je réfléchis par petits bouts depuis un moment : je pense pouvoir mener à bien le boulot.
Jusqu'à présent le seul intérêt du stockage des nombres dans Pfam était d'éviter les doublons dans chaque famille. Ainsi, ton programme, une fois ce travail effectué, reprenait ces nombres famille par famille et les traitait ensuite.

J'ai un point d'interrogation : je me demande si en supprimant ce stockage, et pour de très grands nombres n, on ne va pas perdre un temps fou à refaire x fois supplémentaires le même travail de remplacement de 1 par des zéros.

Cela dit, je vais tâcher d'examiner soigneusement ce que tu proposes ci-dessus...

@+

#23 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 14-06-2018 07:12:47

Salut,

Et si on prenait ce genre de problèmes par l'autre bout ?
On a $|x-3|\leqslant 2$,  $x$ est un réel
Donner l'encadrement de $x$.

As-tu déjà résolu (ou déjà vu) ce type d'équations :
[tex]|x+3|-2|x-1|=4[/tex] ?

@+

#24 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 13-06-2018 20:06:35

Re,

Décidément...
Je t'ai répondu post #9.
Ça ne t'a pas paru être la réponse à la question que tu poses ensuite ?
Sauf si ta question porte sur les valeurs absolues...
Or, ton post parle du carré et après des valeurs absolues.
Pour les carrés, c'est correct...
Pour les valeurs absolues, ça ne l'est pas...
Je te l'ai dit : comment peux-tu conclure sur quelque chose qui figure dans ton cours ?
Le cours sert à tirer une conclusion.
La trame est celle-ci :
l'énoncé me dit que (ou : je viens de montrer que)...
Or, le cours dit que ...
Donc, j'en conclus que...

Exemple bateau, un peu simplet...
L'énoncé me donne 4 points ABCD tels que [tex]\overrightarrow{AB}=\overrightarrow{CD}[/tex] et on me demande de prouver que [AC] et [BD] ont le même milieu...
D'après l'énoncé :
[tex]\overrightarrow{AB}=\overrightarrow{CD}[/tex]
Or, je sais que dans ce cas, le quadrilatère ABCD est un parallélogramme.
Donc ABCD est un parallélogramme.
Or, je sais que les diagonales d'un parallélogramme ont le même milieu.
Donc, [AC] et [BD] étant les diagonales du parallélogramme ABCD, [AC] et [BD] ont le même milieu.

Pourquoi soulignes-tu : ensemble ? Tu as peur que je ne m'en souvienne pas ? Rassure-toi, ma mémoire n'est pas vide (ni pleine d'ailleurs : j'ai encore de la place. Jouer aux Echecs, sans sa mémoire c'est se vouer à... l'échec ^_^ Or, je m'efforce de résoudre au moins un problème d'Echecs tous les jours...)

@+

#25 Re : Entraide (collège-lycée) » Donner un encadrement de |a | » 13-06-2018 18:16:40

Re,

C'est quand même curieux de voir que tu t'arrêtes en toute !On distingue alors 2 cas :

1e cas $-3\leqslant a\leqslant 0$
    $a\leqslant 0$
        Donc  |a| = - a

En quoi est-ce la conclusion demandée ? C'est du cours !!!!
1e cas $-3\leqslant a\leqslant 0$
    $a\leqslant 0$  d'où   |a| = - a   
    Donc [tex]0\leqslant |a|\leqslant 3[/tex]

C'est une suite du précédent sujet ? Tiens donc !!!
Alors pourquoi en faire deux sujets séparés ?

@+

Pied de page des forums