求一个php关于随机生成题库的算法

huangkai8311130 2011-06-25 10:46:43
table数据库内容:

id content fenshu
1 内容1 10
2 内容2 5
3 内容3 5
4 内容4 15
5 内容5 10
6 内容6 10
7 内容7 10
8 内容8 15
。。。。。。。。。。
。。。。。。。。。。

最终查询出的结果想要这样的: 总分要求100(这个可以动态设置) 得到的结果的数据 这些数据的分数 合计要等于100 但这些数据的ID是不重复的。

可能的结果是:
id content fenshu
1 * 10
3 * 5
4 * 15
7 * 10
10 * *
15....
18....
19.....

得出的条数不固定的~~~ 有可能只有10条记录(10个10分的题目) 也有可能20个记录(20个5分的记录)依次类推,,当然 记录里面单个的分数 不能超过设置的 如果单个题目分数为100 总分数设置为100 那取得的记录只有一个 就是那个100分的 也是可以的~~~

总设置的分数 就只考虑 总分为100 或者 120 150 200.... 这些能被2整除的

求教高人指点语句的写法~~~谢谢
...全文
322 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxhlxx 2011-06-30
  • 打赏
  • 举报
回复
动态规划,数据比较少的可以很快,目的也是取出一种可能,只要这种可能每次是随机的取出一条就行,这样会很快,回头演剧下,不是很难,就是产生随机后,再用动态规划,取到一条就跳出
guitarer105 2011-06-28
  • 打赏
  • 举报
回复
5分的取4道,10分的取6道,20分的取1道,合起来100,类似这样的取法,随机取。 实际还可以加上难度系数,考察范围的字段来做select的算法条件。
a4680101 2011-06-28
  • 打赏
  • 举报
回复
给你提供一个思路,假如说你数据库里有1000道题 随即抽取一百道题。你可以先随即产生100个数字 不能重复,然后在用这些数字去数据库与ID为基础进行循环出来。
jlzan1314 2011-06-28
  • 打赏
  • 举报
回复
动态规划算法的变体?有点难!
y75674952 2011-06-27
  • 打赏
  • 举报
回复
select 随机查询出20或40题.. 如果题目少. 可以全部查询出来.

然后用PHP来处理...

比如设置的100分.

fenshu(100);
function fenshu($num){
$j = 0 ; //算分;
$sql = "SELECT id content fenshu FROM a ORDER BY RAND() LIMIT 5" ;
$rs = $db->query($sql); //这个你自己换.查出来 .是个数组.
foreach($rs as $key => $val){
$j += $val['fenshu'];
if($j>$num){
continue;
}else{
$count[] = $rs[$key];
}
}
return $count;
}

手写的 没测试..思路大致这样 .

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧