找回密码
 点一下
查看: 2592|回复: 17

请教大哥哥们几个问题

[复制链接]
发表于 2008-2-19 18:52:07 | 显示全部楼层 |阅读模式
[codes=jass]function Trig_diao2_Func011C takes nothing returns boolean
    if ( not ( GetUnitLevel(GetTriggerUnit()) >= 6 ) ) then
        return false
    endif
    if ( not ( GetRandomInt(1, 75) == 90 ) ) then
        return false
    endif
    return true
endfunction[/codes]
请高手帮我说说这里是什么意思
[codes=jass]if ( not ( GetRandomInt(1, 75) == 90 ) ) then[/codes]
特别是这句话
麻烦各位大哥哥了,小弟不才,在这里向各位先谢谢了.
发表于 2008-2-19 18:58:49 | 显示全部楼层
如果从1到75中选一个随即整数  它不等于90  就干很黄 很暴力的事情
回复

使用道具 举报

发表于 2008-2-19 19:02:49 | 显示全部楼层
function Trig_diao2_Func011C takes nothing returns boolean
//声明一个名为Trig_diao2_Func011C的函数,无参数,返回值为布尔值
    if ( not ( GetUnitLevel(GetTriggerUnit()) >= 6 ) ) then
//如果触发单位等级大于等于6不成立
        return false
//返回false(假)
    endif
//结束if语句
    if ( not ( GetRandomInt(1, 75) == 90 ) ) then
//如果1到75的随机整数等于90不成立(为什么我觉得这句话有问题)
        return false
//返回false(假)
    endif
//结束if语句
    return true
//返回true(真)
endfunction
//函数结束

说明一下,当函数返回一个之后会自动中止,后面的内容不会执行
回复

使用道具 举报

 楼主| 发表于 2008-2-19 19:04:27 | 显示全部楼层
不懂啊 郁闷  是不是指的是概率问题啊?是指概率百分之几吧?
小弟只是想提高下物品的暴率啊 请大哥哥指教一下
回复

使用道具 举报

发表于 2008-2-19 19:06:28 | 显示全部楼层
你这个明显是T转过来的,为什么不用纯T呢………………
回复

使用道具 举报

发表于 2008-2-19 19:08:00 | 显示全部楼层
他都说了只是想提高爆率- - 改图的孩子
回复

使用道具 举报

发表于 2008-2-19 19:09:03 | 显示全部楼层
我在想那个条件= =   随即1到75在怎么样也不可能等于90啊- - 无语中  思考中 难道.......
回复

使用道具 举报

 楼主| 发表于 2008-2-19 19:11:24 | 显示全部楼层

发错了 一概是这句话吧
[codes=jass]function Trig_diao2_Func010C takes nothing returns boolean
    if ( not ( GetHeroLevel(GetTriggerUnit()) >= 42 ) ) then
        return false
    endif
    if ( not ( GetRandomInt(1, 100) == 4 ) ) then
        return false
    endif
    return true
endfunction[/codes]
郁闷
回复

使用道具 举报

发表于 2008-2-19 19:13:48 | 显示全部楼层
这个参照2楼,就是触发单位等级>=42而且随机整数(1,100)等于4(也就是1%几率)时返回真,否则返回假
回复

使用道具 举报

 楼主| 发表于 2008-2-19 19:18:43 | 显示全部楼层
哦 那我要提高概率的话 假如是25%呢?那要怎么改啊.
真不好意思让你费心了 呵呵
回复

使用道具 举报

发表于 2008-2-19 19:27:17 | 显示全部楼层
if ( not ( GetRandomInt(1, 100) == 4 ) ) then
==>
if ( not ( GetRandomInt(1, 100) <=25 ) ) then
回复

使用道具 举报

 楼主| 发表于 2008-2-19 19:32:34 | 显示全部楼层
哦 谢谢啦 大哥哥
顺便问下为什么是<=而不是==有区别吗?
要是一样的话
[codes=jass]if ( not ( GetRandomInt(1, 100) == 4 ) ) then[/codes]
会不会是4%啊
回复

使用道具 举报

发表于 2008-2-19 19:33:27 | 显示全部楼层
<=是判断小于等于
==是判断等于

所以,结果应该知道了吧~~
回复

使用道具 举报

 楼主| 发表于 2008-2-19 19:43:10 | 显示全部楼层
[codes=jass]function Trig_diao2_Func011C takes nothing returns boolean
    if ( not ( GetUnitLevel(GetTriggerUnit()) >=42) ) then
        return false
    endif
    if ( not ( GetRandomInt(1, 75) <=19) ) then
        return false
    endif
    return true
endfunction[/codes]
那我改成这样是不是也是25%概率
回复

使用道具 举报

发表于 2008-2-19 19:44:57 | 显示全部楼层
额,差不多,比25%高一点~~
回复

使用道具 举报

 楼主| 发表于 2008-2-19 19:48:25 | 显示全部楼层
哦 现在知道了
搞了半天原来是这样的 哈哈
谢谢大哥哥了 你照片真好玩 是不是在打连招啊 连招到几啦(9999999999999.......) 哈哈
回复

使用道具 举报

发表于 2008-2-20 17:57:49 | 显示全部楼层
GetRandomInt(1,100)是否产生整数100呢?在java中倒是有Math类的random方法也是产生随即数的,Math.random( )产生0.0到1.0的double值,但是不包含1.0,定义其它任何数的话,例如0.0<=Math.random( )*6<6.0,不包含6.0
不知道GetRandomInt(1,100)是否产生整数100呢,如果不产生的话,那 GetRandomInt(1, 100) == 4 的概率是接近1%.如果产生100的话,那么我定义25%完全可以直接用GetRandomInt(1,4)=1来表示概率25%,(当然什么的GetRandomInt(1,100)<=25)也能表示概率25%,也这些%值都是精确的).
回复

使用道具 举报

发表于 2008-2-23 08:58:29 | 显示全部楼层
其实那1%的误差基本可以无视,如果做统计的话,基本可以认为是抽样统计的误差范围内
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 03:35 , Processed in 0.139620 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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