查看: 3615|回复: 21

随机获得正负号的方法

  [复制链接]
头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-12-8 05:16:37 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
头像被屏蔽

lov Peii 4ever

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-10-28
回帖
415
发表于 2008-12-8 05:44:40 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-5
回帖
696
发表于 2008-12-8 05:55:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2008-12-8 08:11:33 | 显示全部楼层
-4 到 4
=
-4 +rand(4 * 2 + 1)
即
-4 + rand(9)


上面一時看錯==b,隨機正負應該這樣:
因為 -4 到 -4 的距離是0,到 4 的距離是8
所以
-4 + ( 8 * rand(2) ) # -4 加上(8×0 或者 8×1)
做成函數就是
def rands(val)
  val = -val if val < 0
  n   = -val + (2 * val * rand(2))
  return n
end
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

精灵族の天使<

梦石
0
星屑
1712
在线时间
3039 小时
注册时间
2007-3-16
回帖
33092

开拓者贵宾

发表于 2008-12-8 08:22:22 | 显示全部楼层
def randsign(num = nil)
int a
unless num != nil
num = num.to_i
a = -1 + (rand(1)*2)
num *= a
return num
else
return nil
end
直接胡乱写了个函数……调用的时候直接用randsign(数字)则返回随机正负号的数字。
其他的char会转换为数字,如果是nil则返回nil
p.s.写得可能有错误,欢迎大家指正
回复

使用道具 举报

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

发表于 2008-12-14 06:53:39 | 显示全部楼层
def rand_sign(num)
  return [num, -num][rand(2)]
end

用數組.....
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复

使用道具 举报

精灵族の天使<

梦石
0
星屑
1712
在线时间
3039 小时
注册时间
2007-3-16
回帖
33092

开拓者贵宾

发表于 2008-12-14 06:55:03 | 显示全部楼层
以下引用snstar2006于2008-12-13 22:53:39的发言:

def rand_sign(num)
return [num, -num][rand(2)]
end

真不愧为流星,我怎么忘记使用数组了呢……
自我PIA飞之……
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-31
回帖
45
发表于 2008-12-14 07:52:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

发表于 2008-12-14 08:48:00 | 显示全部楼层
以下引用sonwood于2008-12-13 23:52:08的发言:
a=rand(2)
(a==1)?(a=-1):(a=1)

缩短了就是:
a = rand(2)==1? -1 : 1


跟美兽说的一样,方法很多,没有现成
1. [num, -num][rand(2)]
2. num = rand(2)==1 ? num : -num
3. num *= rand(2)==1 ? 1 : -1
4. num *= -1 if rand(2)==1

那个看着美你就用那个吧
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复

使用道具 举报

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
回帖
6429

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

发表于 2008-12-14 08:53:55 | 显示全部楼层
def rand_sign(num)
return (2*rand(2)-1) * num
end

方法很多的说
神隐中,偶尔诈尸
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部