Java 用斐波那契序列生成勾股三元组
我正在使用斐波那契序列根据这一页生成一些毕达哥拉斯三元组(3、4、5等):从“广义斐波那契序列”开始Java 用斐波那契序列生成勾股三元组,java,math,fibonacci,Java,Math,Fibonacci,我正在使用斐波那契序列根据这一页生成一些毕达哥拉斯三元组(3、4、5等):从“广义斐波那契序列”开始 是什么导致了这个问题?我被维基百科愚弄了吗?@MarkDickinson指出,公式要求F(1)=0和F(2)=1,这与广泛使用的F(1)=1和F(2)=1不同。这解决了我的问题 请注意,维基百科公式指定F_1=0和F_2=1;你有F_1=1和F_2=1。你完全正确!我以为它符合标准,但我想不是!谢谢@马克·迪金森也接受你的回答!有时间限制!(在你为自己发布答案后3天)@shekharsuman
是什么导致了这个问题?我被维基百科愚弄了吗?@MarkDickinson指出,公式要求F(1)=0和F(2)=1,这与广泛使用的F(1)=1和F(2)=1不同。这解决了我的问题 请注意,维基百科公式指定F_1=0和F_2=1;你有F_1=1和F_2=1。你完全正确!我以为它符合标准,但我想不是!谢谢@马克·迪金森也接受你的回答!有时间限制!(在你为自己发布答案后3天)@shekharsuman
public static int fib(int n) {
if(n == 0) return 0;
if(n <= 2) return 1;
int i = 1;
int temp = 0;
while(n != 1) {
i += temp;
temp = i - temp;
n--;
}
return i;
}
public static void main(String[] args) {
int a = 4; //a(3)
int b = 3; //b(3)
int c = 5; //c(3)
for(int n = 4; n < 10; n++) {
System.out.println(a + "^2 + " + b + "^2 = " + c + "^2");
a = a + b + c;
b = fib((2 * n) - 1) - b;
c = fib(2 * n);
}
}
4^2 + 3^2 = 5^2
12^2 + 10^2 = 21^2
43^2 + 24^2 = 55^2
122^2 + 65^2 = 144^2
331^2 + 168^2 = 377^2
876^2 + 442^2 = 987^2