Performant language/method 在 pi 的扩展中找到一系列整数
Performant language/method to find a series of integers within an expansion of pi
我正在编写一个交互式教育应用程序,它可以在 pi 的百万位扩展中定位用户输入的一系列整数。我正在尝试决定一种方法。哪个编程 language/method 最快?
这只是普通的旧子串搜索。
- 将预先计算的数字存储在字符串中。
- 使用一种线性时间子字符串搜索算法,例如 KMP,搜索用户输入的子字符串。实际上,如果用户输入的字符串少于 100 位左右,那么朴素的 O(n^2) 子字符串搜索(这是 C 的
strstr()
通常实现的方式)可能足够快,并且几乎肯定是对于用户输入的少于 10 位数字的字符串,它比任何更高级的算法都快。 (这些数字是有根据的猜测。)
这些算法可以用任何语言表达,但如果你使用像Python这样的解释性语言,请尝试使用任何内置的字符串搜索函数(s )(包括regexes)它在自己实现KMP之前已经有了——内置函数将在编译语言内部实现,所以应该是更快的常数因子。
我正在编写一个交互式教育应用程序,它可以在 pi 的百万位扩展中定位用户输入的一系列整数。我正在尝试决定一种方法。哪个编程 language/method 最快?
这只是普通的旧子串搜索。
- 将预先计算的数字存储在字符串中。
- 使用一种线性时间子字符串搜索算法,例如 KMP,搜索用户输入的子字符串。实际上,如果用户输入的字符串少于 100 位左右,那么朴素的 O(n^2) 子字符串搜索(这是 C 的
strstr()
通常实现的方式)可能足够快,并且几乎肯定是对于用户输入的少于 10 位数字的字符串,它比任何更高级的算法都快。 (这些数字是有根据的猜测。)
这些算法可以用任何语言表达,但如果你使用像Python这样的解释性语言,请尝试使用任何内置的字符串搜索函数(s )(包括regexes)它在自己实现KMP之前已经有了——内置函数将在编译语言内部实现,所以应该是更快的常数因子。