一个算法问题

werdcd 2003-08-20 03:43:27
各位大虾好!!小弟有一点小事请教。具体是这样的:就是说有很多人(包括他们的id,他们的积分等等在一个表里面),我现在要对这个表里面的内容根据他们积分的多少进行排序,取前十名的,对他们进行加分。对不在前十名直列的随机减积分。其中有一点要求:就是加和减刚好相抵消!!
同时,要求这个算法对这个数据库的表的操作要尽量的少,而且不能写这张表,只能读。各位兄台,给点建议吧!!!
...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Akagg 2003-08-20
  • 打赏
  • 举报
回复
对于只能读表而不能减,可以建立一张付表,将加减后的结果存入。
加减的方法如duqiang兄所述
duqiang2050 2003-08-20
  • 打赏
  • 举报
回复
用sql语句排序select * from mytable order by 积分
取得记录数n
前10个就按照你的意愿加,计算出加分的总和为 t

所剩的就是n-10个
用随机函数产生n-10个随机数:r1,r2,r3,r4.....r(n-10),其总和为R
则这n-10个数就可以安这随即比例分配-t,就是说每个分别减去: (r1*t)/R,(r2*t)/R,(r3*t)/R ......(r(n-10)*t)/R
Cline 2003-08-20
  • 打赏
  • 举报
回复
"对他们进行加分" <-----> "而且不能写这张表"
bolipan 2003-08-20
  • 打赏
  • 举报
回复
是不是在前十名的人每个人都进行随机的加分,而后面的所有的人都要进行随机的减分吗?

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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