目前我正在借用java.math.BigInteger这里描述的J#库.从来没有使用过库来处理大整数,这看起来很慢,大约慢了10倍,即使对于ulong长度数也是如此.有没有人有更好的(最好是免费的)库,或者这种性能水平是否正常?
我有一个.txt文件,其中包含Pi的5亿位二进制表示.
我需要在我的程序中使用它的字符串表示.我还需要能够搜索子串等等 - 换句话说,我需要能够像正常大小的字符串一样对待它.我会试着找到很多子串,所以速度是必要的.
我最初的逻辑是简单地将字符串直接复制并粘贴到程序中并将其用作静态变量..但我无法实际打开.txt文件,因此无法复制和粘贴.我的下一次尝试是从文件中读取整个字符串,但我不能在静态方法中执行此操作,并且WAAAY需要太长时间(实际上我不确切知道需要多长时间,我最终关闭了程序).
是否有可能做到这一点?任何帮助,将不胜感激.
编辑:潜在的相关信息:
使用此代码:
/// <summary>
/// Gets a 500 million binary digit representation of Pi.
/// </summary>
public static string GetPi()
{
//as per http://msdn.microsoft.com/en-us/library/db5x7c0d.aspx
StreamReader piStream = new StreamReader(@"C:\binaryPi.txt");
string pi = "";
string line;
while ((line = piStream.ReadLine()) != null)
{
pi += line;
}
return pi;
}
Run Code Online (Sandbox Code Playgroud)
我得到一个OutOfMemoryException ..所以扫描文件实际上似乎不可能,除非我遗漏了什么..