- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个程序要求用户输入任何数字(通常是一个大数字)并将其存储在变量“mu”中。然后它要求用户输入任意 4 个有效值。我试图创建的公式只是采用 4 个有效值并将它们设置为 w、x、y 和 z。我的公式是这样的。 mu = w^a * x^b * y^c * z^d。其中 a、b、c、d 是这 17 个可能值中的任何一个 {{-5, -4, -3, -2, -1, -1/2, -1/3, -1/4, 0, 1/4, 1/3, 1/2, 1, 2, 3, 4, 5}。该程序的要点是遍历每个可能的值,直到每个选择的指数都获得最接近 mu 的值。例如,如果用户输入 mu 为 200,000,而他对 w、x、y、z 的输入为 45,180,402,110。然后程序的工作是猜测将哪些值设置为指数,以便 45^a * 180 ^b * 402^c * 110^d 最接近 mu 或 200,000。现在,我试图使用 while 循环来完成这项工作,但是我的程序似乎没有选择正确的猜测。 (编辑并添加了另一个错误进行比较,但我认为它不正确)
到目前为止,这是我的代码:
double[] Guess = { -5, -4, -3, -2, -1, -1.0 / 2, -1 / 3, -1.0 / 4.0, 0,
1.0 / 4.0, 1.0 / 3.0, 1.0 / 2.0, 1, 2, 3, 4, 5 };
int a = 0;
int b = 0;
int c = 0;
int d = 0;
double er = 0.0;
out.print("Enter a value for mu:");
double mu = in.nextDouble();
double er1 = Math.abs((mu-mu)/mu);
out.print("Enter your first favorite positive value:");
double w = in.nextDouble();
out.print("Enter your second favorite positive value:");
double x = in.nextDouble();
out.print("Enter your third favorite positive value:");
double y = in.nextDouble();
out.print("Enter your fourth favorite positive value:");
double z = in.nextDouble();
while (a < Guess.length) {
double W = Math.pow(w, Guess[a]);
while (b < Guess.length) {
double X = Math.pow(x, Guess[b]);
while (c < Guess.length) {
double Y = Math.pow(y, Guess[c]);
while (d < Guess.length) {
double Z = Math.pow(z, Guess[d]);
er = ((W * X * Y * Z) - mu) / mu; //calculates percent error
if (er < 0)
{
er = er1 * -1;
}
if (er < er1){
er1 = er;
}
d++;
}
d = 0;
c++;
}
c = 0;
b++;
}
b = 0;
a++;
}
out.print("error = " + er);
有人知道我可能做错了什么或我可能需要补充什么吗?谢谢你的帮助!我知道我的 while 循环会给我正确的数字,但我认为我没有正确设置我的 a、b、c、d 或我的百分比错误
EDIT = 我得到的错误值很大。一个巨大的值(value)。
最佳答案
看看这个!
public static void main(String[] args) {
double[] Guess = { -5, -4, -3, -2, -1, -1.0 / 2, -1 / 3, -1.0 / 4.0, 0, 1.0 / 4.0, 1.0 / 3.0, 1.0 / 2.0, 1, 2, 3, 4, 5 };
int[] Result = {0,0,0,0};
double e = 0.0;
boolean first = true;
double mu=200000, w=45,x=180,y=402,z=110;
for(int a = 0; a<Guess.length; a++)
{
double W = Math.pow(w,Guess[a]);
for(int b = 0; b<Guess.length; b++)
{
double X = Math.pow(x,Guess[b]);
for(int c = 0; c<Guess.length; c++)
{
double Y = Math.pow(y, Guess[c]);
for(int d = 0; d<Guess.length; d++)
{
double Z = Math.pow(z, Guess[d]);
double temp = Math.abs (W*X*Y*Z - mu);
if (first)
{
e = temp;
first = false;
}
else if (temp<e)
{
e=temp;
Result[0]=a;
Result[1]=b;
Result[2]=c;
Result[3]=d;
}
}
}
}
}
System.out.print("Error = " + e*100/mu + '\n');
System.out.print("a=" + Guess[Result[0]] + "\nb=" + Guess[Result[1]] + "\nc=" + Guess[Result[2]] + "\nd=" + Guess[Result[3]] + '\n');
}
关于java - 在平方根猜测公式中得到错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18832792/
出于某种原因,我的平方根程序得到的答案与大多数输入应得到的答案略有不同。我不确定这是为什么。只有某些输入是错误的。在给出答案后的最后我也遇到了段错误,我不确定为什么会这样。 #include #inc
我目前正在实现一个可以处理与物理单位相关的数字数据的类。 我想实现一种计算实例平方根的方法。假设您有一个具有属性值和名称的类的实例: from math import sqrt class Foo:
我正在使用 HTML + CSS + AngularJS 制作一个简单的计算器。一切正常,但我想添加一个 SquareRoot 函数。这是一些代码: function _solve(){ switc
问题是关于在通用数值接口(interface)中定义平方根算法的问题的策略方法。我知道存在解决不同条件下问题的算法。我对以下算法感兴趣: 仅使用选定的函数解决问题; 不关心操作的对象是整数、 floa
好吧,我已经研究了一段时间了,我知道我的逻辑是正确的,但是,我似乎无法生成正数的正确底平方根。 public int mySqrt(int x) { if(x 0) uppe
我找不到让这个函数 Math.sqrt(value) 工作的方法。 (╯°□°)╯︵┻━┻我不确定,但问题似乎出在运营商。我还尝试在 const calculation 中添加该函数,但它也不起作用。
我发现了这段获得平方根的代码,令我惊讶的是它的工作方式,使用 union 和位移这是代码: float sqrt3(const float x) { union { int i;
在 python 中使用 sqrt 函数时,我遇到了“distance ValueError: math domain error”问题。 这是我的代码: from math import sqrt
我一直在做一些研究,寻找一种对大整数进行运算的相对快速的平方根算法。我在这里找到了几个例程。第一个(下面)是用 C 语言编写的... int isqrt(int n) { int b = 0;
好吧,我想知道 math.h 平方根与其中包含神奇数字的那个(因 Quake 而出名,但由 SGI 制作)相比有多快。 但这对我来说是一个受伤的世界。 我首先在 Mac 上尝试了此操作,其中 math
有谁知道如何解决这个复发? 大定理在这里不起作用。 最佳答案 这在 O(1) 中似乎很明显,因为 T(n) = T(n - sqrt(n)) = T(m) with 0 < m < n 通过归纳,你得
我是一名优秀的程序员,十分优秀!