我所说的随机,是指既不是从顶部,也不是从中间,也不是从布托姆。搜索应返回随机排序的结果。
例如:我正在 vi 编辑器中搜索“失败”。我想要随机排序的结果。
当我按 n 或 N(或任何其他键)时,我应该收到随机排序的消息。
答案1
查找随机匹配的最简单方法是执行一次搜索,然后键入随机数并按n
或N
(随机?)。这适用于任何 vi 变体。
一个极其简单的伪随机数生成器是选择一个中号为了氮M 和 N 互质的项,选择一个“随机”起始值 (S) ,然后 (S+M)%N 就是下一个值。通常,您希望 M 大于 N。如果 N 和 M 之间存在公因数,那么您得到的循环可能无法涵盖所有可能的项目。为了获得最佳性能,M 应介于 N/2 和 3N/2 之间。
因此,为了获得额外的好处,您可以选择一个中等大的质数(可能大于您猜测的匹配数)并将其分配n
给 vi 中的别名键。这将为您提供一个命令,该命令将“随机”循环所有匹配项。