IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Problème mathématiques - calcul


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Problème mathématiques - calcul
    Bonjour,

    Tout d'abord j'espère que mon message s'inscrit bien dans la section calcul scientifique!
    Je dois réaliser un petit programme en python mais j'avoue de pas trop comprendre par ou commencer.
    Le programme est basé sur "la conjoncture de Goldbach", soit : "tout nombre entier pair supérieur à 4 est la somme de deux nombres premier"
    Le programme doit donc recevoir un entier pair, supérieur à 4 et retourner ces deux nombres premiers.

    J'ai fait la partie qui test si on a bien a faire à un nombre pair supérieur à 4 mais apres je ne vois pas du tout comment m'y prendre.

    Merci d'avance, cordialement.

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Problème intéressant, puisque cette conjecture (et pas "conjoncture") n'a pas encore été démontrée.

    Mais avant de coder, tu devrais décrire avec des phrases normales, ou avec un pseudo-code, comment tu vas rechercher les nombres premiers composant le nombre pair en question. Une fois l'algorithme défini, le code python sera facile à établir.

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    On peut imaginer un crible pour récupérer l'ensemble des nombres premiers < nombre, on les met dans un set, puis on parcourt et on regarde si la différence est dans l'ensemble. Si oui, on retourne la paire.

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    En fait, tout dépend de tes ressources concernant les nombres premiers:

    - soit tu peux calculer tous les nombres premiers <n

    - soit tu as un bon test pour savoir si un nombre x est premier ou non.

    La seconde possibilité permet de traiter des grands nombres, mais la programmation est complexe (ex: test de Miller-Rabin).

    Dans tous les cas, on peut proposer la logique simple suivante:

    - on commence par le nombre premier le plus petit = x

    - on calcule y = n-x

    - on teste: si y est premier: on a fini, et on retourne [x,y]

    - sinon, on recommence avec un nouveau x = le nombre premier qui suit x

    - dans le cas où on trouverait un cas qui contredit la conjecture de Goldbach (!), il faut tester si x>y et renvoyer une liste vide et la tester pour émettre un message.

    Il faut éliminer le cas de x=2 qui ne marche que pour n=4 => on renvoie alors [2,2]. L'avantage, c'est qu'on démarre ensuite avec x=3, et on peut ne tester que les valeurs de x impaires (x = x+2).

    Je viens de faire tourner un tel programme pendant quelques minutes et ça a l'air de fonctionner correctement. En tout cas, je n'ai trouvé aucun cas qui contredit la conjecture!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    4 [2,2]
    ...
    5597332 [23, 5597309]
    5597334 [23, 5597311]
    5597336 [127, 5597209]
    5597338 [29, 5597309]
    5597340 [29, 5597311]
    5597342 [31, 5597311]
    ...
    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Merci pour vos réponses, j'ai testé un programme avec à partir de la dernière réponse et quelques modifications apportées, et tout fonctionne à merveille!

    Cordialement.

  6. #6
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Comme cette question m'amusait, j'en ai fait un petit tuto:

    http://python.jpvweb.com/mesrecettes...cture_goldbach

    Bien entendu, des centaines de milliers de vérifications, même réussies, ne remplacent pas une bonne démonstration mathématique qui reste à établir.

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. Problème de calcule en SQL !
    Par FilipeVV dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/09/2005, 11h45
  2. Problème de calcul matricielle
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 29/06/2005, 21h45
  3. problème de calcul des normales par sommet
    Par captainSeb dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/01/2005, 13h42
  4. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  5. Problème de calcul unix_timestamp
    Par petit_stagiaire dans le forum Administration
    Réponses: 2
    Dernier message: 28/04/2004, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo