2017-06-21 69 views
0

我不确定是否有可能,但我想改变“选择”完成的概率。我有一个代码是这样的:是否有可能改变corona SDK中选择的概率?

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

我的目标是炸弹的出现或得到选择往往小于“移动”。这可能吗?

+0

也见https://stackoverflow.com/questions/4420502/random-number-generator-with-higher-probabilities-of-代码给低值。 – lhf

回答

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 
+0

你为什么需要(10)在手镯? –

+0

你能更具体吗? – ldurniat

+0

是的,我不明白这个部分意味着什么[math.random(10)<= 7和1或2),特别是数字。 –