Помогите с реализацией кода для Lua (samp)

Vl4dik

Новичок
Автор темы
27
0
Дан случайный порядок чисел: 37210739896112765371715037398967140
Если(if) начиная с конца все числа войдут в предел от 0 до 9, то-есть будут присутствовать все числа в пределе от 0 до 9 (Допустим: 37210739896112765371715037398967140). Тут наглядно видно, что все цифры входят в передел который начинается с конца до цифры 2. Каждый раз эти цифры будут обновляться. И так, в пределе где все цифры присутствуют, записываем их процентное содержание: Цифра “2” из всех цветных цифр(их всего 22) повторяется 1 раз, то есть цифра “2” будет иметь 1*100:22≈4.54% повторений, так же и с последующими, цифра “4” тоже повторяется 1 раз, а значит тоже равна ≈4.54% повторений, цифра “8” тоже ≈4.54%, цифра “0”, “5”, “6” и “9” (по отдельности, а не вместе считаются) будут равняться по 2*100:22=9,090909≈9.09%. При каждой последующей добавленной одной цифры, проценты будут изменяться, допустим идем дальше, и уже в том порядке добавилась цифра(может быть любая, к примеру). То есть порядок наш уже: 372107398961127653717150373989671402. В этом случае присутствование всех цифр снова до определенного числа (у нас до числа “5”) выделено цветом. Цифры “1”, “2”, “4”, “5”, “6”, и “8” повторяются по 1 разу из 14 цветных чисел, а значит равны по 1*100:14≈7.14%. Цифра “3” повторяется 2 раза, значит равна 2*100:14≈14,29% и т. д. Хотелось чтобы к каждому числу от 0 до 9 писались проценты (ну оформление, imgui это я постараюсь сам, а так код нужно написать, т.е. само вычисление). Думаю верно высказал то что хотел, прошу помочь с реализацией кода для Lua (samp), я новичок в этой сфере, но азы понимаю скриптинга, извиняюсь так же дико за грамматические ошибки и много лишней воды, если присутствуют. Большое спасибо, кто возьмется за мой вопрос, может даже тем самым поможет и другим, ну или как нибудь модернизируют и возьмут что-то для себя, тем самым придумают что-то новое))
 

trefa

Известный
Всефорумный модератор
2,097
1,231
Не совсем понял, но вот.


Lua:
st = "37210739896112765371715037398967140"
tbl = {}

for v in string.gmatch(st, "%d") do
    v = tonumber(v)
    if tbl[v] ~= nil then
        tbl[v] = tbl[v] + 1
    else
        tbl[v] = 1
    end
end

for i, val in ipairs(tbl) do
    print(i.." - "..string.format("%.2f",(val * 100 / #st)).."%")
end