LINUX.ORG.RU

История изменений

Исправление LightDiver, (текущая версия) :

А теперь совсем непонятно…

function test1(num, num2)
    testQ['test'] =  {}

    if not num2 then
        for i = 1, num do
            local index = math.floor(i / 500000) + 1  -- Вычисляем индекс на основе i
            testQ['test'][index] = testQ['test'][index] or {}  -- Инициализируем подтаблицу, если она не существует
            testQ['test'][index][i] = "1"  -- Заполняем подтаблицу значением "1"
        end
    else
        local index = math.floor(num / 500000) + 1  -- Вычисляем индекс на основе num
        testQ['test'][index] = testQ['test'][index] or {}  -- Инициализируем подтаблицу, если она не существует
        table.insert(testQ['test'][index], "1")  -- Вставляем "1" в подтаблицу
    end
    print(tablelength(testQ['test']))
    for i = 1, tablelength(testQ['test']) do
        print(tablelength(testQ['test'][i]))
    end
end

Сделал функцию теста типа. test1(762143)

Теперь лимит почему то такой:

499999 в первой таблице и 262144 во второй. Вот где логика?

хмм.. А при ограничении на табица 200к, регает сколько угодно:

[27:36]60
[27:36]199999
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:36]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:37]200000
[27:38]200000
[27:38]200000
[27:38]200000
[27:38]200000
[27:38]200000
[27:38]200000
[27:38]200000
[27:38]200000
[27:38]200000
[27:38]162145

Исходная версия LightDiver, :

А теперь совсем непонятно…

function test1(num, num2)
    testQ['test'] =  {}

    if not num2 then
        for i = 1, num do
            local index = math.floor(i / 500000) + 1  -- Вычисляем индекс на основе i
            testQ['test'][index] = testQ['test'][index] or {}  -- Инициализируем подтаблицу, если она не существует
            testQ['test'][index][i] = "1"  -- Заполняем подтаблицу значением "1"
        end
    else
        local index = math.floor(num / 500000) + 1  -- Вычисляем индекс на основе num
        testQ['test'][index] = testQ['test'][index] or {}  -- Инициализируем подтаблицу, если она не существует
        table.insert(testQ['test'][index], "1")  -- Вставляем "1" в подтаблицу
    end
    print(tablelength(testQ['test']))
    for i = 1, tablelength(testQ['test']) do
        print(tablelength(testQ['test'][i]))
    end
end

Сделал функцию теста типа. test1(762143)

Теперь лимит почему то такой:

499999 в первой таблице и 262144 во второй. Вот где логика?