设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3267|回复: 21
打印 上一主题 下一主题

随机获得正负号的方法

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

跳转到指定楼层
1
发表于 2008-12-8 05:16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
头像被屏蔽

Lv1.梦旅人 (禁止发言)

lov Peii 4ever

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-10-28
帖子
423
2
发表于 2008-12-8 05:44:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-5
帖子
730
3
发表于 2008-12-8 05:55:21 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1040
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

4
发表于 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
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

5
发表于 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.写得可能有错误,欢迎大家指正
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
625
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

6
发表于 2008-12-14 06:53:39 | 只看该作者
def rand_sign(num)
  return [num, -num][rand(2)]
end

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

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

7
发表于 2008-12-14 06:55:03 | 只看该作者
以下引用snstar2006于2008-12-13 22:53:39的发言:

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

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

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-31
帖子
65
8
发表于 2008-12-14 07:52:08 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
625
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

9
发表于 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 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

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

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

10
发表于 2008-12-14 08:53:55 | 只看该作者
def rand_sign(num)
return (2*rand(2)-1) * num
end

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-19 12:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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