通过分解找到完美立方体的程序

时间:2017-05-25 12:16:37

标签: javascript c login

我只是希望得到一些C / JS程序的帮助,以便使用以下分解方法找到完美的多维数据集任何帮助都会得到应用

  • 3 * 3 * 3
  • 3 * 3 * 3
  • 3 * 3 * 3

代码

var num=19683;
   var arr=[];
   for(i=2;i<num;i++){
  if(num%i==0){
     arr.push(i);
  }
}

C-代码

#include<stdio.h>

int main() {
    int num=19683;
    int a[20];
    int j=0;
    for(int i=2;i<num;i++){
    if(num%i==0){
       a[j]=i;
        j++;

    }

    }
    for(int i=0;i<j;i++){
    printf(" %i", a[i]);
    }
}

获得结果:为

  

1,3,9,27,81,243,729,2187,6561

3 个答案:

答案 0 :(得分:1)

虽然期望的结果不清楚, 这是这样的吗?

df.apply(lambda x: [abs(x.age_diff),abs((x.age_diff<0) - x.result)],axis=1)
Out[165]: 
   age_diff  result
0         1       0
1         1       0
2         0       1

答案 1 :(得分:1)

未经测试的快速C解决方案:

int isPerfectCube(long int num){
    long int x = pow(num, 1.0/3) + 0.5;
    return (x*x*x == num);
}

这种解决方案的缺点是它依赖于浮点算术。优点是它很快(未经测试但应该是真的)并且易于实现,并将繁重的工作传递给pow(),这可能会迭代地处理这个问题。

pow(num, 1.0/3)的准确性的最低要求是,当num实际上是一个完美的立方体时,它至少接近正确的整数而不是任何其他整数。否则算法将失败(这就是浮点精度对这些问题不利的原因)。从+ 0.5double截断时,int会确保将其四舍五入为最接近的整数。如果您想使用此解决方案,您可能需要检查pow()的数字范围是否足够准确。

更安全甚至更快的解决方案可能涉及自己制作一些迭代算法。这就是我想要做的事情。

答案 2 :(得分:0)

如果您想知道输入的数字是否是完美的立方体

position: relative;

可能这可能需要更少的时间

.infographic__center