Tốc độ xử lý hàm rand
Excel cho Microsoft 365 Excel cho Microsoft 365 dành cho máy Mac Excel cho web Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2019 for Mac Excel 2016 Excel 2016 for Mac Excel 2013 Excel 2010 Excel 2007 Excel for Mac 2011 Excel Starter 2010 Xem thêm...Ít hơn Bài viết này mô tả cú pháp công thức và cách dùng hàm RAND trong Microsoft Excel. Mô tảHàm RAND trả về một số thực ngẫu nhiên được phân bố đều, lớn hơn hoặc bằng 0 và nhỏ hơn 1. Một số thực ngẫu nhiên mới được trả về mỗi khi trang tính được tính toán. Cú phápRAND() Cú pháp hàm RAND không có đối số nào. Chú thích
=RAND()*(b-a)+a
Ví dụSao chép dữ liệu của ví dụ trong bảng sau đây và dán vào ô A1 của một trang tính Excel mới. Để công thức hiển thị kết quả, hãy chọn công thức, nhấn F2 rồi nhấn Enter. Bạn có thể điều chỉnh độ rộng cột để xem tất cả dữ liệu, nếu cần.
Bạn cần thêm trợ giúp?Bạn luôn có thể hỏi một chuyên gia trong Cộng đồng Kỹ thuật Excel hoặc nhận sự hỗ trợ trongCộng đồng trả lời. Xem thêmGiải thuật Mersenne Twister RANDBETWEEN (Hàm RANDBETWEEN) Cần thêm trợ giúp?
MÌnh lấy tạm 1 VD như sau:
MÌnh lấy tạm 1 VD như sau: Mình cao có 1,65 mét hè, hổng phải cao nhân, bạn thử cái này xem sao
Mình cao có 1,65 mét hè, hổng phải cao nhân, bạn thử cái này xem sao Nếu ko phải là 2 cột mà tổng của 4 cột thì mình chỉ cần thêm : Lần chỉnh sửa cuối: 2/4/10
Mình không hiểu về hàm Rand lắm. Bạn có thể cho mình biết ý nghĩa của nó được không. Hàm rand() trả về giá trị là một số thực ngẫu nhiên tứ 0 đến 1, trong đề bài muốn xuất hiện số ngẫu nhiên từ 0 đến 168 nên trong công thức mình chỉ
lấy phần nguyên của số thực ngẫu nhiên từ 0 đến 1 * 168
Con cò già có nhận thấy rằng tổng của 2 cột đạt yêu cầu không vượt quá 168, nhưng không bao giờ đạt đúng 168 không? Bên công thức thôi, bên VBA thì đúng. Lần chỉnh sửa cuối: 2/4/10
Hàm rand() trả về giá trị là một số thực ngẫu nhiên tứ 0 đến 1, trong đề bài muốn xuất hiện số ngẫu nhiên từ 0 đến 168 nên trong công thức mình chỉ lấy phần nguyên của số thực ngẫu nhiên từ 0 đến 1 * 168 Có chút sai lầm anh à! Vì vậy, nếu anh muốn tạo số ngẫu nhiên từ 0 đến 168 thì công thức phải là: : Để tạo số nguyên ngẫu nhiên từ a đến b (a < b) thì công thức sẽ là:
Có chút sai lầm anh à! Vì vậy, nếu anh muốn tạo số ngẫu nhiên từ 0 đến 168 thì công thức phải là: : Để tạo số nguyên ngẫu nhiên từ a
đến b (a < b) thì công thức sẽ là: Cám ơn 2 Thầy Ptm và Ndu, mình sử dụng từ chưa chuẩn, đúng ra phải nói là : kết quả trả về là số ngẫu nhiên nằm ở khoảng giữa 0 và 1
Thanks các bác.Mình làm tổng của 4 cột rồi dựa trên hàm =thu của bác concogia .Nhưng mà cột tổng thì phải đến trên 90% là ra gần 168(toàn 16x với 15x) Như thế chưa ngẫu nhiên cho lắm.Các bác xem có cách nào xử lý cái này không nhỉ
cột tổng thì phải đến trên 90% là ra gần 168 phải đến 90% là bạn muốn trên 90%, hay bạn muốn rải đều từ 1x đến 15x? nghía qua cái hàm RandBetween 1 cái nữa nha. Còn muốn 100% có tổng 168 thì dễ òm à.
Cột cuối lấy 168 trừ mấy số kia cộng lại, 1 phát ra ngay. Random 2 l_n.rar 15.2 KB · Đọc: 64 Lần chỉnh sửa cuối: 3/4/10
phải đến 90% là bạn muốn trên 90%, hay bạn muốn rải đều từ 1x đến 15x? nghía qua cái hàm RandBetween 1 cái nữa nha. Còn muốn 100% có tổng 168 thì dễ òm à. Cột cuối lấy 168 trừ mấy số kia cộng lại, 1 phát ra ngay. Thanks bác mình muốn nó rải đều từ 1x đến 168 .Đang nghiên cứu cái file của bác .Phần RandBetween bị lỗi bác ah.Còn phân kia mình nhận thấy Tổng càng thấp đi thì số người càng ít.VD :150-168 :20 141-150:18 131-140:16 ................ thế là sao bác nhỉ Lần chỉnh sửa cuối: 3/4/10
.Phần RandBetween bị lỗi bác ah Bạn vào menu Tools\Add-Ins và check vào mục Analysis ToolPak thì mới xài được hàm RANDBETWEEN
Còn phân kia mình nhận thấy Tổng càng thấp đi thì số người càng ít. Thống kê 100 người thì hơi ít để có thể kết luận. K2=INT(RAND()^5*(169-SUM($J2:J2))) Fill Right to N2, then Fill Down See attached file.
Lần chỉnh sửa cuối: 3/4/10
Thống kê 100 người thì hơi ít để có thể kết luận.
View attachment 43904 K2=INT(RAND()^5*(169-SUM($J2:J2))) Fill Right to N2, then Fill Down See attached file. Vẫn có cảm giác cột đầu tiên được ưu tiên hơn sư phụ à!
Em đề xuất code này, bảo đảm mức ưu tiên sẽ chia đều cho các cell (trong 1 hàng) PHP:
Vẫn có cảm giác cột đầu tiên được ưu tiên hơn sư phụ à! Công thức Rand()^5 nhằm giải quyết việc anh Bill ưu tiên các số tổng lớn hơn 150 mà ndu! Nghĩa là với 4 cột thì xác suất cả 4 số đều nhỏ (để cho tổng số nhỏ) là rất thấp so với xác suất để cho cả 4 ô đều lớn (để cho tổng số lớn). Nghĩa là
trong trường hợp này phân bố ngẫu nhiên không đồng đều. Còn biện pháp của ndu là nhằm cải thiện việc phân bố theo cột: Hiển nhiên là cột nào tính trước sẽ ưu tiên hơn nhưng không thoát ra ngoài cái "phân bố ngẫu nhiên không đồng đều" nói trên. Để xét sự phân bố theo khoảng từ 0 đến 1 của Rand(), anh đã có cột count() để kiểm tra. Kết quả: Vậy kết hợp 2 cách, dùng VBA của ndu, chỉ thêm đúng 2 ký tự "^5" vào, sẽ thấy sự khác biệt. Lạ 1 điều là VBA chạy chậm hơn công
thức. Xem trong file, với các ô kiểm tra ở sheet "2 cách" sẽ so sánh được hơn và kém trong việc giải quyết 2 vấn đề, mỗi cách chỉ giải quyết 1. Sheet "1 cách kết hợp" là gần như tối ưu. CreateRandomNum2.rar 24.9 KB · Đọc: 23 Lần chỉnh sửa cuối: 4/4/10
Lạ 1 điều là VBA chạy chậm hơn công thức. Sheet "1 cách kết hợp" là gần như tối ưu. Gán giá trị cho từng cell, đương
nhiên tốc độ sẽ chậm PHP: Nó sẽ chạy... như điên
cho em hỏi thêm về vấn đề này: Rand-weight.xlsx 10.4 KB · Đọc: 2 |