Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope
Python & Zope Forum d'entraide sur la programmation en Python et Zope. Avant de poster -> F.A.Q Python
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/02/2013, 11h29   #1
marineluciano
Invité de passage
 
Femme
Inscription : février 2013
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations forums :
Inscription : février 2013
Messages : 8
Points : 0
Points : 0
Par défaut programme python probleme

Bonjour à tous

Je vous explique mon problème,
je dois crée un programme pour mon examen de juin qui se rapporte sur les interactions entre molécules.
Une molécule est par exemple représentée par le chiffre 1, l'autre par le chiffre 2,.. et si l'on permute deux 1 , l'état ne change pas mais si on permute un 1 et un 2 l'etat change
J'ai commencé mais je me suis vite arretée car je ne sais plus quoi faire
Il faudrait donc que le programme puisse me dire le nombre d'état possible.

Mon probleme en python c'est de faire le quadrillage avec les chiffres à l'intérieur et de trouver un programme qui sache compter le nombre d'interactions.

Ce que j'ai déjà fait c'est de trouver un truc qui puisse mélanger les chiffres :

>>> import random
>>> a=[1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2]
>>> len(a)
21
>>> a=a+[1,1,1,1]
>>> a
[1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1]
>>> len(a)
25
>>> random.shuffle(a)
>>> a
[1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2]
>>> random.shuffle(a)
>>> a
[1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1]
marineluciano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2013, 12h58   #2
VinsS
Membre Expert
 
Homme
Inscription : octobre 2008
Messages : 972
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : octobre 2008
Messages : 972
Points : 1 454
Points : 1 454
Salut,

Peux-tu clarifier ceci:
Citation:
Une molécule est par exemple représentée par le chiffre 1, l'autre par le chiffre 2,.. et si l'on permute deux 1 , l'état ne change pas mais si on permute un 1 et un 2 l'etat change
Donc le nombre de 1 et le nombre de 2 ne changent jamais, est-ce bien cela ?
En quelque sorte seul l'ordre change ?
__________________
Vincent
Oqapy . Qarte . PaQager
VinsS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2013, 19h34   #3
marineluciano
Invité de passage
 
Femme
Inscription : février 2013
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations forums :
Inscription : février 2013
Messages : 8
Points : 0
Points : 0
Ouii c'est cela les particules 1 et 2 ne changent jamais. Seul l'ordre changent
par exemple si on a :
1 1 1
1 1 1
1 1 1

si on permute deux 1 on ne voit pas de différence donc on a le meme etat

mais si on a :

1 2 2
2 1 1
1 1 2

et qu'on permute un 1 et un 2 au hasard on aura par exemple:

2 1 2
2 1 1
1 1 2

donc l'etat change ici

et c'est cela que le programme doit savoir me dire :/
Dans mon cours j'ai une formule qui me permet de savoir cela mais je ne sais pas si j'en ai besoin

Merci
marineluciano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2013, 23h30   #4
TimDark
Nouveau Membre du Club
 
Homme
Inscription : janvier 2013
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2013
Messages : 28
Points : 25
Points : 25
Tu doit donc faire un programme qui compte (ou calcule) le nombre d'états possibles ?

Avant de te lancer dans la programmation à tu établis un algorithme, (une liste de taches à effectuer pour trouver ton résultat) ?
Il te sera peut-être plus simple de raisonner par observation dans un premier temps.

Par exemple:
Si tu as [1,2] un seul autre état est possible: [2,1].
Si tu as [1,2,1], deux autres états sont possibles: [2,1,1], [1,1,2]
Si tu as [1,1,2,1], trois autres états sont possibles: [1,2,1,1], [2,1,1,1], [1,1,1,2]
Etc ...

En raisonnant ainsi, tu trouvera peut être un lien entre le nombre de 1, de 2 et le nombre d'états différents possibles, et tu pourra ensuite traduire ta méthode en Python.

(En espérant avoir servit par le biais de ce message.)
TimDark est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/02/2013, 07h08   #5
PauseKawa
Expert Confirmé
 
Avatar de PauseKawa
 
Homme Patrice BLANGARIN
Technicien Help Desk, maintenance, réseau, système et +
Inscription : juin 2006
Messages : 2 650
Détails du profil
Informations personnelles :
Nom : Homme Patrice BLANGARIN
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien Help Desk, maintenance, réseau, système et +
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2006
Messages : 2 650
Points : 3 776
Points : 3 776
Bonjour,

Ce n'est pas tout simplement une comparaison des éléments ayant le même index dans les listes ?
Code :
l1[idx] == l2[idx] == l3[idx]
Le nombre de possibilités étant multiplié par le nombre de liste.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
>>> df = 0
>>> l1 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1]
>>> l2 = [1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2]
>>> l3 = [1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1]
>>> for idx in range(len(l1)):
...     if not (l1[idx] == l2[idx] == l3[idx]):
...         df += 1
... 
>>> df*3
57
>>> df
19
?

@+
__________________
Merci d'utiliser le forum pour les questions techniques.
PauseKawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 07h23   #6
VinsS
Membre Expert
 
Homme
Inscription : octobre 2008
Messages : 972
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : octobre 2008
Messages : 972
Points : 1 454
Points : 1 454
Moi, je le vois comme un problème binaire.

Pour une molécule donnée: 1121122211212212
remplaçons les 2 par des 0 1101100011010010

Puisqu'il est dit que le nombre de 1 ne peut pas varier et que dans mon exemple j'ai huit 1,
le nombre de combinaisons possibles s'étend de:

0000000011111111 (255 en décimal)

à:

1111111100000000 (65280 en décimal)

dont il ne faut conserver que les valeurs (binaires) ne comportant que huit 1.

Voila, à vos cours de binaire, moi j'ai eu une longue nuit.
__________________
Vincent
Oqapy . Qarte . PaQager
VinsS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 10h55   #7
marineluciano
Invité de passage
 
Femme
Inscription : février 2013
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations forums :
Inscription : février 2013
Messages : 8
Points : 0
Points : 0
Merci pour vos réponses

Mais je ne comprend pas l'explication "binaire" ni celui avec l'index :/
Désolé, je suis vraiment débutante de débutante en python
marineluciano est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h22.


 
 
 
 
Partenaires

Hébergement Web