查看: 2660|回复: 3

[已经解决] 脚本问题

[复制链接]
梦石
0
星屑
319
在线时间
209 小时
注册时间
2007-6-23
回帖
33
发表于 2013-10-2 23:07:38 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
0.1 <= a <= 0.5
如何用脚本表达a在0.1到0.5之间,最小时为0.1最大时为0.5 ,求简洁的脚本代码

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-10-2 23:27:21 | 显示全部楼层
a.between?(0.1,0.5)
(0.1..0.5)===a
(0.1..0.5).member?a
(0.1..0.5).include?a

评分

参与人数 1梦石 +1 收起 理由
迷糊的安安 + 1 认可答案 附赠66RPG提供的精美好人卡一张^^.

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
135 小时
注册时间
2013-6-10
回帖
28
发表于 2013-10-3 01:35:14 | 显示全部楼层
本帖最后由 xTsukihime 于 2013-10-3 01:40 编辑

我建議
  1. 0.1 <= a && a <= 0.5
复制代码
意思是 ”0.1<= a和 a <= 0.5“
而且比別的快2-4倍
  1. require 'Benchmark'
  2. a = 0.2
  3. n = 100000

  4. Benchmark.bm {|x|
  5.   x.report { n.times{a.between?(0.1,0.5)}}
  6.   x.report { n.times{(0.1..0.5)===a}}
  7.   x.report { n.times{(0.1..0.5).member?a}}
  8.   x.report { n.times{(0.1..0.5).include?a}}
  9.   x.report { n.times{ 0.1 <= a && a <= 0.5}}
  10. }
复制代码
  1.        user     system      total        real
  2.    0.047000   0.000000   0.047000 (  0.034002)
  3.    0.078000   0.000000   0.078000 (  0.088005)
  4.    0.078000   0.000000   0.078000 (  0.081004)
  5.    0.093000   0.000000   0.093000 (  0.081005)
  6.    0.016000   0.000000   0.016000 (  0.025001)
复制代码

点评

阁下有一个失误呢,是0.1 >= a,如果换成小于等于的话只经过了第一次判断自然是比其他的快了2倍+呢  发表于 2013-10-3 12:53

评分

参与人数 1星屑 +100 收起 理由
迷糊的安安 + 100 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2013-10-3 10:14:47 | 显示全部楼层
如果是取值范围,a=(rand(5)+1)/10
如果是判断,if a>=0.1 and a<=0.5
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部