- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
我不是严格意义上的初级程序员,但我没有接受过数学以外的正规教育 - 所以这纯粹是业余爱好,可能是业余的。
我最近自己开发了一个算法来解决这个问题,但我想知道是否有任何相对简单的算法明显更高效/更快?
如果有人要求您确定他们正在考虑的数字(1 到 100 之间),您可能会使用该策略的一个非常粗略的描述:它是否大于 50? “是的”。是否大于 75? “不”。是否大于 62.5? “是的”。是否大于 68.75?等等。每次将包含答案的值范围减半,直到得到答案。
(注释)算法如下(在 python 中):
import math
####
z = (2**28)*(3**45)*(5**21)*(7**22)*(11**41) # (example) number to factor
Pl = [2, 3, 5, 7, 11] # list of primes in fatorisation (in order)
####
def a(z1, k1, p1): # roughly: gives the maximum possible power of p1 (in factorisation of z1), divided by 2^(k1)
return int(round(math.log(z1, p1)/2**k1, 0))
Fact = [] # this will be the list of powers of the primes in Pl
for i in range(len(Pl)-1):
p = Pl[i]
b = a(z, 1, p)
k = 2
while a(z, k, p) != 0:
if z % (p**b) == 0:
b += a(z, k, p)
khác:
b -= a(z, k, p)
k += 1
if z % (p**b) != 0: # the above while loop narrows down to two possible values, this narrows down between those two
b -= 1
Fact.append(b)
z = z/(p**b)
Fact.append(int(round(math.log(z, Pl[-1]), 0)))
print(Fact)
此外,我几乎不知道如何为上述内容找到“大 O”表达式。这不是这个问题的核心,我只是想知道如果有人想弄清楚它会是什么。
câu trả lời hay nhất
这就是众所周知的二分搜索,这是一种非常著名的算法,您可以在其中找到各种文档。
它的大 O 复杂度为 O(log N)
.
关于python - 当因式分解中出现的(短〜)素数列表已知时,有哪些有效的整数因式分解算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199883/
我很抱歉提出一个关于 Eigen3 优化计算方案的一般性问题。假设我们确实拥有两个 Eigen3 矩阵,M 和 N。假设我们需要计算以下内容: Eigen::Matrix M; Eigen::Matr
如果我使用 Sympy 获得了以下方程: 是否可以排列变量,使 x 和 L 在方程中仅显示为 x/L? 最佳答案 用另一个符号(例如 y)替换 x/L 似乎对我有用: >>> import sympy
我不确定我的标题应该是什么。但是,我试图对我的代码进行很好的验证。以下是我的函数中唯一允许使用的代码:c0001、c0002、c0003、c0004、c0005、C0001、C0002、C0003、C
这周我开始较少样式表开发。 我当前的元素有许多不同颜色的链接,例如: #dev-team a { color: #D09EBA; } #admin-team a { color: #0
我试图通过分解 N 来找到 D。 我的 N 是 265291078722948385089717069136983657793 我发现 P & Q 使用 n = p.q P - 1471697682
这个问题在这里已经有了答案: Partitioning in JavaScript [duplicate] (7 个答案) 关闭 7 年前。 假设我有一个数组 = [0,1,2,3,4,5,6],我
我有这个数据框:基本上每一行都是一个客户一天执行的一笔交易。同一客户在同一天和不同日期进行多笔交易。我想获得一个列来显示客户之前访问的次数。 id date purchase id1 date1
Tôi là một lập trình viên xuất sắc, rất giỏi!