[mythtv] MythMusic playlists still not intelligent enough IMHO

Dan Wilga mythtv-dev2 at dwilga-linux1.amherst.edu
Thu Apr 19 13:21:40 UTC 2007


At 10:45 PM -0700 4/18/07, Eskil Heyn Olsen wrote:
>After looking at this, it seems that the pseudorandom order is just
>continuously adding P % N to S and wrapping at N. So essentially, let N
>be 50, P be 15485863 (big prime) and S0 be 20.
>
>  S1 = (20 + 15485863) % 50 = 33
>  S2 = (33 + 15485863) % 50 = 46
>  S3 = (46 + 15485863) % 50 = 9
>  S4 = (9 + 15485863) % 50 = 22

Considering these numbers by themselves, they don't seem terribly 
random. But if you only have 50 songs (that's what, 4 CDs worth?), 
then I'd say this progression is indeed suitable. When you have a 
more realistic number (like 500), then you get:

10, 373, 236, 99, 462, 325, 188, 51, 414, 277

which, again, seems like a good distribution to me. Here's a Perl 
program to run tests with:

#!/usr/bin/perl

$s = 10;
$n = 500;
$p = 15485863;

foreach( 1..10 ) {
   print "$s, ";
   $s = ($s+$p) % $n;
}

Of course, if this still isn't satisfactorily random, there's no 
stopping you from writing in a list of P's from which one value is 
randomly chosen each time you start playing. Or, as Chris Hamilton 
suggests, you can go with another algorithm that is similarly 
efficient.
-- 
Dan Wilga                                                        "Ook."


More information about the mythtv-dev mailing list