Java中的Lucas序列

时间:2015-11-16 12:41:33

标签: java math

我正在尝试使用我正在使用的方法在Lucas序列中显示x数量的数字,我正在使用,否则如果。我正在使用它,因为我是编程的新手,我只是在学习。我试图使代码看起来像这样,但当我尝试这样做时,它只是不起作用。

我使用的代码类型是:

           int add4 = 1;
           int count500 = 1;
           while (count500 <= 500)

            {
              if (count500 ==1)
                {
                  System.out.print(add4);
                }
          else
                {
                  System.out.print (add4 +"," +"");
                }
                  add4 =add4 + 4; 
                  count500 ++;            
            }

这只是我尝试的方法,但它没有成功,它只是让我头脑冷静。

2 个答案:

答案 0 :(得分:1)

我希望这可以帮助

http://www.javacodegeeks.com/2014/06/fibonacci-and-lucas-sequences.html

它是一个包含卢卡序列解释并有实现的页面。

这里有卢卡序列的完整解释。

http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/lucasNbs.html

答案 1 :(得分:0)

你对卢卡斯数的定义是递归的,即,为了计算第n个卢卡斯数,你需要知道第N-1和N-2。

public int lucas(int N) {
if( N == 0 ) return 2;
if( N == 1 ) return 1;
return lucas(N-1) + lucas(N-2);

} 但是,你只需打印数字,不是吗?实际上,它很容易。

int L2 = 2;
int L1 = 1;
for( int i = 2; i <= N; i++ ) {
int L = L1 + L2;
print(L); //or whatever output function you have
L2 = L1;
L1 = L;
}

这个想法是保留最后两个数字,你需要计算接下来的两个数字,总是在手边。

PS:这些Lucas数字就像具有不同起始值的Fibonacci数字,因此Fibonacci数的任何算法都可以。如果你真的擅长数学,你甚至可以尝试为卢卡斯数找到一个封闭的公式,但它绝对超出了高中数学(搜索标签将是&#34;线性差分方程与常数系数&#34;。)