This is a simple implementation of invese CDF sampling method using matlab.
The target function used in this file is a multinomial distribution.
you can modify this part (I highlighted in comment) your desiring function
SHOW FULL COLUMNS FROM `jrk_downrecords` [ RunTime:0.002041s ]
SELECT `a`.`aid`,`a`.`title`,`a`.`create_time`,`m`.`username` FROM `jrk_downrecords` `a` INNER JOIN `jrk_member` `m` ON `a`.`uid`=`m`.`id` WHERE `a`.`status` = 1 GROUP BY `a`.`aid` ORDER BY `a`.`create_time` DESC LIMIT 10 [ RunTime:0.089240s ]
SHOW FULL COLUMNS FROM `jrk_tagrecords` [ RunTime:0.002187s ]
SELECT * FROM `jrk_tagrecords` WHERE `status` = 1 ORDER BY `num` DESC LIMIT 20 [ RunTime:0.001913s ]
SHOW FULL COLUMNS FROM `jrk_member` [ RunTime:0.002080s ]
SELECT `id`,`username`,`userhead`,`usertime` FROM `jrk_member` WHERE `status` = 1 ORDER BY `usertime` DESC LIMIT 10 [ RunTime:0.003806s ]
SHOW FULL COLUMNS FROM `jrk_searchrecords` [ RunTime:0.001969s ]
SELECT * FROM `jrk_searchrecords` WHERE `status` = 1 ORDER BY `num` DESC LIMIT 5 [ RunTime:0.003220s ]
SELECT aid,title,count(aid) as c FROM `jrk_downrecords` GROUP BY `aid` ORDER BY `c` DESC LIMIT 10 [ RunTime:0.014878s ]
SHOW FULL COLUMNS FROM `jrk_articles` [ RunTime:0.002309s ]
UPDATE `jrk_articles` SET `hits` = 1 WHERE `id` = 16684 [ RunTime:0.001107s ]