【发布时间】:2018-06-30 23:03:38
【问题描述】:
是使用抛硬币来生成从 1 到 9 的随机整数,使用单因素求解算法更快,还是使用多因素求解算法计算更快?
使用一次因式分解求解,将处理具有四个 f(2) 实例的求解尝试,对于四位/进程返回,其函数范围为 2^4=16。对于根据该方法使用 f(2) 生成从 1 到 9 的 int,16 个结果中有 9 个是有效的,并且每次求解尝试的 7 个可能返回将是求解尝试失败/重试。因此,这种从 1 到 9 生成 rand 整数的单因式分解方法具有 7/16=%44 的四进程函数求解尝试失败/重试率。
在算法上使用多个因素,相对而言,求解尝试失败/重试率可能会降低?
首先,f(2) 的两个实例可以生成一个从 1 到 4 的随机整数,只接受从 1 到 3 的返回值,对于两个进程求解尝试函数,求解尝试失败/重试率为 %25。
接下来,f(2) 的另外两个实例可以生成另一个从 1 到 4 的随机整数,只接受从 1 到 3 的返回,另外 %25 的两个进程求解尝试函数的求解尝试失败/重试率。
从 1 到 3 的第一个 rand int 可以添加到 {3* ((the second rand int from 1 to 3 result)-1)} 以产生一个从 1 到 9 的 rand int,它有 %25 失败/retry rate 用于解决其前两个进程的尝试,然后是 %25 的失败/重试率用于解决其后两个进程的尝试。
第二种算法的f(2) -> f(9)求解效率可能更高,因为它使用了多个因子,而不是单个因子?
有关通过抛硬币创建随机数生成器的讨论,请参阅Creating a random number generator from a coin toss
【问题讨论】:
-
您应该对此类内容进行概要分析,以便获得经验证据。