[英]how to get the size of disabled attribute in table with xpath in selenium-java
[英]How to get table size 2^32 in java
我必須進入java protected final static int [] SIEVE = new int [ 1 << 32 ];
但是我不能強迫Java這么做。
我得到的最大篩子是2 ^ 26我需要2 ^ 32才能結束作業。 我嘗試使用遮罩,但是我需要SIEVE [n] = k,其中min {k:k | n&k> 2}。
編輯我需要使用Sieve查找2到2 ^ 63-1的因數,並且sieve必須具有P [n] =是除以n的最小素數的信息。 我知道用篩子可以將因子分解為2 ^ 52。 但是,如何堅持內容呢?
編輯x2問題已解決
你不能 一個Java陣列可以具有至多 2^31 - 1
元件,因為size
的陣列具有適合在一個符號的32位整數。
無論您是在32位還是64位JVM上運行,這都適用。
我懷疑您的作業中缺少一些東西。 是否要求能夠找到所有小於2^32
素數? 如果是這種情況,他們希望您將int[]
每個int
視為32位數組。 如果我的算術是正確的,則只需要一個2^25
int的數組即可。
BitSet
是另一個不錯的選擇。
LinkedList<Integer>
是一個較差的選擇。 它使用的內存大約是相同大小的數組的8倍,並且對於長列表來說, get(int)
的性能將非常慢……假設您以明顯的方式使用它。
如果您想要某種可以有效使用盡可能多的內存(可以配置JVM來使用)的內存,則應使用int[][]
即整數數組的數組,並且int[]
實例應盡可能大使他們。
我需要使用Sieve查找從2到2 ^ 63-1的因數,並且sieve必須具有P [n] =是除以n的最小素數的信息。 我知道用篩子可以將因子分解為2 ^ 52。 但是,如何堅持內容呢?
我不確定我是否了解您。 要分解2 ^ 64范圍內的數字,您只需要質數最大為2 ^ 32 ...而不是2 ^ 52。 (2 ^ 64的平方根為2 ^ 32,並且非素數必須具有小於或等於其平方根的素數。)
聽起來您正在嘗試篩除所需的更多數字。
如果確實需要在內存中存儲那么多數據,請嘗試使用java.util.LinkedList集合。
但是,如果您需要在內存中存儲16GB數據,則算法中存在一個基本缺陷。 如果您正在談論Eratosthenes的篩網,並且您需要將所有<2 ^ 32的素數存儲在一個數組中,那么您仍然不需要大小為2 ^ 32的數組。 我建議您使用java.util.BitSet
查找素數,然后根據需要迭代並打印或將其存儲在LinkedList中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.