Questions tagged «number-theory»

数论是数学的分支,涉及数的数学性质以及各种类型的数之间的关系。此标记应与从数论角度提出的有关计算机科学主题的问题一起使用,或者可以涉及数论,或者其答案可以或应该用数论术语表达。

1
具有许多可除条件的子集和问题
令SSS为一组自然数。我们认为SSS可分偏序下,即s1≤s2⟺s1∣s2s1≤s2⟺s1∣s2s_1 \leq s_2 \iff s_1 \mid s_2。让 α(S)=max{|V|∣V⊆S,Vα(S)=max{|V|∣V⊆S,V\qquad \displaystyle \alpha(S) = \max \{|V| \mid V\subseteq S, V的反链}}\}。 如果考虑数字的多重集在的子集和问题SSS,那么与有关的问题的复杂性又能怎么说呢α(S)α(S)\alpha(S)?很容易看出α(S)=1α(S)=1\alpha(S)=1,那么问题就很容易。注意,当α(S)=1α(S)=1\alpha(S)=1††\dagger时,即使是较难的背包问题也很容易。 ††\dagger 解决M. Hartmann和T.Olmstead(1993)的顺序背包问题

1
服用mod的复杂性
这似乎是一个应该简单回答的问题,但我没有明确的答案: nnna,pa,pa, pamodpamodpa\bmod p 仅将除以将花费时间,其中是乘法的复杂度。但是可以更快地执行吗?aaappp O(M(n))O(M(n))O(M(n))M(n)M(n)M(n)modmod\bmod

2
如何有效地找到数字和序列的元素?
出于兴趣,我试图解决Euler项目(数字总和序列)的“最近”类别中的问题 。但是我想不出一种有效解决问题的方法。问题如下(在最初的问题序列中,开始时有两个问题,但不会改变序列): 的数字和序列是1,2,4,8,16,23,28,38,49 ....其中nthnthn^{th}序列的术语是和数字序列中它前面。找到序列的1015th1015th10^{15}th项。 天真的解决方案无法实现,因为它需要大量时间。我试图减少的问题,以矩阵幂的情况下(这将花费O(log(1015))O(log(1015))O(log ( 10^{15}))的时间量),但不能想出这样的复发拟合线性标准作为复发,这种序列是相当特有。可以看出,该序列由重复控制: an=an−1+d(an−1).....(1)an=an−1+d(an−1).....(1) a_n = a_{n-1} + d( a_{n-1} ) ..... (1 ) 其中anana_n是nthnthn^{th}序列的术语和ddd是给定的自然数作为数(例如数字输入返回总和时的功能。d(786)=21d(786)=21\;d(786)=21)。我的第二种方法是尝试在序列中找到某种模式。可以看出,序列的前几项可以写成 a_1 = 1 a_2 = 1 + d( 1 ) a_3 = 1 + d( 1 ) + d( 1 + d( 1 ) ) a_4 = 1 + d( 1 …


5
哥德巴赫猜想和忙海狸数字?
背景:我是计算机科学领域的外行。 我在这里阅读“忙碌的海狸”编号,发现以下段落: 人类可能永远不会知道BB(6)的价值,更不用说BB(7)或序列中任何更高的数字了。 确实,前五名和六名规则的竞争者已经使我们望而却步:我们无法以人的角度解释它们是如何“发挥作用”的。如果创造力充满了他们的设计,那不是因为人类将它放在了那里。一种理解的方法是,即使是小型的图灵机也可以编码深奥的数学问题。以哥德巴赫的猜想为例,每个4或更高的偶数是两个质数之和:10 = 7 + 3,18 = 13 + 5。该猜想自1742年以来就一直抵制证明。然而,我们可以设计一个图灵机,用哦,比方说100条规则,该规则测试每个偶数是否是两个质数之和,并在发现和发现反例时停止。推测。然后知道BB(100),原则上我们可以将此机器运行BB(100)步骤,确定它是否暂停,从而解决哥德巴赫的猜想。 斯科特·亚伦森。“谁可以命名更大的数字?” 谁可以命名更大的数字?Np,网络。2016年11月25日。 在我看来,作者似乎在暗示我们可以证明或反驳哥德巴赫猜想,这是在有限数量的计算中关于无限多个数字的陈述。我想念东西吗?

3
我们能快找到所有总和为N的四平方组合吗?
在Stack Overflow(此处)提出了一个问题: 给定一个整数,打印出的整数值的所有可能的组合和其中求解方程式。A ,B ,C D A 2 + B 2 + C 2 + D 2 = NñNNA ,B ,CA,B,CA,B,CdDD一个2+ B2+ C2+ D2= NA2+B2+C2+D2=NA^2+B^2+C^2+D^2 = N 这个问题当然与Bachet的数论猜想有关(由于他的证明,有时也称为Lagrange的四平方定理)。有一些论文讨论了如何找到一个解决方案,但是我一直找不到任何关于我们能够以多快的速度找到特定所有解决方案的信息(即所有组合,而不是全部排列)。ñNN 我已经考虑了很多,在我看来,它可以在时空中求解,其中是所需的总和。但是,由于缺乏有关该主题的任何先验信息,我不确定这是否对我而言是重要的主张,还是仅是微不足道的,显而易见的或已知的结果。Nø (Ñ)O(N)O(N)ñNN 因此,问题是,对于给定的,我们能快找到所有四平方和?ñNN 好的,这是我正在考虑的(几乎)O(N)算法。前两个支持函数,最近的整数平方根函数: // the nearest integer whose square is less than or equal to N public int SquRt(int N) { …

2
最小公除数
基本上,问题是:对于一组正数,找到一个最小数,它不是的任何元素的除数,即。SSSdddSSS∀x∈S, d∤x∀x∈S, d∤x\forall x \in S,\ d \nmid x 表示n=|S|n=|S|n = |S|和C=max(S)C=max(S)C = \max(S) 。考虑函数F(x)=F(x)=F(x) = 不除x的最小素数xxx。很容易看到F(x)≤logxF(x)≤log⁡xF(x) \leq \log x。对于集合SSS,令F(S)=F(S)=F(S) = 不除S的任何元素的最小素数SSS。我们有一个上限 F(S)≤F(lcm(S))≤F(Cn)≤nlogC.F(S)≤F(lcm⁡(S))≤F(Cn)≤nlog⁡C.F(S) \leq F(\operatorname{lcm}(S)) \leq F(C^n) \leq n \log C. 因此,一种简单的蛮力算法(它枚举了从111到n \ log C的所有数字,nlogCnlog⁡Cn \log C并检查它是否未除以S的任何元素)SSS是多项式的,并且具有时间复杂度O(n2logC)O(n2log⁡C)O(n^2 \log C)。 解决该问题的另一种方法是计算S的每个元素的所有因子,SSS并在蛮力算法中使用它们,以检查xxx是否为O(1)O(1)O(1)时间的答案。该算法的时间复杂度为O(n⋅min(C−−√,nlogC)+nlogC)O(n⋅min(C,nlog⁡C)+nlog⁡C)O(n \cdot \min (\sqrt{C}, n \log C) + n \log C)并且使用O(nlogC)O(nlog⁡C)O(n …

4
求出GCD = 1的最小子集的大小
这是2012年波兰大学生程序设计比赛的练习部分出现的问题。尽管我可以找到主要比赛的解决方案,但似乎在任何地方都找不到该问题的解决方案。 的问题是:给定一组的ñNN不同的正整数不大于10910910^9中,找到大小米mm具有1以外没有公约数的最小子集的ñNN为至多500,并且可以假设的溶液存在。 米≤ 9m≤9m \le 9小号SS| 小号| =10|S|=10|S|=10小号SS1 &lt; 克1个&lt; g2&lt; 。。。&lt; g101&lt;g1&lt;g2&lt;...&lt;g101 < g_1 < g_2 < ... < g_{10}i ≠ j S g 2 g 3。。。g 10 g 2 g 3。。。克10 ≥ 3 × 5 × 7 × 11 × 。。。× 29 = 3234846615 &gt; 10 9GCD (克一世,g …


2
有效计算n个除数的最小整数
为了解决这个问题,我首先观察到 ϕ(pe11 pe22⋯ pekk)=(e1+1)(e2+1)⋯(ek+1)ϕ(p1e1 p2e2⋯ pkek)=(e1+1)(e2+1)⋯(ek+1)\phi(p_1^{e_1} \space p_2^{e_2} \cdots \space p_k^{e_k}) = (e_1 + 1)(e_2 + 1)\cdots(e_k +1) 其中ϕ(m)ϕ(m)\phi(m)是的(不一定是素数)的除数数mmm。如果mmm是使得的最小整数ϕ(m)=nϕ(m)=n\phi(m) = n,则 ϕ(m)=nϕ(m)=n\phi(m) = n (e1+1)(e2+1)⋯(ek+1)=n(e1+1)(e2+1)⋯(ek+1)=n(e_1 + 1)(e_2 + 1)\cdots(e_k +1) = n 现在,我们必须选择eieie_i这样∏ipeii∏ipiei\prod_{i} p_i^{e_i}是最小的。的选择ppp很简单-它们只是升序的质数。 然而,我的选择首先想到的eieie_i是不正确的。我以为您可以简单地将nnn分解为因子,然后按降序对因子进行排序,然后减去1。在大多数情况下,它可以正常工作,例如n=15n=15n = 15除数的最小整数是: 15=5⋅315=5⋅315 = 5 \cdot 3 15=(4+1)(2+1)15=(4+1)(2+1)15 = (4 + 1)(2 + 1) m=2432=144m=2432=144m …

1
有效地找到一组自然数的最大成对GCD
考虑以下问题: 令是自然数的有限子集。S={s1,s2,...sn}S={s1,s2,...sn}S = \{ s_1, s_2, ... s_n \} 令 | 其中是和最大公约数G={G={G = \{ gcd(si,sj)gcd(si,sj)gcd(s_i, s_j)si,sj∈S,si,sj∈S,s_i, s_j \in S, si≠sj}si≠sj} s_i \neq s_j \}gcd(x,y)gcd(x,y)gcd(x,y)xxxyyy 找到的最大元素。GGG 这个问题可以通过使用Euclid算法获取每对最大公约数并跟踪最大对数来解决。 有更有效的解决方法吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.