新手问一个关于取值的问题,急,在线等~~~~~

ghost_zhihan 2005-05-09 04:32:27
有表ads
字段id为int类型,kw_jg为浮点类型
---------------
id kw_jg
---------------
1 22
2 24
3 34
4 25
5 18
6 29
7 86
8 93
9 27
·
·
·
·
·
--------------------------------------
我想随机取其中8条记录,kw_jg值越高出现的机率越高。

注意:kw_jg的值越高出现的机率越高
注意:kw_jg的值越高出现的机率越高
注意:kw_jg的值越高出现的机率越高

怎么解决???请高手指点


...全文
244 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghost_zhihan 2005-05-10
  • 打赏
  • 举报
回复
贪得无厌中~~~~~ -_-
ghost_zhihan 2005-05-10
  • 打赏
  • 举报
回复
好的。谢谢楼上的提醒。

不知谁还有好的方法,能在这里说说的吗?

pla18sep 2005-05-10
  • 打赏
  • 举报
回复
jaroc818(腾格里的狼):先用randomize随机取出里面的几个值,在比较取出的值,取最大的!
------------------------------------------------------------------------------------
这个方法,
个人认为可行。
至于ghost_zhihan()问,
取多少个合理,
我觉得,
这个还是要楼主自己来测试,
毕竟需求你自己最清楚!
水平有限,
无法给出更多实质性建议,
算是给楼主顶啦!
--------------------------
顶贴,请不要只用UP,OK?
ghost_zhihan 2005-05-10
  • 打赏
  • 举报
回复
up
hzw66 2005-05-10
  • 打赏
  • 举报
回复
<%

'请先做好数据库连接对象conn

dim sum,i,j,rs,kw(8)

'sum小于等于总记录数
sum = 100

for i = 0 to 7
kw(i) = rand(sum)
for j = 0 to i - 1
if kw(j) = kw(i) then
i = i - 1
exit for
end if
next
next

sql="select * from ads order by kw_jg desc"

set rs = conn.execute(sql)

j = 0
for i = 1 to sum
if i = kw(j) then
'输出显示
response.Write rs("kw_jg") & "<br>"
end if
rs.movenext
j = j + 1
next

function rand(sum)
dim n
Randomize
n = sum * rnd
n = n * rnd
'本句重复的次数与总记录数根据具体情况而定
n = n * rnd
n = n * rnd + 1
rand = int(n)
end function

%>
ghost_zhihan 2005-05-10
  • 打赏
  • 举报
回复
如果这样,那取多少个合理呢?
jaroc818 2005-05-10
  • 打赏
  • 举报
回复
应该可以首先用randomize随机取出里面的几个值,在比较取出的值,取最大的,就可以了吧
chw8219 2005-05-10
  • 打赏
  • 举报
回复
我不会,期待高手出现,帮你up下下
sungcong 2005-05-10
  • 打赏
  • 举报
回复
值得关注!帮你顶
ghost_zhihan 2005-05-10
  • 打赏
  • 举报
回复
up~~~~~
ghost_zhihan 2005-05-10
  • 打赏
  • 举报
回复
我顶啊~~~~
ghost_zhihan 2005-05-10
  • 打赏
  • 举报
回复
继续中~~~~~
ghost_zhihan 2005-05-09
  • 打赏
  • 举报
回复
可能是我笨吧,还是不知道怎么和数据库连起来,把想要的记录显示出来。

有大哥能给个这样的随机取值吗???

要求:随机取且kw_jg的值越高出现的机率越高。

分不够可以再添的啊!

hzw66 2005-05-09
  • 打赏
  • 举报
回复
n = n * rnd
'本句重复的次数与总记录数根据具体情况而定

是说,可以根据总数的变大而再重复 n = n * rnd 这行
多重复一次结果就向 1 接近一些
你可以多试试,试到满意为止
iexapl 2005-05-09
  • 打赏
  • 举报
回复
UP
ghost_zhihan 2005-05-09
  • 打赏
  • 举报
回复
谢谢胡大哥!

可是我算法学的不好,不知道怎么用。

大哥能抽空帮写个吗?

还有:
n = m * rnd
n = n * rnd
'本句重复的次数与总记录数根据具体情况而定 ''这里不明白
n = n * rnd
n = n * rnd + 1
hzw66 2005-05-09
  • 打赏
  • 举报
回复
我简单写个算了,你可以再想更好的算法
比如:正弦,余弦,开方等

dim m,n

m = 100
n = 1

Randomize

n = m * rnd
n = n * rnd
'本句重复的次数与总记录数根据具体情况而定
n = n * rnd
n = n * rnd + 1

response.Write int(n)

这段程序求得一个随机数,越小的出现越多,不很完美哦
ghost_zhihan 2005-05-09
  • 打赏
  • 举报
回复
楼上的,谢谢你了啊。

哪位大侠有好的解决之道吗?这不会属于技术机密吧?呵呵。。。
chunling2 2005-05-09
  • 打赏
  • 举报
回复
随机就会,但要高的出现机率高,我唯有帮你顶一下了,
ghost_zhihan 2005-05-09
  • 打赏
  • 举报
回复
不多,就几百条记录。
加载更多回复(4)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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