Tag: 数学

修正的Fibonacci序列的迭代版本

我刚刚完成了斐波那契系列算法的迭代版本。 我发现以下代码 int Fibonacci(int n) { int f1 = 0; int f2 = 1; int fn; for ( int i = 2; i < n; i++ ) { fn = f1 + f2; f1 = f2; f2 = fn; } } 我脑海里浮现出一个愚蠢的问题。 上面的函数添加了两个先前的数字并返回第三个数字,然后为下一次迭代准备好变量。 如果它会是这样的话怎么办? “返回一些系列,这是前三个数字的总和”我们如何改变上面的代码来找到这样的数字.u

使用贝塞尔曲线进行圆近似

我有2个关于贝塞尔曲线的问题,并使用它们来近似圆的部分。 给定单位圆弧(1,0) – >(cos(a),sin(a)),其中0 <a <pi / 2,它将导致该弧的良好近似,以找到贝塞尔曲线的控制点p1 ,p2通过求解要求B(1/3)=(cos(a / 3),sin(a / 3))和B(2/3)=(cos(2a / 3),sin(图2a / 3))。 (换句话说,要求贝塞尔曲线穿过弧中两个均匀间隔的点)。 如果我们有一个仿射变换A,它将圆弧转成椭圆弧,变换的控制点Ap0,Ap1,Ap2,Ap3是否定义了椭圆弧的良好贝塞尔近似? 当然,p0和p3是曲线的起点和终点:(1,0)和(cos(a),sin(a))。 谢谢

找到一个真正强大的数字

我正在为学生创建一个小游戏,在某个地方,它必须显示2 7830457 +1的值 如果数字不是那么大,我可以调用BigInteger的pow()方法。 由于数量很大,这种方法毫无用处。 我怎样才能找到这种数字的巨大力量? 请帮忙!

绘制正弦和余弦函数

我目前在做作业方面遇到了一些问题。 这是练习: (绘制正弦和余弦函数)编写一个程序,用红色绘制正弦函数,用蓝色绘制余弦函数。 提示: Pi的Unicode是\ u03c0 。 要显示-2Pi,请使用g.drawString(“ – 2 \ u03c0”,x,y)。 对于像sin(x)这样的三角函数,x是弧度。 使用以下循环将点添加到多边形p for (int x = -170; x <= 170; x++) { p.addPoint(x + 200, 100 – (int)(50 * Math.sin((x / 100.0) * 2 * Math.PI))); -2Pi为( 100,100 ),轴的中心为(200,100),2Pi为(300,100)使用Graphics类中的drawPolyline方法连接点。 好吧,所以我所拥有的sin函数与练习中的函数略有不同,但是它起作用所以它应该不是问题。 另一方面,余弦函数,我很难找到它的代码所以我没有在我的程序中。 我还需要做的是将-Pi和Pi放在他们可敬的地方的图表上。 所以,这是代码。 import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Polygon; import javax.swing.JFrame; import javax.swing.JPanel; […]

如何否定-2号基数?

最近我接受了Codility测试,我想知道如何否定-2基数 ? 例如,数组[1,0,0,1,1]代表基数-2中的 9 : -2 bases: 1,-2,4,-8,16 1 + (-8) + 16 = 9 [1,0,0,1,1] 基数为-2的负9为: -2 bases: 1,-2,4,-8 1 + (-2) + -8 = -9 [1,1,0,1] 我对这个问题一无所知。 必须有一些直观的解决方案。 你有什么提示吗?

斐波那契数列 – 递归求和

好吧,我最初编写了一个简单的代码,根据用户输入从系列中返回斐波纳契数。 n = 5将产生3 .. static int fibonacci(int n) { if (n == 1) return 0; else if (n == 2) return 1; else return (fibonacci(n – 1) + fibonacci(n – 2)); } 我正在考虑修改代码以返回系列的总和而不是仅仅返回系列中的值,并且在尝试执行总和时我不小心将1添加到return语句中,令我惊讶的是,它正确地返回了总和。 对于n = 5,以下代码将返回7。 我不确定这是否是计算总和的正确方法…… 如果我加1,我仍然无法弄清楚该系列的总和是如何工作的。有人可以解释一下吗? static int fibonacci(int n) { if (n == 1) return 0; else if (n == 2) […]

找到两个轴承之间的角度

鉴于两个轴承,我如何找到它们之间的最小角度? 因此,例如,如果1个航向为340度而第二个航向为10度,则最小角度为30度。 我附上一张照片来表明我的意思。 我试过从另一个中减去一个,但由于圆圈的环绕效果而无效。 我也尝试过使用负度(180 – 359为-180到0),但是当试图计算正数和负数之间的角度时,它会搞砸。 我确信必须有一个更容易的方法,有很多if语句。 感谢您的帮助。 亚当 BTW。 这是一个导航问题,因此圆的半径是未知的。

一步的最小步骤

问题陈述 : 在正整数上,您可以执行以下3个步骤中的任何一个。 从中减去1。 (n = n – 1) 如果它可被2整除,则除以2.(如果n%2 == 0,则n = n / 2) 如果它可被3整除,则除以3.(如果n%3 == 0,则n = n / 3)。 现在问题是,给定正整数n,找到将n取为1的最小步数 例如: 对于n = 1,输出:0 对于n = 4,输出:2(4/2 = 2/2 = 1) 对于n = 7,输出:3(7 -1 = 6/3 = 2/2 = 1) 我知道使用动态编程并具有整数数组的解决方案。 这是代码。 public int bottomup(int n) { //here i am […]

与java一起使用的最佳数学库是什么?

我想使用数学函数进行数据挖掘和分析。 我需要一个关于库的意见,我可以用java来实现这个目的。 你有什么建议?

如何防止Java代码中的整数溢出?

可能重复: 如何检查Java中的两个数字相乘是否会导致溢出? 假设我有一个Java类方法,它使用*和+操作。 int foo(int a,int b){ … //用+和*进行一些计算 } 如何确保foo中没有溢出? 我想我可以使用BigDecimal或用“wrappers”替换所有+和*,如: int sum(int a,int b){ int c = a + b; if(a> 0 && b> 0 && c 0 && b> 0 && c <0) 抛出新的MyOverfowException(a,b) 返回c; } 有没有更好的方法来确保Java方法中没有发生int溢出?