128 bit UUID dizesi oluşturmak için bir yöntem oluşturdum, şimdi bir asal sayı olup olmadığını kontrol etmek istiyorum. Dizeyi bir int'ye koyamıyorum çünkü çok büyük. Kontrol etmek için nasıl gideceğimi öneren var mı? Daha sonra eğerUUID Dizesi Başlangıcı olup olmadığını kontrol etme
http://www.tutorialspoint.com/java/math/biginteger_isprobableprime.htm
yüksek bir kesinlik parametresi geçerseniz (örneğin 100):
Bu
ben UUIDpublic static String uuid()
{
UUID uuid = UUID.randomUUID();
long hi = uuid.getMostSignificantBits();
long lo = uuid.getLeastSignificantBits();
byte[] bytes = ByteBuffer.allocate(16).putLong(hi).putLong(lo).array();
BigInteger big = new BigInteger(bytes);
String numericUuid = big.toString().replace('-','1'); // just in case
//System.out.println(numericUuid);
return(numericUuid);
}
uzun num = big.longValue (); Üzerinde bazı hesaplamalar yapmak istiyorsanız. – SpaceCowboy
Bu garip bir soru. İlkellik için bir "BigInteger" testi [süper kolay], (http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html#isProbablePrime-int-) ama neden umurunda olabilir UUID temel ise? Ben bilmek ölüyorum. – erickson
Uzun süre değiştirdim ama artık 128 bit görünmüyor, bunu düzeltmek için bir öneride bulunabilir misiniz? @ durron597 bir kopya yapmak istemedi ama sanırım sorum farklı – Hayes121