From: ben.usenet@bsb.me.uk   
      
   Malcolm McLean writes:   
      
   > You have a list of candidates, ranked by score. You want to try them   
   > out in order, with the better candidates being tried first. However   
   > you don't want the process to be deterministic - each run should yield   
   > a separate order. And you want even low-ranked candidates to have some   
   > chance of being tried early.   
   >   
   > Is there a partial sort / partial shuffle which can achieve this?   
      
   Let me check is I know what you mean. You have a list of words with   
   scores   
      
    12 apple   
    10 cat   
    9 dog   
    8 egg   
    5 fox   
      
   and you want a quasi-sort that might just (but very very rarely)   
   produce   
      
    5 fox   
    8 egg   
    9 dog   
    10 cat   
    12 apple   
      
   but will produce these orderings much more frequently:   
      
    12 apple 10 cat 10 cat   
    9 dog 9 dog 12 apple   
    10 cat 12 apple 8 egg   
    8 egg 8 egg 5 fox   
    5 fox 5 fox 9 dog   
      
   ? First thought. Have a random field, r, that is chosen from a normal   
   distribution prior to each sort. Then sort by score+r. By adjusting   
   the distribution's parameters, you will get different probabilities of   
   re-arrangement from almost none (with, say, mean=0, sdev=0.1) to chaotic   
   when mean=1000 sdev=10000.   
      
   --   
   Ben.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|