【问题标题】:Optimization creating the factorial representation of number优化创建数字的阶乘表示
【发布时间】:2020-09-12 03:26:00
【问题描述】:

我通过将x2,3,4,5,... 相除来创建x 的阶乘表示,直到xzero,因此x256^50000,而更大的这需要几秒钟。有没有比上面提到的更快的方法来创建数字的阶乘表示?我正在使用 java。

例子:

public List<Integer> toFactorialRepresentation(BigInteger x){
  List<Integer> out = new ArrayList<>();
  for(BigInteger i = TWO; !x.equals(ZERO); i=i.add(ONE)){
    BigInteger[] bigg = x.divideAndRemainder(i);
    out.add(bigg[1].intValueExact());
    x=bigg[0];
  }
  return out;
}

【问题讨论】:

  • 您能否详细说明“因子表示”是什么意思?另外,你能分享一下你现在拥有的代码吗?
  • 添加示例代码
  • 缓解混乱...阶乘!= 因式分解。

标签: java optimization numbers factorial


【解决方案1】:

第一件事总是将您的数字除以 2 并获得第一因子。 (就像 1000 可以从中得到 2^3) 第二件事是从 3 到 x 的平方根的循环除数,每个循环将迭代器增加 2(3、5、7 等等)。 我认为上面的简单方法会对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2014-03-24
    • 2010-10-21
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多