计算字符串的干草堆大小
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算字符串的干草堆大小相关的知识,希望对你有一定的参考价值。
我想创建一个密码复杂性检查器的穷人版本。我确定密码使用的粗略字符集及其长度。搜索空间将是:charset ^ length。为了将它与单个值进行比较,我想要用作指数2的最小x大于搜索空间。在更多mathy语言中我想要这个:
给定a和b找到最小的x,其中a ^ b <2 ^ x;
我的数学糟透了。有一种快速简便的方法来计算它吗?
答案
也许我的数学并没有那么多。
2^x == a^b
= define a = 2^c, c = 2loga
2^x == 2^c^b
=
2^x == 2^c*b
=
x == c*b
=
x == 2loga * b
另一答案
您可以使用对数来求解方程式。取两边的对数得出
x > b * log(a) / log(2)
如果你想找到方程所在的最小整数,我们可以在右边找到圆形。在python中,这可以实现为
import math
def find_x(a, b):
return math.ceil(b * math.log(a) / math.log(2))
以上是关于计算字符串的干草堆大小的主要内容,如果未能解决你的问题,请参考以下文章