相关疑难解决方法(0)

查找数字的最大素数因子的算法

计算数字中最大素因子的最佳方法是什么?

我认为效率最高的是以下内容:

  1. 找到干净分配的最低素数
  2. 检查除法结果是否为素数
  3. 如果没有,找到下一个最低点
  4. 转到2.

我基于这个假设,因为它更容易计算小的素因子.这是对的吗?我应该研究哪些其他方法?

编辑:我现在已经意识到,如果有超过2个素因子,我的方法是徒劳的,因为当结果是两个其他素数的乘积时,步骤2失败,因此需要递归算法.

再次编辑:现在我已经意识到这仍然有效,因为最后找到的素数必须是最高的,因此对步骤2的非素数结果的任何进一步测试都会导致较小的素数.

algorithm math prime-factoring

182
推荐指数
5
解决办法
19万
查看次数

简单的随机数发生器,可以在O(1)时间内串行生成第n个数

我不打算将其用于安全目的或统计分析.我需要创建一个简单的随机数生成器,用于我的计算机图形应用程序.我不想使用术语"随机数发生器",因为人们用非常严格的术语来思考它,但我想不出任何其他的词来形容它.

  • 它必须快.
  • 给定一个特定的种子,它必须是可重复的.例如:如果seed = x,则每次使用种子x时都会发生系列a,b,c,d,e,f .....

最重要的是,我需要能够在恒定时间内计算系列中的第n个项.

看来,我无法用rand_r或srand()实现这一点,因为这些需求是依赖于状态的,我可能需要以某种未知的顺序计算nth.

我看过线性反馈移位寄存器,但这些寄存器也依赖于状态.

到目前为止我有这个:

int rand =(n*prime 1 + seed)%prime 2

n =用于表示序列中术语的索引.例如:对于第一学期,n == 1

素数1和素数2是素数,其中素数1 >素数2

seed =某个数字,它允许一个人使用相同的函数根据种子产生不同的系列,但是给定种子的系列相同.

我不知道这是多么好或坏,因为我还没有充分利用它,但如果有更多经验的人可以指出这方面的问题,或者帮助我改进它,那将会很棒.

编辑 - 我不在乎它是否可预测.我只是想在我的计算机图形学中创建一些随机性.

random algorithm

9
推荐指数
2
解决办法
2030
查看次数

标签 统计

algorithm ×2

math ×1

prime-factoring ×1

random ×1