Algorithme de calcul pour tournoi [Résolu]

jiantox 1063 Messages postés mardi 30 septembre 2008Date d'inscription 1 octobre 2017 Dernière intervention - 13 janv. 2017 à 12:44 - Dernière réponse : jiantox 1063 Messages postés mardi 30 septembre 2008Date d'inscription 1 octobre 2017 Dernière intervention
- 13 janv. 2017 à 17:54
Bonjour,

je recherche un ou des algorithmes permettant de calculer le numéro du match suivant pour un tournoi.
Dans l'image ci-dessous (en 16 matchs) 1 et 2 donnent 17, 3 et 4 donnent 18 etc.


Je voudrais que l'algorithme puisse fonctionner pour 16 matchs (comme sur l'image) mais aussi pour 8, 4 et 2 (les tournois ne sont pas tous en 16 match dès le départ).

Merci à vous d'avance !
Afficher la suite 
1063Messages postés mardi 30 septembre 2008Date d'inscription 1 octobre 2017 Dernière intervention

12 réponses

Répondre au sujet
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 13 janv. 2017 à 13:27
0
Utile
10
bonjour, peux-tu décrire plus précisément les entrées et les sorties de ton algorithme?
jordane45 19207 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 11 décembre 2017 Dernière intervention > jiantox 1063 Messages postés mardi 30 septembre 2008Date d'inscription 1 octobre 2017 Dernière intervention - 13 janv. 2017 à 17:35
Bonjour
Un algo est independant du langage....
Trouve deja l'algo... avant d'essayer de le coder
jiantox 1063 Messages postés mardi 30 septembre 2008Date d'inscription 1 octobre 2017 Dernière intervention - 13 janv. 2017 à 17:02
Je viens d'essayer sans le TRUNC et non ça ne fonctionne pas

$futur = $nmatch+(1+$match)/2;
ou $nmatch = 16 et $match = 2

$futur est alors égal à 1.5 au lieu de 17 :/
Une autre solution ?
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 13 janv. 2017 à 17:18
$futur = $nmatch+floor((1+$match)/2);
jiantox 1063 Messages postés mardi 30 septembre 2008Date d'inscription 1 octobre 2017 Dernière intervention - 13 janv. 2017 à 17:24
idem :/

$nmatch = 16 et $match = 2
$futur est de 1 au lieu de 17 :/
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 13 janv. 2017 à 17:33
$futur = 16+floor((1+$match)/2);
Commenter la réponse de yg_be
jiantox 1063 Messages postés mardi 30 septembre 2008Date d'inscription 1 octobre 2017 Dernière intervention - 13 janv. 2017 à 17:54
0
Utile
La dernière solution à l'air bonne :

$futur = $nmatch+floor((1+$match)/2);
ou $nmatch est le nombre de match et $match est le match actuel.

Merci beaucoup yg_be !
Commenter la réponse de jiantox