【问题标题】:Algorithm with very unlike branch分支非常不同的算法
【发布时间】:2019-03-07 09:34:07
【问题描述】:

我正在研究并行编程并将循环重写为谓词形式。对于我的研究,我需要某种带有 else 分支的循环,其概率趋于零。

它可以是任何常见的编程任务。但它应该是最新的并且有点问题。任何与计算机科学相关但不相关的应用领域中的任何算法。

它可以包含多个级别的if-else。

例子:

if cond
{
    highly possible;
}
else
{
    almost impossible;
    but unavoidable;
}

【问题讨论】:

  • 您是否要求真实世界的现有代码,这可能是事件驱动的,因此很难移植?还是您要便携的东西?我认为这不太可能是您正在寻找的那种代码。请解释你想要什么样的代码。也许举个例子。为什么你对使用低概率 rand() 不满意?为什么不使用附带条件的素因子分析?例如。寻找具有至少 10 次幂的质因数的数字,例如 3072=2toThe10*3。
  • 例如,在哈希函数中,每次我们添加一个元素时,我们需要检查表的大小是否已经达到,因此我们需要增加它。当大小增加时,这种检查的概率很低。

标签: algorithm if-statement scientific-computing


【解决方案1】:

对于非随机算法,很难谈论“概率”,其中时间复杂度通常是针对最坏情况给出的。不过,我立即想到的例子是 Knuth 的“算法 D”,它执行多词除法。它包含一个条件校正步骤,它对随机选择的 n 位字执行概率为2^-n。在测试算法时,您确实需要专门制定一个可以执行该条件的案例,否则您将永远看不到它运行。

【讨论】:

    【解决方案2】:

    想到的一个问题是 UUID 的生成,并将它们用作标识符,例如,在数据库中。生成 UUID 后,您将(理论上)必须检查是否与之前生成的某些 UUID 发生冲突,但发生冲突的概率非常小。

    【讨论】:

    • 据我了解 UUID 的定义和用途,它们确实跨越了具有多个源的上下文,这些源无法同步。 IE。无法验证唯一性。可以引用一些东西来支持(理论上)需要唯一性检查吗?该标准的早期定义确实试图实现唯一性,但后来的修订完全是随机生成。
    猜你喜欢
    • 2020-12-16
    • 2010-10-10
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    相关资源
    最近更新 更多