numberMap = {
{1000, 'M'},
{900, 'CM'},
{500, 'D'},
{400, 'CD'},
{100, 'C'},
{90, 'XC'},
{50, 'L'},
{40, 'XL'},
{10, 'X'},
{9, 'IX'},
{5, 'V'},
{4, 'IV'},
{1, 'I'}
}
function intToRoman(num)
local roman = ""
while num > 0 do
for index,v in pairs(numberMap)do
local romanChar = v[2]
local int = v[1]
while num >= int do
roman = roman..romanChar
num = num - int
end
end
end
return roman
end
function getEnchChance(n)
return (2.71828^(n-1))
end
function round100(n)
return math.floor(n*100)/100
end
function round3(n)
return math.floor(n/3)*3
end
local signs = {
"K",
"M",
"B",
"T",
"Qd",
"Qn",
"Sx",
"Sp",
"Oc",
"No",
"De",
"UDe",
"DDe",
"TDe",
"QdDe",
"QnDe",
"SxDe",
"SpDe",
"OcDe",
"NoDe",
"Vg"
}
function shorten(n)
if n >= 1000 then
local num = round100(n/10^round100(round3(math.floor(math.log10(n)))))
local sign = signs[round3(math.floor(math.log10(n)))/3]
return num..sign
else
return n
end
end
function getRNG(num, luck)
return num/luck
end
local luck = 1
local num = io.read()
for i = 1, (num-1) do
luck = luck + (math.sqrt(luck*1.75)*4.75)
end
local boost = 1
luck = luck * boost
for i = 1, 100 do
local enchantChance = round100(getEnchChance(i))
local enchantName = intToRoman(i)
local rng = round100(getRNG(enchantChance, luck))
print(enchantName.." Chance: 1/"..shorten(enchantChance).." RNG: 1/"..shorten(rng))
end
To embed this project on your website, copy the following code and paste it into your website's HTML: