Sujet : Re: TV Zap
De : pehache.7 (at) *nospam* gmail.com (pehache)
Groupes : fr.sci.mathsDate : 04. Oct 2023, 22:59:50
Autres entêtes
Organisation : Nemoweb
Message-ID : <ay4iMMu4YMzBgOmGxRcBP0UGoRc@jntp>
References : 1
User-Agent : Nemo/0.999a
Le 04/10/2023 à 21:20, François Guillet a écrit :
Pour une appli de "zapping" au hasard parmi N chaînes TV, l'utilisateur cliquera un bouton pour avancer et un autre pour reculer dans une séquence aléatoire qui fournira le N° de la chaîne à jouer.
Ce numéro aléatoire des chaînes suivantes et précédentes devra être calculés à partir du N° de chaîne actuellement lue.
S'il regarde par exemple la 23, la suivante pourra être la 5 et la précédente la 47, mais toujours ces deux mêmes à partir de la 23. Il me semble que VLC fait ça.
Bien sûr on pourra générer au départ des séquences différentes à partir d'un nombre S mais ensuite la séquence est déterminée.
Pour des raisons d'implémentation je ne veux pas à voir à mémoriser une séquence aléatoire, c'est toujours par calcul qu'on avancera ou reculera dans la séquence.
Si C est le numéro de la chaîne lue, il me faut donc deux fonctions liées Favant et Farrière tel que A+ = Fav(S,C) et A- = Far(S,C), où A+ et A- sont les numéros des chaînes aléatoires suivantes et précédentes.
Et on devra avoir C = Far(S,A+) = Fav(S,A-) puisque la séquence est "figée" et utilisée de façon bi-directionnelle.
Contrainte supplémentaire, le tour de la séquence devra se faire sur toutes les chaînes et sans doublon. Quelles fonctions les plus simples possibles pourrait-on utiliser ?
Si pgcd(N,S) = 1, alors
Fav(S,C) = modulo(C-1+S,N)+1
Fav(S,C) = modulo(C-1-S,N)+1
répond aux critères
Une fois S fixé la série n'a en réalité rien d'aléatoire, mais certains choix de S donnent des séries ont qui l'air (même si seulement l'air) aléatoires.
N = 12
S = 1 : 1 2 3 4 5 6 7 8 9 10 11 12
S = 3 : 1 4 7 10 1 4 7 10 1 4 7 10
S = 5 : 1 6 11 4 9 2 7 12 5 10 3 8
S = 7 : 1 8 3 10 5 12 7 2 9 4 11 6
S = 11: 1 12 11 10 9 8 7 6 5 4 3 2