zoukankan      html  css  js  c++  java
  • spown mj

    local function getmjvalnew(key)
    local keynew = {}
    local sumnval = 0
    for _, v in ipairs(key) do
    if v<=0 and next(keynew) then
    sumnval = sumnval + getmjvalnew(keynew)
    keynew = {}
    elseif v>0 then
    table.insert(keynew, v)
    end
    end
    key = keynew
    if not next(key) then return sumnval end
    local fval = 0
    if key[1] > 2 then
    local newarr2 = clone(key)
    newarr2[1] = newarr2[1] - 3
    local nval = getmjvalnew(newarr2) + 1
    if nval > fval then
    fval = nval
    end
    end

    if key[2] and key[3] and key[2]>0 and key[3]>0 then
    local newarr2 = clone(key)
    newarr2[1] = newarr2[1] - 1
    newarr2[2] = newarr2[2] - 1
    newarr2[3] = newarr2[3] - 1
    local nval = getmjvalnew(newarr2) + 1
    if nval > fval then
    fval = nval
    end
    end

    if #key > 1 then
    local newarr2 = clone(key)
    table.remove(newarr2, 1)
    local nval = getmjvalnew(newarr2)
    if nval > fval then
    fval = nval
    end
    end
    return sumnval + fval
    end

    local all = {}
    function calcdx(al, n)
    if all[n] then return all[n] end
    all[n] = getmjvalnew(al)
    end

    local function calsum(n)
    local ret = 0
    local al = {}
    while(n>0)do
    table.insert(al, 1, n%10)
    ret = ret + n%10
    n = math.floor(n/10)
    end
    return ret, al
    end

    function spawnmj(n)
    local sum, al = calsum(n)
    if sum > 14 or #al > 9 then
    return
    end

    if n > 0 then
    calcdx(al, n)
    print(n, all[n])
    end

    if #al == 9 then return end

    for _,k in ipairs({1,2,3,4}) do
    if sum + k<= 14 then
    spawnmj(n*10+k)
    end
    end
    end

    spawnmj(0)
    dump_t2f(all, "mjdx.lua")

  • 相关阅读:
    数学图形(2.10)一种绕在球上的线圈
    数学图形(2.9) Capareda曲线
    数学图形(2.8)Viviani曲线
    数学图形(2.7)sphere sine wave
    数学图形(2.5)Loxodrome曲线
    数学图形(2.6)Satellit curve
    数学图形(2.4)网球上的曲线
    数学图形(2.3)绕在圆环上的曲线
    数学图形(2.2)N叶结
    数学图形(2.1)三叶结
  • 原文地址:https://www.cnblogs.com/Asuphy/p/8438876.html
Copyright © 2011-2022 走看看