RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Problème cyclique

Forum : VISUAL BASIC
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ VISUAL BASIC

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM VISUAL BASIC

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
fifisname
Nouveau membre
Inscrit : 25/04/2008
Messages : 16
Message
#154232
Posté le 16/06/08 à 15:58
SmileyBonjour,

Imaginez un gâteau découpé en huit part égale ce qui me donne np=8.
Il ya 8 façons de manger ces 8 parts : en partant de la première du haut et en mangeant par la suite la n°2 puis la n°3 … Nous aurrons donc fait tourner le plateau du gateau de 1 part a chaque fois soit m =1. Mon problème, c'est que je dois pas retomber sur une part de gâteau vide avant d'avoir tout manger !

Les solutions testé sont donc :
m=1 : 1-2-3-4-5-6-7-8-1 ça marche
m=2 : 1-3-5-7-1 PERDU
m=3 : 1-4-7-2-5-8-3-6-1 ça marche
m=4 : 1-5-1 PERDU
m=5 : 1-6-3-8-5-2-7-4-1 ça marche
m=6 : 1-7-5-3-1 PERDU
m=7 : 1-8-7-6-5-4-3-2-1 ça marche

Maintenant ce que je voudrais c'est automatisé ça car pour np=8 ça va, je peux faire les solutions à la main, mais pour np=71 par exemple ça devient beuacoup plus fastidieux de calculer les 70 possiblité (np-1)

J'ai donc essayer un petit code mais je me retrouve bloqué


Sub Macro1() For k = 1 To 7 np = Cells(3, 1 + k).Value m = Cells(4, 1 + k).Value valeur = 1 d = 0 g = 0 For i = m To 8 * m Step m g = g + 1 truc = valeur + i - d If truc > np Then truc = -(np - truc) d = i '- (g - 1) * m End If Cells(5, 1 + k).Value = truc Next Next End Sub


Le truc c'est que j'ai écris la ligne truc = -(np - truc) pour que je retombe sur une part de gateau réelle et c'est à partir de la que je voudrais que le calcul me dise si je retombe sur une part vide. dans ce cas ci, le calcul s'arrete et passe à la colonne suivante avec un autre m...

Est-ce que quelqu'un pourrait m'apporter ses lumières ? En plus, J'aimerais en fait que ma feuille de calcul m'écrive OK dans la cellule en dessous du m testé lorsque cela est possible et NON lorsque cela n'est pas possible.

J'espère que j'ai été assez clair avec mon histoire de gateau

Cordialement

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

RGI
Superviseur :
- Logiciels
Modérateur :
- Visual basic
- Bureautique
Avatar de RGI
Inscrit : 21/08/2006
Messages : 1725
Message
#154237
Posté le 16/06/08 à 16:19
Salut

Est-ce que cela peut-être un tirage aléatoire sans doublons ?

RGI
__________________________
PS: VBA pour EXCEL est maintenant dans Bureautique Smiley
merci de poser vos questions VBA à cet endroit
salutations

RGI

Un MERCI en retour c'est sympa
et ne pas oublier le tag :Imageaprès résolution.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

fifisname
Nouveau membre
Inscrit : 25/04/2008
Messages : 16
Message
#154238
Posté le 16/06/08 à 16:24
Je ne comprend pas trop ce que tu veux dire par aléatoire mais ce que je veux c'est que l'on commence toujours par "manger la part n°1" et qu'après on étudie toutes les possibilité de décalage et voir si on tombe sur une part vide avant que tout ne soit mangé.

Et effectivement, on doit pas avoir de doublons.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

RGI
Superviseur :
- Logiciels
Modérateur :
- Visual basic
- Bureautique
Avatar de RGI
Inscrit : 21/08/2006
Messages : 1725
Message
#154240
Posté le 16/06/08 à 16:31
Bonjour

voilà un fichier joint

http://cjoint.com/?gqqBZwyBvb

Cdlt

RGI
__________________________
PS: VBA pour EXCEL est maintenant dans Bureautique Smiley
merci de poser vos questions VBA à cet endroit
salutations

RGI

Un MERCI en retour c'est sympa
et ne pas oublier le tag :Imageaprès résolution.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

RGI
Superviseur :
- Logiciels
Modérateur :
- Visual basic
- Bureautique
Avatar de RGI
Inscrit : 21/08/2006
Messages : 1725
Message
#154241
Posté le 16/06/08 à 16:47
maintenant pour que le tirage commence toujours par 1

remplacer le code par celui-ci



Sub tirer() Dim chiffre(0 To 100) y = Range("A100").End(xlUp).Row Range("B1:B65536").ClearContents [B1] = "Tirage Aléa" [B2] = 1 For i = 0 To y - 2 Randomize boucle: For x = 0 To y - 1 chiffre(x) = Cells(2 + x, 1).Value Next monrnd = Int(Rnd * y) For Change = 2 To y If chiffre(monrnd) = Cells(Change, 2).Value Then GoTo boucle Next Range("B100").End(xlUp).Offset(1, 0).Value = (chiffre(monrnd)) Next End Sub

__________________________
PS: VBA pour EXCEL est maintenant dans Bureautique Smiley
merci de poser vos questions VBA à cet endroit
salutations

RGI

Un MERCI en retour c'est sympa
et ne pas oublier le tag :Imageaprès résolution.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

fifisname
Nouveau membre
Inscrit : 25/04/2008
Messages : 16
Message
#154242
Posté le 16/06/08 à 17:02
Smiley Je ne vois pas trop l'intérêt de ton code pour mon problème...

En fait ce n'est pas un tirage aléatoire.

Je veux juste savoir pour une valeur de m donnée si je vais repasser sur une zone (part) déja prise ou non.

Si ce n'est le cas alors le m testé est une séquence possible. Sinon, le m testé n'est pas une solution car il reste des zones pleines (part de gateau non mangées)

Pour mieux visualiser mon problème, il faut dessiner un cercle et numéroter chaque portion dans le sens horaire.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

RGI
Superviseur :
- Logiciels
Modérateur :
- Visual basic
- Bureautique
Avatar de RGI
Inscrit : 21/08/2006
Messages : 1725
Message
#154244
Posté le 16/06/08 à 17:40
c'est le cas dans le tri sans doublons

en b2 j'ai 1
en b3 je fais un tirage si je tire de nouveau 1 je retire

ex : le tirage est 3
en b4 je fais un tirage si je tire de nouveau 1 ou 3 alors je retire

etc etc ....

mais n'est-ce pas ça le désire ????
__________________________
PS: VBA pour EXCEL est maintenant dans Bureautique Smiley
merci de poser vos questions VBA à cet endroit
salutations

RGI

Un MERCI en retour c'est sympa
et ne pas oublier le tag :Imageaprès résolution.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

fifisname
Nouveau membre
Inscrit : 25/04/2008
Messages : 16
Message
#154246
Posté le 16/06/08 à 18:02
voila un fichier joint avec des explications supplémentaire et un dessin.
http://cjoint.com/?gqr5adumkx

Désolé de mal me faire comprendre mais c'est un peu dure à expliquer.
j'espère qu'avec ceci ça ira un peu mieux

Cordialement

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

fifisname
Nouveau membre
Inscrit : 25/04/2008
Messages : 16
Message
#154345
Posté le 20/06/08 à 09:13
Bonjour,

J'ai trouvé la solution à mon probleme et je met en pices jointe le fichier si cela intéresse quelqu'un (a tout hasard)
http://www.cijoint.fr/cjlink.php?file=cj200806/cijE40kK6s.xls.

Le fichier est serte rudimentaire mais il me permet de trouver ce que je veux.
je l'explique vite :
1- renseigner la première valeur de np
2 - lancer le calcul (cliquer sur séquençage)
3 - en rouge s'affiche les solutions possibles (en fait je fait une comparaison avec le résultat de la première solution qui lui est toujours bon. donc si le résultat est le même, la solution est réalisable)

Je ne sais pas si j'ai été clair avec tout ceci

En tout cas merci d'avoir essayer de m'aider, ça fait plaisir.
bonne continuation à tous Smiley

Fifisname

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM VISUAL BASIC



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.