递归:程序调用自身的编程技巧称为递归,是函数自己调用自己。一个函数在其定义中直接或间接调用自身的一种方法。它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量。
迭代:
让程序对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。迭代是某个变量的重复推算,而递归是自身对自身的调用。
递归注意的地方:
1,递归就是在过程或函数里面调用自身;
2,在使用递归时,必须有一个明确的递归结束条件,称为递归出口。
递归分为两个阶段:
1,递推,把复杂的问题的求解,推到比原问题简单一些的问题的求解;
2,回归:当获得最简单的情况后,逐步返回,依次得到复杂的解。
function DiGUi(i)
if i < 2 then
return 1
else
j = DiGUi(i - 1) + i
return j
end
end
function DieDai(i)
local s = 0
for j = 1, i , 1 do
s = s + j
end
return s
end;
迭代器与泛型for
在lua中,常常用函数来描述迭代器,它能够用来遍历某些几何中的部分或全部元素,每次调用该函数(迭代器)就返回几何的下一个元素。也就是我们用迭代器来对几何内的每一个元素的操作。他符合了迭代概念的特性。
for 变量列表 in 迭代器 do
语句块
end
--for example
--[-- 迭代--]
function myps(num) -- 定义迭代器
return mydd, num, 0 -- 返回迭代函数,待遍历的集合,控制变量
end
function mydd(num, i) -- 将num和i传入迭代函数
i = i + 1;
local v = num[i]
if v then
return i, v
else
return nil, nil
end
end
a = {"one", "two", "three"}
for k, v in myps(a) do
print(k..","..v)
end
迭代:
让程序对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。迭代是某个变量的重复推算,而递归是自身对自身的调用。
递归注意的地方:
1,递归就是在过程或函数里面调用自身;
2,在使用递归时,必须有一个明确的递归结束条件,称为递归出口。
递归分为两个阶段:
1,递推,把复杂的问题的求解,推到比原问题简单一些的问题的求解;
2,回归:当获得最简单的情况后,逐步返回,依次得到复杂的解。
function DiGUi(i)
if i < 2 then
return 1
else
j = DiGUi(i - 1) + i
return j
end
end
function DieDai(i)
local s = 0
for j = 1, i , 1 do
s = s + j
end
return s
end;
迭代器与泛型for
在lua中,常常用函数来描述迭代器,它能够用来遍历某些几何中的部分或全部元素,每次调用该函数(迭代器)就返回几何的下一个元素。也就是我们用迭代器来对几何内的每一个元素的操作。他符合了迭代概念的特性。
for 变量列表 in 迭代器 do
语句块
end
--for example
--[-- 迭代--]
function myps(num) -- 定义迭代器
return mydd, num, 0 -- 返回迭代函数,待遍历的集合,控制变量
end
function mydd(num, i) -- 将num和i传入迭代函数
i = i + 1;
local v = num[i]
if v then
return i, v
else
return nil, nil
end
end
a = {"one", "two", "three"}
for k, v in myps(a) do
print(k..","..v)
end