跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
折叠
品牌标识
  1. 主页
  2. 苍茫之境 (SOC)
  3. 致开发组:如何正确生成随机数

致开发组:如何正确生成随机数

已定时 已固定 已锁定 已移动 苍茫之境 (SOC)
1服
13 帖子 11 发布者 0 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • P 离线
    P 离线
    Proton
    写于 最后由 编辑
    #1

    嘛,最近看到吐槽Soc概率的人比较多,由于我也是学计算机的,就来说下随机数生成吧。

    假象问题:生成一个随机发生器,90%概率为真,其余为假。
    学过基础c/c++编程的人应该看得懂下面的代码:

    bool ranGen()
    {
    srand(time(NULL));//初始随机数种子
    int num = rand()%100;//生成0-99里的随机数
    if(num < 90) return true;
    return false;
    }

    上面的程序乍看下没什么问题,但是大多数情况下会离90%概率为真的要求相差甚远。
    要说这段代码的问题所在,除去那些经常讨论的时间相关性,相邻随机数之间的相关性等等外,最重要的一点,是无法保证变量num的概率分布。

    重新分析下上面的代码,变量num其实是值域[0,99]上的整形随机变量,上面的函数在num小于90时返回真,如果我们假设num的概率密度函数为n(x),上面的函数返回真的概率应该为sum{i from 0 to 89} n(i)。
    但是,我们无法确定num的概率分布!首先,rand()本身是不是[0,RAND_MAX)上的均匀分布这个问题就很难说,再加上RAND_MAX不能被100整除的情况,最终的概率就更值得商榷了。

    其实解决方法也很简单,c++就有random库:
    [url]http://www.cplusplus.com/reference/random/[/url]
    支持各种分布函数,当然也有这里我们要的均匀分布。虽然都是根据时间来的伪随机数,但比rand()好多了

    当然,也有其他现成可用的随机数生成器,比如这个:
    [url]http://www.omnetpp.org/doc/omnetpp/api/group__RandomNumbersCont.html[/url]

    boost库中也有关于随机数的内容:
    [url]http://www.boost.org/doc/libs/1_53_0/doc/html/boost_random.html[/url]

    最后,如果开发组在最初开发时已经意识到了这个问题,就让这贴沉了,权当我在讲废话吧…………

    [[i] 本帖最后由 Proton 于 2013-2-9 20:11 编辑 [/i]]

    1 条回复 最后回复
    0
    • P 离线
      P 离线
      PaciFica
      写于 最后由 编辑
      #2

      看不懂肿么破XSK

      1 条回复 最后回复
      0
      • P 离线
        P 离线
        Proton
        写于 最后由 编辑
        #3

        只要会一点点基础的c语言再加上一点点概率(什么是分布函数,密度函数)知识就行了……

        1 条回复 最后回复
        0
        • 密 离线
          密 离线
          密涅瓦
          写于 最后由 编辑
          #4

          一点都不懂。。。。。。。。。。。。。

          1 条回复 最后回复
          0
          • E 离线
            E 离线
            Eucharis
            写于 最后由 编辑
            #5

            XSK 蒙特卡洛谬误

            1 条回复 最后回复
            0
            • 琴 离线
              琴 离线
              琴乃悠理
              写于 最后由 编辑
              #6

              XSK XSK 精品贴!

              1 条回复 最后回复
              0
              • 我 离线
                我 离线
                我也没看
                写于 最后由 编辑
                #7

                XSK XSK 总而言之 都是时辰的错

                1 条回复 最后回复
                0
                • 超 离线
                  超 离线
                  超微葛炮
                  写于 最后由 编辑
                  #8

                  XSK 强化成功概率 肯定算上了充值金额

                  1 条回复 最后回复
                  0
                  • P 离线
                    P 离线
                    PaciFica
                    写于 最后由 编辑
                    #9

                    晚上刚刚花了260块强化一个47绿腰带到9
                    前150软妹上了一次8,上9失败
                    后110软妹上了四次8,最后一次上9成功
                    连爆掉到+3多次
                    +8各种连败4次以上
                    貌似实际成功率远低于图示概率

                    但是!!也有可能是我长得太丑的缘故XSK XSK XSK

                    1 条回复 最后回复
                    0
                    • E 离线
                      E 离线
                      Eureka
                      写于 最后由 编辑
                      #10

                      最后一点XSK XSK XSK

                      1 条回复 最后回复
                      0
                      • 姬 离线
                        姬 离线
                        姬宫千歌音
                        写于 最后由 编辑
                        #11

                        那个所谓的随机数也就是个hash数列,不过fox的问题明显不是随机数

                        1 条回复 最后回复
                        0
                        • 幽 离线
                          幽 离线
                          幽玉
                          写于 最后由 编辑
                          #12

                          FOX:"啊,语死早,其实说明要表达的不是那个意思~~" XSKkira XSKkira

                          1 条回复 最后回复
                          0
                          • S 离线
                            S 离线
                            sundae
                            写于 最后由 编辑
                            #13

                            :-_,- 年轻真好

                            1 条回复 最后回复
                            0
                            回复
                            • 在新帖中回复
                            登录后回复
                            • 从旧到新
                            • 从新到旧
                            • 最多赞同


                            • 登录

                            • 没有帐号? 注册

                            • 登录或注册以进行搜索。
                            © 2026 xyz-soft.com
                            沪ICP备10216881号-1
                            • 第一个帖子
                              最后一个帖子
                            0
                            • 版块
                            • 最新
                            • 标签
                            • 热门
                            • 用户
                            • 群组