Tag: 数学

在具有两个缺失值的整数数组中查找2个缺少的数字

你怎么做到这一点? 值未排序但是[1..n]示例数组[3,1,2,5,7,8] 。 答案: 4, 6 我在另一篇类似的post中看到了这个解决方案,但我不明白最后一步 Find the sum of the numbers S=a1+…+an. Also find the sum of squares T=a1*a1+…+an*an. You know that the sum should be S’=1+…+n=n(n+1)/2 You know that the sum of squares should be T’=1^2+…+n^2=n(n+1)(2n+1)/6. Now set up the following system of equations x+y=S’-S, x^2+y^2=T’-T. Solve by writing x^2+y^2=(x+y)^2-2xy => xy=((S’-S)^2-(T’-T))/2. […]

Java:将秒输入转换为小时/分钟/秒

这是一个来自Java软件解决方案的练习题: Lewis&Loftus 的程序设计基础 ,第4版; 问题PP2.6(这是一个链接 ) 问题如下: “创建一个项目,读取表示秒数的值,然后打印等量的时间作为小时,分钟和秒的组合。(例如,9999秒相当于2小时,46分钟,39秒。)“ 到目前为止,我尝试了以下内容 public static void main(String[] args) { Scanner scan = new Scanner(System.in); double totalSecs, seconds, minutes, hours; System.out.println(“Enter number of seconds: “); totalSecs = scan.nextInt(); hours = totalSecs/3600; minutes = (Math.abs(Math.round(hours)-hours))*60; seconds = (Math.abs(Math.round(minutes)-minutes))*60; System.out.print(hours + “\n” + minutes + “\n” + seconds); } 答案出来了, 小时:2.7775 分钟:13.350000000000009 […]

将String内的数学表达式计算为Float?

我需要用Java来评估数学表达式。 问题是,表达式是一个String对象。 有没有办法取字符串”( (21 + 3) / 4 )”并对其进行评估,以便它给出6作为结果? 到目前为止这是代码。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class InfixApp { public static void main(String[] args) throws IOException { String input, output; while(true) { System.out.print(“Enter infix: “); System.out.flush(); input = getString(); // read a string from kbd if( input.equals(“”) ) // quit if [Enter] break; // make […]

为什么我不能使用JMockit模拟Math

我遇到了一个使用JMockit(1.21)模拟java.lang.Math的问题。 请参阅下面的实际课程的简化用法。 基本上在我的代码中的某个地方我使用Math.pow(…)并且我要嘲笑它。 public final class Calculator { public final double power(double base, double exponent) { return Math.pow(base, exponent); } } 至于我的测试代码,这个测试有效。 @Test public void simpleTestWithoutMock() { Calculator calculator = new Calculator(); double result = calculator.power(2, 3); assertThat(result).isEqualTo(8); } 此测试失败。 @Test public void simpleTestWithMock(@Mocked Math math) { new Expectations() {{ // This would be line […]

数学从级别堆栈获得相对比例

为可怕的头衔道歉。 我花了10分钟试图用一句话来解释这个并且失败了。 虽然提示这个问题的应用程序是在Java(Android)中,但我认为它非常通用并适用于任何语言。 Psuedo-code(或简单的英文)回复是受欢迎的。 我不确定我是否应该只标记所有常用语言,但这似乎有点垃圾。 我的实际要求与以下的一些示例相比,结构有点简单,但我会尝试简单明了地提出这个想法。 假设我有5个“图像级别”,每个级别是前一级别的两倍: 等级1 = 100px平方 2级= 200px平方 3级= 400px平方 等级4 = 800px平方 等级5 = 1600px平方 这些图像级别都显示相同的内容,但具有不同程度的细节(最小的图像仅显示主要特征;最大的图像显示精细的细节)。 假设我们从不想缩放较大的图像以避免失真,并且应该仅对使其变小的图像执行变换,目标是使用具有最小缩放量的最大适当图像。 假设用户处于3级(400px)并执行到1.8的缩放操作。 新的大小将是(1.8 * 400 = 720),这意味着我应该显示4级(800px),缩放到0.9(800 * 0.9 = 720)。 另一个例子 – 用户在2级并且扩展到5.2。 大小将是(5.2 * 200 = 1040)。 所以显示等级5,缩放到0.65(1600 * 0.65 = 1040)。 了解级别的大小,逻辑非常简单。 取当前级别的大小,乘以用户比例。 调用此newSize 找到大小大于该数字的最低级别。 调用此targetLevel 将newSize除以targetLevel的大小。 这是相对比例。 现在让我们说我实际上并不知道图像的实际大小,并且没有办法找到它们,也许它们的确不是它们应该具有的大小(尽管它们总是会呈现前一级的两倍),并且可能有任何数量的级别。 仅使用当前级别和用户定义的比例值,获取适当的目标级别及其相对(新)比例所涉及的数学或逻辑是什么? 更多例子…… […]

Math.cos()提供错误的结果

我正在使用cos函数从给定的角度计算cosinus,但结果与我的计算器不同,后者设置为degree。 angle: -42.5367183824978 Math.cos(angle) -> 0.12489059200057782 应该是:0.74左右 怎么了?

在已知的缺失时间间隔之间插值3D坐标

数据是空间中的路径。 我有3D位置数据(x,y,z)和记录位置点的时间。 x,y和z坐标是穿过3D Space的物体的点位置。 时间值是记录每个点的时间(从0开始)。 xyz time(s) 0.1 2.2 3.3 0 2.4 2.4 4.2 0.3 4.5 2.5 1.8 0.6 我最终会错过一些录音活动。 (这是已知的并且被接受为真)并且数据流将以不同的时间间隔继续: xyz time(s) 0.1 2.2 3.3 0 2.4 2.4 4.2 0.3 //missing x,y,z data point at time 0.6 //missing x,y,z data point at time 0.9 4.5 2.5 1.8 1.2 … … 请注意,数据已经简化。 我的目标是在已知的丢失时间内插入缺失的3D点。 我已经研究了各种插值技术,但我不完全确定哪种插值方法适合我的问题。 1)有人可以简洁地解释这是什么问题吗? […]

从变换矩阵中寻找角度

我有一个像这样的值的变换矩阵。 变换:分别为xx,xy,yx,yy,tx和ty。 如何从上面的给定值集中找到角度。

Android应用程序 – 将用户输入的值值乘以并分成两种forms

我正在尝试创建一个Android应用程序,因为我是一个初学者,我想知道是否有人可以帮我解决这些问题。 将有三个框输入不同的数字,我希望应用程序将第二个值除以第一个,然后将其乘以第三个。 然后在屏幕上显示答案。 该应用确实有一个目的啊哈。 就像(b / a)* c

Java中的素数 – 算法

我已经开始学习使用Java编写代码并决定使用Project Euler站点给我一些小任务来尝试完成我学习的每一段新编码。 所以我遇到了问题3 : 13195的主要因素是5,7,13和29. 600851475143的最大主要因素是什么? 我想到了这个问题,并研究了很多关于素数的不同理论以及如何通过各种不同的计算找到它们(Sieve of Eratosthenes就是一个例子),我想到的解决方案是测试2 – > n中的数字并查看是否它们是素数,如果它们是那么我将把新发现的素数除以Tn变量(在这种情况下为600851475143)并查看它是否是一个因素。 如果是,我会将它分配给变量Hp(最高素数),在程序结束时我会将Hp输出到控制台以给出我的结果。 这是我的代码: public class Largest_Prime_Factor_NEW_SOLUTION { static long Tn = 600851475143L; static long Hp = 0; static boolean isPrime = false; public static void main(String[] args) { for (long i=2; i<Tn; i++) { System.out.println("TESTING NUMBER " + i); for (long k=2; k < […]