我制作了这个节目:
a = math.random(0, 9) - 0 -- In this stage, if the result equals zero, that means it's a match
b = math.random(0, 9) - 1
c = math.random(0, 9) - 2
d = math.random(0, 9) - 3
e = math.random(0, 9) - 4
f = math.random(0, 9) - 5
g = math.random(0, 9) - 6
h = math.random(0, 9) - 7
i = math.random(0, 9) - 8
j = math.random(0, 9) - 9
print("Enter the number of trials you want to simulate.") -- This is where I decide how many trials I want to do
var = io.read()
a_ = 0 -- This is where I hope to keep the number of "a" matches, number of "b" matches, etc. The frequency
b_ = 0
c_ = 0
d_ = 0
e_ = 0
f_ = 0
g_ = 0
h_ = 0
i_ = 0
j_ = 0
for k = 1, var do -- One loop is a trial
print("Trail #"..k)
if a == 0 then
print("a = match")
elseif a ~= 0 then
print("a = not a match")
end
if b == 0 then
print("b = match")
elseif b ~= 0 then
print("b = not a match")
end
if c == 0 then
print("c = match")
elseif c ~= 0 then
print("c = not a match")
end
if d == 0 then
print("d = match")
elseif d ~= 0 then
print("d = not a match")
end
if e == 0 then
print("e = match")
elseif e ~= 0 then
print("e = not a match")
end
if f == 0 then
print("f = match")
elseif f ~= 0 then
print("f = not a match")
end
if g == 0 then
print("g = match")
elseif g ~= 0 then
print("g = not a match")
end
if h == 0 then
print("h = match")
elseif h ~= 0 then
print("h = not a match")
end
if i == 0 then
print("i = match")
elseif i ~= 0 then
print("i = not a match")
end
if j == 0 then
print("j = match")
elseif j ~= 0 then
print("j = not a match")
end
end
while true do --This is just to keep the window open after the program is done so that I can observe the data, you can ignore this
end
正如你所看到的,我试图在每次返回结果为零时向a_,b_和c_添加一个,但它不起作用,有没有办法做到这一点? 我想这样做的原因是我正在参加的AP统计课程,这将使它更容易做到。我现在只是做a_,b_,c_,一旦我解决了这个问题,我会做所有这些。谢谢你的阅读!
答案 0 :(得分:0)
假设您希望模拟运行'var'次,请尝试以下操作:
math.randomseed(os.time())
local matchStorage = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
local randomNums = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
local function runSimulation(numTrial)
print("\nRunning trial #: " .. numTrial)
for index, value in pairs(randomNums) do
local variable = math.random(0, 9)
randomNums[index] = variable
end
for index, value in pairs(randomNums) do
if randomNums[index] == 0 then
matchStorage[index] = matchStorage[index] + 1
print("index " .. index .. " is a match.")
else
print("index " .. index .. " is not a match.")
end
end
end
do
print("Enter the number of trials")
numTrials = io.read()
for index = 1, numTrials do
runSimulation(index)
end
print("\nRESULTS:\n")
for index, value in pairs(matchStorage) do
print("index " .. index .. " frequency: " .. value)
end
end
以下'randomNum'值之一包含0的次数将存储在其对应的'matchStorage'索引中。