Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

programme pour une tombola


sunquan

Messages recommandés

  • Modérateurs

L'algorithme est très simple si le langage que tu as choisi dispose d'une fonction random (en général, elle restitue à chaque appel un nombre aléatoire compris entre 0 inclus et 1 exclu, qu'il te suffit de multiplier par 70 et arrondir à l'entier supérieur). Il ne te reste plus qu'à effectuer autant de tirages que nécessaire pour obtenir 3 résultats distincts. :P

 

// initialisations
ntirages = 0
boucle i de 1 à 70
  tirage(i) = faux
  fin-boucle
// itération
tant que ntirages < 3
  xtirage = partie entière ( 70 * random ) + 1
  si tirage(xtirage) = faux
  tirage(xtirage) = vrai
  ntirages++
  fin-si
  fin-tant que
// édition des résultats
boucle i de 1 à 70
  si tirage(i) = vrai
  print i
  fin si
  fin-boucle
fin-programme

Lien vers le commentaire
Partager sur d’autres sites

Le même mais avec une complexité O(n) (parce qu'il n'y a pas de re-bouclage en cas de tirage d'un numéro déjà sorti...) et avec un affichage dans l'ordre du tirage

// initialisations
ntirages = 0
boucle i de 1 à 70
ajouter_un_element ( pasencoresorti , i)
fin-boucle

// tirages
tant que ntirages < 3 et taille ( pasencoresorti ) > 0
index = partie entière ( random * taille ( pasencoresorti ) )
elementsorti = retirer_un_element ( pasencoresorti, index )
ajouter_un_element ( tableau_des_tirages, elementsorti )
ntirages = ntirages + 1
fin-tant-que

// affichage
boucle i de 1 à 3
afficher tableau_des_tirages[i]
fin-boucle

Après, il faut trouver un langage qui sache manipuler autre chose que des tableaux (encore que, même avec des tableaux il est possible de conserver ce comportement), parce qu'avec des "collections" c'est plus facile d'ajouter / retirer des éléments...

Lien vers le commentaire
Partager sur d’autres sites

  • Modérateurs

Bravo (peut-être) KC, car tant que tu ne nous a pas dévoilé la teneur des fonctions ajouter_un_element, retirer_un_element et afficher, nous restons Gros-Jean comme devant* ! :P

 

 

 

 

__________

* Être Gros-Jean comme devant : ne pas être plus avancé

Lien vers le commentaire
Partager sur d’autres sites

Voilà l'implémentation Javascript :

http://kewlcat.no-ip.org/tests/tirages.html

 

Les fonctions en question (ajouter et retirer) sont parfois appelées push() et pop() ou append() et remove() ou encore add() et del() ... Ca dépend des langages et ça dépend des objets disponibles...

En Javascript j'utilise push() et splice(). splice présente l'interêt de retourner l'élément supprimé ce qui permet de l'ajouter au vol à la collection de chiffres tirés.

Lien vers le commentaire
Partager sur d’autres sites

C'est vrai, fallait pas commencer avec ton pseudo-code ! C'est ta faute :-P

Bon, maintenant, le plus fun ça va être de transcrire ça en C... Pas l'algo en lui-même parce qu'il est finalement plutôt simple, mais coder la structure de données qui va servir à émuler la collection :-)

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...