BigInteger trong java

***********************************************************************

                                                                    Các mã lệnh và thuật toán

1.Hàm sinh 1 số nguyên lớn ngẫu nhiên 

 SecureRandom r = new SecureRandom();

2. Các phép toán trong BigInteger

Phép cộng:

BigInteger a = new BigInteger();
BigInteger b = new BigInteger();
BigInteger add = new BigInteger();
add=a.add(b);

Phép trừ:

BigInteger a = new BigInteger();
BigInteger b = new BigInteger();
BigInteger sub = new BigInteger();
sub=a.subtract(b);

Phép nhân:

BigInteger a = new BigInteger();
 BigInteger b = new BigInteger();
BigInteger mul= new BigInteger();
mul=a.multiply(b);

Phép chia:


BigInteger a = new BigInteger();
BigInteger b = new BigInteger();
BigInteger div= new BigInteger(); div=a.division(b);

3. Hàm khởi tạo số nguyên lớn từ một chuỗi

BigInteger(string s, int radix);

Với s là chuỗi số nguyên lớn và radix là hệ cơ số (chẳng hạn 10 => hệ thập phân).

Ví dụ:

BigInteger k = new BigInteger(“123456”, 10); //k=123456

4. Hàm sinh ngẫu nhiên một số nguyên tố lớn

static BigInteger genPseudoPrime(int bits, int confidence, Random rand);

Sinh ngẫu nhiên một số nguyên tố lớn có số bit là bits, độ tin cậy của thuật toán xác suất kiểm tra số nguyên tố Rabin Miller là confidence và độ ngẫu nhiên là rand.
// Ví dụ: sinh ngẫu nhiên số nguyên tố dài 512 bit, độ tin cậy là 50.

BigInteger p = BigInteger.genPseudoPrime(512, 50, new Random());

5. Hàm tính ước số chung lớn nhất

public BigInteger GCD(BigInteger bi)
	// Tính ước số chung lớn nhất của hai số nguyên k và phi
	k.GCD(phi); 

6. Hàm tính phần tử ngược

public BigInteger modInverse(BigInteger modulus)
	// Tìm d là phần tử ngược của e trên vành số nguyên phi
	d = e.modInverse(phi); 

5. Hàm tính am mod n

public BigInteger modPow(BigInteger exp, BigInteger n)

// Tìm m = m^e mod n
Ví dụ: m = m.modPow(e, n);

Một suy nghĩ 8 thoughts on “BigInteger trong java

Bình luận về bài viết này

Trang web này sử dụng Akismet để lọc thư rác. Tìm hiểu cách xử lý bình luận của bạn.