已经问了许多有关找到Farey序列的$ n ^ {th} $元素的最佳算法的问题。但是,我只对给定n的序列长度感兴趣。我目前正在使用此算法(从here稍作修改):
final Triangle triangle3 = new Triangle(
new Point3(0, 0, 0),
new Point3(-10, 0, 0), <-- swap this line..
new Point3(0, -10, 0), <-- with this line..
Color.BLUE
);
运行n> = 100000仍需要40秒钟左右。有优化的方法吗?
答案 0 :(得分:1)
您以相同的值一次又一次地调用Error
函数。您需要对该递归函数使用动态编程概念,以使您不会多次计算相同的值。您可以尝试:
postRequest
如果预先计算出一个值,那么我们将不再进行计算。
我的解决方案将花费大约1秒钟来计算farey
的结果。