强化概率的程序可以通过以下步骤实现:
初始化概率列表
定义一个概率列表 `randlist`,表示每个强化等级的概率。
定义一个统计列表 `countlist`,用于记录每个强化等级被强化的次数。
生成随机数
使用 `math.randomseed(os.time())` 初始化随机数种子。
根据概率列表生成随机数,并更新统计列表。
洗牌
将概率列表打乱,以确保每次生成的随机数都是随机的。
计算概率
根据统计列表和洗牌后的概率列表,计算每个强化等级被强化的概率。
```lua
-- 概率算法
local randlist = {85, 60, 55, 50, 50, 40, 35, 25, 20, 15, 12, 10, 10, 5, 5} -- 概率
local countlist = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -- 统计强化次数
local randlist2 = {} -- 正常概率
local randlist3 = {} -- +15%概率
local randlib = 100 -- 随机数生成次数
local target = 8 -- 目标强化等级
local maxfor = 100000 -- 最大生成次数
math.randomseed(os.time()) -- 初始化正常概率
-- 生成随机数并更新统计列表
for k, v in pairs(randlist) do
local numList = {}
local count = 0
for i = 1, randlib do
if (count < v) then
count = count + 1
table.insert(numList, 1)
else
table.insert(numList, 0)
end
end
-- 洗牌交换
for i = 1, randlib do
local nRand = math.random(1, 100)
local a = numList[i]
numList[i] = numList[nRand]
numList[nRand] = a
end
table.insert(randlist2, numList)
end
-- 计算正常概率
for i = 1, randlist2 do
for j = 1, randlist2[i] do
if (j == 1) then
randlist3[i] = randlist2[i][j] / randlib
else
randlist3[i] = randlist3[i] + randlist2[i][j] / randlib
end
end
end
-- 输出结果
for i = 1, randlist do
print(string.format("等级 %d 的概率为: %.4f", i, randlist3[i]))
end
```
这个程序首先定义了概率列表 `randlist`,然后生成随机数并更新统计列表 `countlist`。接着,程序将概率列表打乱,并计算每个强化等级的最终概率。最后,程序输出每个强化等级的概率。
请注意,这个示例代码是基于 Lua 语言编写的,如果你需要其他编程语言的实现,请告诉我。