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














    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    












Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: