数字华容道算法生有解

数字华容道NxN数字随机排列的阵列有解的充要条件是:

N为奇数,总逆序数为偶数,

N为偶数,总逆序数为奇数。

数字华容道算法生有解_第1张图片数字华容道算法生有解_第2张图片数字华容道算法生有解_第3张图片

 

数字华容道算法生有解_第4张图片 

 数字华容道算法生有解_第5张图片

 

--数字华容道算法2*2-10*10
--随机生成有解算法
--作者,韩永旗
--迷你号247312290

local A={}
local N=0
local t=""
local n=0

local function addt()
  print(unpack(A))
  local t=N.."*"..N.."数字华容道随机面板[有解]\n"
  for k,v in ipairs(A) 
    if k%N==0 then t=t..v.." \n"
    else
      t=t..v.."  "
    end
  end
t=t.."-----------------------------------------------------\n"
 print(t)
 end 

local function add2()
  local n=0
  for k,v in ipairs(A)
    for i=1,k do 
      if v     end
  end
  return (N*(N+1)+n-1)%2  
end

local function add1()
  local n = #A
    for i = 1, n do
        local j = math.random(i, n)
        if j > i then
            A[i],A[j] = A[j],A[i]
        end
    end
  if add2()~=1 then  add1()  end
 end

local function add()
   A={} for i=1,N*N-1 do A[i]=i end add1() A[#A+1]=0 addt()
end
for j=2,10 do N=j add() end
 

 

你可能感兴趣的:(笔记,lua,游戏,开发语言)