Tạo số lớn ngẫu nhiên

Làm sao để tạo ngẫu nhiên số lớn tầm 80 chữ số (> 2^96), và em không biết long long liệu có lưu trữ đủ hay phải dùng kiểu dữ liệu gì ?

Bạn đăng đầy đủ đề bài lên đây xem nào.

2 Likes

2^96 không đủ nhét vào long long đâu bạn.

Bạn có thể tạo ra 1 số lớn giả ngẫu nhiên, bằng cách ghép nhiều số nhỏ để tạo thành 1 số lớn.

Ví dụ, bạn muốn sinh 1 số ngẫu nhiên 80 chữ số, bạn có thể tạo ra 10 số ngẫu nhiên có 8 chữ số rồi ghép lại.

3 Likes

C# có kiểu BigInteger, trong đó có constructor nhận vào một mảng các byte đó cậu.
Cậu có thể tạo 1 mảng byte n phần tử, random từng byte một và tạo BigInteger với mảng byte đó.

Hope it helps!

3 Likes

Mình thấy bạn ấy đang cần làm 1 bài tập là người ta muốn bạn ấy tạo nên cái BigInteger đó chứ không phải là dùng thư viện có sẵn.

4 Likes

tạo ngẫu nhiên số lớn rồi để làm gì chứ chỉ để in ra thì số 80 chữ số thì làm cái string 80 ký tự rồi random '0' tới '9'cho từng ký tự (ký tự đầu 1 tới 9) là ra mà :weary:

5 Likes

vẫn còn mấy yêu cầu là tính toán với nó ạ

vậy phải viết class số lớn rồi :V Qua C# thì có sẵn BigInteger, C và C++ thì phải xài thư viện ngoài, ko được xài thì phải tự viết :V :V Chưa biết kiểu số lớn của em là gì sao chỉ cách tạo số ngẫu nhiên được :V :V

4 Likes

cảm ơn mn ạ, em dùng biginteger và tạo thành công rồi

1 Like

Mình nghĩ nếu bạn tự viết được thư viện số lớn sẽ học được nhiều hơn :smiley:

5 Likes

Khó nhất là nhân chia :slight_smile:

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?