【问题标题】:Is it possible to change the probability of a choice in corona SDK?是否可以更改 corona SDK 中的选择概率?
【发布时间】:2017-07-20 04:47:09
【问题描述】:

我不确定这是否可能,但我想更改完成“选择”的概率。我有一个类似这样的代码:

({move, bomb})[math.random(2)]

我的目标是让炸弹出现或被选中的频率低于“移动”。这可能吗?

【问题讨论】:

标签: lua coronasdk


【解决方案1】:

当然。可以做到的一种方法是

( { move, bomb } )[ math.random( 10 ) <= 7 and 1 or 2 ]

你有 70% 选择第一个元素,30% 选择第二个元素。

如果您需要从 4 个元素中进行选择,您可以使用下面的代码

local mRandom = math.random
local objects = { 'object1', 'object2', 'object3', 'object4',  } 
local prob = { 10, 30, 60, 100 } -- 10% for object1 20%=30%-10% for object2 30%=60%-30% for object3 and 40%=100%-60% for last object.

local mychoice
math.randomseed( os.time() )


    local rand = mRandom( 100 )

    for i=1, #prob do
        if rand <= prob[i] then
            mychoice = i
            break
        end  
    end 

【讨论】:

  • 为什么需要 (10) 在括号中?
  • 你能说得更具体点吗?
  • 是的,我不明白 [ math.random( 10 )
  • 如果我想增加概率怎么办?(如果函数非常有用的例子)
  • 我使用Lua’s and-or as a ternary operatorclassical probability。通常您可以使用( { move, bomb } )[ math.random( 100 ) &lt;= X and 1 or 2 ],其中X 属于集合{1,2,3,...,100}。所以你得到X% 选择第一个元素,即move,100%-X% 选择第二个元素,即bomb
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多