说我们有2/4分数,它可以减少到1/2.有没有可以减少的javascript函数?
我写了这个代码用于生成平方根N的连续分数.
但是当N = 139时它会失败.
输出应该是{11,1,3,1,3,7,1,1,2,11,2,1,1,7,3,1,3,1,22}
我的代码给了我394个术语的序列...其中前几个术语是正确的但是当它达到22它给12!
有人可以帮我这个吗?
vector <int> f;
int B;double A;
A = sqrt(N*1.0);
B = floor(A);
f.push_back(B);
while (B != 2 * f[0])) {
A = 1.0 / (A - B);
B =floor(A);
f.push_back(B);
}
f.push_back(B);
Run Code Online (Sandbox Code Playgroud) 我是一名计算机科学专业的学生;我正在独立学习算法课程。
\n在课程中,我看到了这样一个问题:
\n\n\n给定一个n位整数N,找到一个多项式(n)时间算法来决定N是否为幂(即,存在整数a和k> 1,使得a^k = N)。
\n
我想到了第一个选项,它是 n 的指数:\n对于所有 k , 1<k<N ,尝试将 N 除以 k 直到得到结果 1。
\n例如,如果 N = 27,我将从 k = 2 开始,因为 2 不能整除 27,我将转到下一个 k =3。\n我将除以 27 / 3 得到 9,然后再次除以直到我将得到 1。这不是一个好的解决方案,因为它是 n 的指数。
\n我的第二个选择是使用模算术,如果 gcd(a, k+1 ) = 1 (欧拉定理),则使用k \xe2\x89\xa1 1 mod (k+1) 。我不知道a和k是否互质。
\n我正在尝试编写一个算法,但我很难做到:
\nfunction power(N)\nInput: Positive integer N\nOutput: yes/no\nPick positive integers a_1, a_2, . . . , a_k < N …Run Code Online (Sandbox Code Playgroud) 所以我希望能够将任何十进制数转换为分数.在这两种形式中,例如没有剩余的形式,如:3/5或者余数:3 1/4.
我在做什么是这个..
假设我有号码.3435.
现在我不知道如何找到GCF.而且我也不知道如何实现逻辑来找到代表数字的分数或者如果不存在精确分数则以其余形式表示.
我到目前为止的代码:(测试)
x = 34/35;
a = x - x.toFixed();
tens = (10).pow(a.toString().length - 2);
numerator = tens * x;
denominator = tens;
Run Code Online (Sandbox Code Playgroud) 我需要将一个双精度数组转换为整数,同时保持它们的比率相同并尽可能简单.例如,[0.7,0,-0.7]应该变为[1,0,-1]并且[24,12,0]应该变为[2,1,0].我不确定这是否会涉及获得双打的最小公倍数,如果是这样的话怎么办呢?
作为计算器应用程序的一部分,我正在尝试使用sigma表示法.但是,它输出的结果总是小数,其余的并不重要.我只想将小数更改为分数.
我已经有了reduce函数,我遇到的问题是从这样的小数点开始:'0.96875'到它的小数值,'31/32'
谢谢!
PS:我已经调查了几乎所有事情,而对于我的生活,我无法弄清楚这一点.此时我需要的是如何从中取出小数,然后我可以减少它.
这是我的reduce方法:
-(void)reduce {
int u = numerator;
int v = denominator;
int temp;
while (v != 0) {
temp = u % v;
u = v;
v = temp;
}
numerator /= u;
denominator /= u;
}
Run Code Online (Sandbox Code Playgroud) javascript ×2
math ×2
algorithm ×1
c++ ×1
double ×1
fractions ×1
function ×1
int ×1
modulo ×1
objective-c ×1
square-root ×1
swift ×1
xcode ×1