Bonjour,
D'avance merci de l'attention que vous porterez à ce problème. Je suis nul en algo mais pour un développeur ce problème est trivial. Je cherche à programmer en python un script qui produit une playlist. Cette playlist contient des titres de genres musicaux différents (rock, hiphop, musique française, reggae, etc..). Ces genres musicaux ne sont pas tous présents en même proportion: sur la playlist (il y a 34% de musique française, 33% de rock, 12% de hiphop, 7% de reggae, etc...). Je voudrais que mon programme génère une playlist telle que la répartition des genre soit homogène. C'est à dire, par exemple, si j'ai 33% de rock, alors je veux qu'il y ai un titre rock tous les 3 titres. Si j'ai 7% de reggae alors j'aurai un reggae tous les 14 titres à peu près.
Pour simplifier on peut résoudre mon problème à celui-ci plus simple:
On a 100 jetons de 5 couleurs différentes. On a un tableau de 100 cases. Comment répartir dans le tableau les jetons de couleurs différentes de la façon la plus homogène possible ?
Exemple:
50 jetons verts
30 jetons rouges
10 jetons bleus
7 jetons jaune
3 jetons noirs
On peux calculer facilement la fréquence d'un jeton de chaque couleur.
fr(vert) = 100/50 = 2 => un jeton tous les 2 jetons
fr(rouge) = int(100/30) + 100mod30 = 3 reste 10 => un jeton tous les 3 jetons , je ne sais pas traiter le reste
fr(bleus)= 100/10 = 10 => un jeton tous les 10 jetons
fr(jaune)= int(100/7) + 100mod7 = 14 reste 2 => un jeton tous les 14 jetons, comment traiter le reste ?
fr(noir)= int(100/3) + 100mod3 = 33 reste 1 => un jeton tous les 33, que faire du reste ?
Comment construire un tableau qui respecte ces fréquences le mieux possible ? Que faire des restes ? Comment traiter le cas où plusieurs couleurs différentes doivent tomber sur la même case du tableau ? C'est trop complexe pour ma petite tête, je m'y perds. Merci de m'aider.
Partager