Tout d'abord : Je sais que ma question est bien plus un problème mathématique/une énigme/... qu'une question vraiment liée au jeu, mais j'ai pensé que, par exemple, le Math StackExchange ne correspondait pas à la question.
La mise en place
Ces derniers jours, j'ai joué à Super Mario Kart Wii en écran partagé à 3 joueurs avec mes colocataires. Après avoir terminé l'une des séries de courses (nous jouons toujours 8 courses à la fois), la question s'est posée de savoir à quel point les scores finaux des 12 pilotes pouvaient être proches.
Le problème
Dans Super Mario Kart Wii, les 12 places d'une course se voient attribuer le nombre de points suivant :
Lieu
Points
1er
15
2ème
12
3ème
10
4ème
8
5ème
7
6ème
6
7ème
5
8ème
4
9ème
3
10ème
2
11ème
1
12ème
0
Donc après 1 course La différence minimale de points entre la dernière et la première place est de 15 .
Et la différence maximale de points est très facile à calculer, même pour N courses, car le même joueur peut toujours arriver 1er tandis qu'un autre joueur peut toujours arriver dernier :
maxDiff(N) = N * 15 - N * 0 = N * 15
Mais comment calculer la minimum différence de points après exactement N courses ?
Ainsi, dans les courses intermédiaires, une répartition non optimale des points est autorisée si elle conduit à une différence minimale de points plus faible après N courses.
Note : Le nombre de points distribués dans une course est de 73.
Ce que nous avons fait jusqu'à présent
Nous avons essayé d'imposer par la force notre cas de N=8
: Mais il y a (naïvement) 12!^8 = 2*10^69
différentes distributions. Cela peut certainement être simplifié parce que l'ordre des 8 courses n'a pas d'importance, mais nous n'avons pas encore trouvé cette solution.
Nous avons imaginé une tactique pour N = even
où nous inversons toujours les places (ainsi, les numéros 1, 2, 3, ... dans les courses impaires deviennent les numéros 12, 11, 10, ... dans les courses paires). Pour N=8
(qui a un nombre moyen de points pour chaque conducteur de 73*8/12 = 48.7
), nous avons obtenu que le conducteur qui passe du n° 1 au n° 12 obtienne 60
points et les pilotes en milieu de peloton (par exemple en passant de la 6e à la 7e place) obtiennent des points. 44
points. Nous obtenons donc :
minDiff(8 selon la tactique ci-dessus) = 60 - 44 = 16
ce qui ne représente qu'une différence d'un point de plus que pour N = 1
.
Mais nous ne savons pas si c'est l'approche la plus efficace et nous ne savons pas comment traiter le cas de manière optimale N = odd
.
Quelqu'un a-t-il trouvé une solution intéressante à ce problème ?