找回密码
 点一下
楼主: 嘿拉风

求一个随机整数的算法

[复制链接]
发表于 2009-5-27 11:07:44 | 显示全部楼层
随机范围>>取值数组大小时,只要直接随机,然后判断和之前的随机值是否一致即可,具体问题要具体分析,不可一概而论
回复

使用道具 举报

发表于 2009-5-27 16:39:47 | 显示全部楼层

回 15楼(actboy168) 的帖子

哦 明白了 就是每个都是从剩余元素当中随机的
回复

使用道具 举报

发表于 2009-5-27 19:09:00 | 显示全部楼层
hmmmm~~介绍一个不熟悉算法的初学者都能理解的法子~~

创造30个小精灵,并用自定义值逐一编号,然后扔进一个单位组里.
每次从单位组里剔除一个随机单位.OK

当然这是毫不顾及效率的做法,但是简单也易于理解。适合初学者使用。
回复

使用道具 举报

发表于 2009-5-31 09:22:30 | 显示全部楼层
[jass]
local integer array si
local integer array ri
local integer i = 1
local integer n

loop
exitwhen i > 30
set si = i
set i = i + 1
endloop

set i = 1
loop
exitwhen i > 10
set n = GetRandomInt(1,30)
if si[n]!= 0 then
set ri = sr[n]
set si[n] = 0
set i = i + 1
endif
endloop
[/jass]
回复

使用道具 举报

发表于 2009-5-31 10:11:12 | 显示全部楼层

LS如果随机范围不太大,碰运气了
回复

使用道具 举报

发表于 2009-5-31 10:22:31 | 显示全部楼层
其实是这样的
int num = MaxNum
int hType[MaxNum]
LOOP:START
ret = Random(0,num)
PUSH(ret)
if ret != num
{
hType[ret] = hType[num]
num--
}
JMP LOOP:START
回复

使用道具 举报

发表于 2009-5-31 10:30:44 | 显示全部楼层
  [s:198]
这是什么.......
汇编,c的杂合体?
回复

使用道具 举报

发表于 2009-5-31 10:37:45 | 显示全部楼层
伪代码。。
回复

使用道具 举报

发表于 2009-5-31 10:39:23 | 显示全部楼层
PUSH(ret)
这一句有用吗?
放到寄存器里面是为了以后的调用更快?
回复

使用道具 举报

发表于 2009-5-31 10:45:06 | 显示全部楼层
其实这个相当于return and continue...
回复

使用道具 举报

发表于 2009-5-31 10:49:20 | 显示全部楼层

不会....
return and continue 编译出来是这玩意啊.....
回复

使用道具 举报

发表于 2009-5-31 11:11:46 | 显示全部楼层
意思是等待return..
回复

使用道具 举报

发表于 2009-5-31 11:16:31 | 显示全部楼层
MS你这个跟汇编的含义不一样呢,虽然我只知道几个操作码
回复

使用道具 举报

发表于 2009-5-31 11:36:42 | 显示全部楼层
[codes=jass]
globals
    integer array random
endglobals

function XXX takes nothing returns nothing
    local integer i=1
    local integer x
    local integer y
    local integer array source
    loop
        set x=GetRandomInt(1,31-i)
        set y=source[x]
        if y==0 then
            set random=x
        else
            set random=y
        endif
        set source[x]=31-i
        set i=i+1
        exitwhen i>10
    endloop
endfunction
[/codes]
这样就不用对source[]初始化了,循环次数也稳定了。
回复

使用道具 举报

发表于 2009-5-31 16:59:33 | 显示全部楼层
其实我们应该坚决的鄙视一下eff
回复

使用道具 举报

发表于 2009-6-1 13:29:59 | 显示全部楼层
都说了是伪代码了。。

其实就是弹出一个数据然后重组List。。
回复

使用道具 举报

发表于 2009-6-1 13:39:44 | 显示全部楼层
BS eff
说些看不懂的东西
回复

使用道具 举报

发表于 2009-6-1 16:04:40 | 显示全部楼层
头目的方法和我曾经想过的很像,不过比我的要好得多………………
我想的是做30种不同附加值的单位,然后弄到单位池里去………………
回复

使用道具 举报

发表于 2009-6-1 21:11:12 | 显示全部楼层
泪流满面,整楼只有头目的办法让我知道我还懂一点WE.....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-7-21 22:21 , Processed in 0.030270 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表