Path: ...!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!pasdenom.info!from-devjntp Message-ID: JNTP-Route: news2.nemoweb.net JNTP-DataType: Article Subject: Re: TV Zap References: <651dbae6$0$7463$426a74cc@news.free.fr> Newsgroups: fr.sci.maths JNTP-HashClient: OlGf5RG7kyYYd6X4rAnlEVbjTv8 JNTP-ThreadID: 651dbae6$0$7463$426a74cc@news.free.fr JNTP-Uri: http://news2.nemoweb.net/?DataID=ay4iMMu4YMzBgOmGxRcBP0UGoRc@jntp User-Agent: Nemo/0.999a JNTP-OriginServer: news2.nemoweb.net Date: Wed, 04 Oct 23 21:59:50 +0000 Organization: Nemoweb JNTP-Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:109.0) Gecko/20100101 Firefox/115.0 Injection-Info: news2.nemoweb.net; posting-host="020ce5ce37af206065359e759fcc34c2c28de98b"; logging-data="2023-10-04T21:59:50Z/8267762"; posting-account="44@news2.nemoweb.net"; mail-complaints-to="newsmaster@news2.nemoweb.net" JNTP-ProtocolVersion: 0.21.1 JNTP-Server: PhpNemoServer/0.94.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-JNTP-JsonNewsGateway: 0.96 From: pehache Bytes: 3340 Lines: 42 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