我正在測試一個矩陣,如果它在每一行都有一個素數。C#BigInteger和int如何保存內存?
MR表示它應該使用Miller Rabin算法。如果它的錯誤,它只是試圖除數到sqrt(n)。如果Vansor在每一個檢查過的行中都找到了一個素數,那麼它是真實的,如果vanoszlop在實際檢查過的行中找到了一個素數,則它是真實的。
我的問題是:只有在tryParse爲真時,才能通過不創建int和BigInteger值來節省內存嗎?我的意思是類似於
if (int.tryParse(akt, out new int szam))
是這樣的可能嗎? (和多少內存時,其未簽訂併爲BigInteger走?)
akt = Console.ReadLine();
int szam; BigInteger szambig;
if (int.TryParse(akt, out szam))
{
if (MR) {
if (MilRab(szam))
{ vansor = true; vanoszlop = true; } }
else if (Prim(szam))
{ vansor = true; vanoszlop = true; }
}
else if (BigInteger.TryParse(akt, out szambig))
{
if (MR) {
if (MilRab(szam))
{ vansor = true; vanoszlop = true; } }
else if (Prim(szam))
{ vansor = true; vanoszlop = true; }
}
更好詢問是否會是明智的。答案是否定的。你正在談論2個局部變量,佔用的空間非常小。 BigInt的大部分只在分配時分配。 –
你爲什麼要儘量節省內存?你有沒有發現這部分代碼消耗了太多的內存? – svick
底部'MilRab()'和'Prim()'不應該使用'szambig'變量嗎? –