写一个类似于LinearRecurrence的函数
功能类似于Mathematica的LinearRecurrence,f(init, n)最后一个参数是生成序列的长度(包含初始值),除了最后一个参数前面的是不定参数,表示初始值,
如:
f(1,1, 10)-->1, 1, 2, 3, 5, 8, 13, 21, 34, 55
f(2,3,4, 10)-->2, 3, 4, 9, 16, 29, 54, 99, 182, 335
f--> x, y, z, x + y + z, x + 2 y + 2 z, 2 x + 3 y + 4 z 循环呗,这个简单 1# chyanog
这个,最好是这种格式:
f({x1,x2,x3,...},n)------>{x1,x2,x3,......} 3# wayne
这个可以随意,就是不太清楚C/C++能否也能这样写 可以的,传入数组即可 ,例如:
void f(int arr[],int n)
==============================
如果初始数列有c个,那么,存在递推公式:
a=2*a-a
试着写了个C程序:
#include<stdio.h>
#include<stdlib.h>
int main(int c,char** v)
{
if(c>2)
{
int len=atoi(v);
if(len<c-2) return ;
int tmp, arr,i;
arr=0;
for(i=0; i<c-2; ++i)
{
tmp=atoi(v);
arr=tmp;
arr+=arr;
}
while(++i<len) arr=2*arr-arr;
for(i=0; i<len; ++i) printf("%d\t",arr);
}
}
==============================================
C:\Users\yoyo\Desktop>a.exe 1 3 6 20
1 3 6 10 19 35 64 118 217 399 734 1350 2483 4567 8400 15450 28417 52267 96134 176818
C:\Users\yoyo\Desktop>a 1 1 10
1 1 2 3 5 8 13 21 34 55 5# wayne
这个关系式不错,我都没有发现呢 本帖最后由 chyanog 于 2013-2-21 17:27 编辑
f1 :=
Nest] - #[[-Length@init - 1]]}] &, #~Join~{Tr@#} &@init, n - Length@init]
f2 :=
Nest]}] &, init, n + 1 - Length@init]
写了两个Mathematica的版本, let fb l n = map (\(_, x) -> x) \$ take n (iterate (\(l, _)->((tail l)++, (head l))) (l, head l))
fb 10
页:
[1]