arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2006.07445math.NT
收藏

生成随机因数分解光滑整数的算法

Algorithms to Uniformly Generate Random Factored Smooth Integers

University of Wisconsin-Madison(威斯康星大学麦迪逊分校);Butler University(巴特勒大学)

Eric Bach, Jonathan Sorenson

AI总结:

本文提出算法生成随机因数分解光滑整数,通过字典序排列和启发式方法优化运行时间,实现高效均匀生成。

摘要:

设 $x\ge y>0$ 为整数。一个正整数若所有素因子均不超过 $y$,则称为 $y$-光滑。令 $Ψ(x,y)$ 表示不超过 $x$ 的 $y$-光滑整数个数。我们提出了几种算法,能够随机生成一个 $n\le x$ 的整数,使其具有已知的素因子分解,并且 $n$ 是 $y$-光滑的。我们首先描述了计算 $Ψ(x,y)$ 的精确算法以及按素因子字典序枚举不超过 $x$ 的 $y$-光滑整数的算法,这两种算法均基于 Buchstab 的恒等式,可能在之前已知。然后我们提出一个算法,其输入参数为 $r$,$0\le r<1$,并返回所有不超过 $x$ 的 $y$-光滑整数按字典序排列中第 $\lfloor rΨ(x,y)\rfloor$ 位的整数 $n$。此处位置 0 是第一位。因此,只要 $r$ 被均匀选择,$n$ 就能被均匀生成。该算法的运行时间为 $O(Ψ(x,y)\log\log y)$ 次算术运算。我们随后探讨了速度与严谨性之间的权衡。通过放松输出的均匀性并允许在运行时间分析中使用多种启发式方法,我们将运行时间改进到 $$ O\left( \frac{ (\log x)^3 }{\log\log x} \right)$$ 次算术运算。最后我们以生成一个不超过 $10^{100}$ 的 $10000$-光滑整数作为示例。

英文摘要:

Let $x\ge y>0$ be integers. A positive integer is $y$-smooth if all its prime divisors are at most $y$. Let $Ψ(x,y)$ count the number of $y$-smooth integers up to $x$. We present several algorithms that will generate an integer $n\le x$ at random, with known prime factorization, such that $n$ is $y$-smooth. We begin by describing algorithms to compute $Ψ(x,y)$ exactly and to enumerate $y$-smooth integers up to $x$ in lexicographic order by prime divisor. Both of these are based on Buchstab's identity, and were likely known before. Then we present an algorithm that accepts as input a parameter $r$, $0\le r<1$, and returns the integer $n$ that is at position $\lfloor rΨ(x,y)\rfloor$ in the lexicographic ordering of all $y$-smooth integers up to $x$. Here position 0 is the first position. Thus, $n$ is generated uniformly so long as $r$ is chosen uniformly. This algorithm has a running time of $O(Ψ(x,y)\log\log y)$ arithmetic operations. We then explore the tradeoff between speed and rigor. By relaxing the uniformity of the output and allowing for multiple heuristics in our runtime analysis, we improve the running time to $$ O\left( \frac{ (\log x)^3 }{\log\log x} \right)$$ arithmetic operations. We conclude with a sample run by generating a $10000$-smooth integer $\le 10^{100}$.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑