12/22/05。 cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。
本站页面
右上角是个RandomQuote,是NucleusCMS的一个插件,它维护一个表,里面就是引用的这些语句,输出时就是select * from quote order by rand() limit 1 ,还是比较简单的。但我有点想让它优先显示新近加入的条目,老的东西少出来,原来想先找出最新的n条,再Random输出。但突然想到在ORDER BY上想办法也许更容易。RAND()输出是一个[0,1]的浮点数,如果要体现条目先后,再乘个item_ID就差不多了,这个ID是按先后递增的,改造为ORDER BY RAND()*id DESC,似乎就有点效果了。
算法肯定是不精确的,要增强rand()或id的权重,也许可以再用点平方或开方之类的函数。
12/22/05 00:01:00,由
cathayan发表。目录:
本站
5条评论
让我想起来Linux的进程调度,每个进程都有各自的priority,被调度之后自己的priority就减少(减少的量貌似和什么有关,忘了),这样每个进程被调度运行的机会就大致相同了,又不会出现某个进程 过 长时间占用处理器时间。
http://iusr.jar@gmail.com IUSR 于 12/22/05 09:05:22 发表.
I am watching and will delete all spam.