Random Number Generator "Randomness" Check?
- Ngôn ngữ chính
- HTML
- Star
- 65
- Fork
- 15
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Given the following "Random Integer between range X and Y" function:
``` js
/**
* Returns a random integer between min (inclusive) and max (inclusive)
* Using Math.round() will give you a non-uniform distribution!
* from: http://stackoverflow.com/a/1527820/1148249
*/
function get_random_int(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
```
We can run the following test to confirm the randomness:
``` js
var i = 0; // counter for looping.
var results = {}; // store the results of running get_random_int
var min = 0;
var max = 9;
for(i = min; i <= max; i++) {
results[i] = 0; // initialize results to zero;
}
i = 0; // reset/reuse i counter.
var test_count = 10000000;
while(i < test_count) {
var r = get_random_int(min, max);
results[r]++; // increment the count for a given random number
i++;
}
Object.keys(results).forEach(function(k) {
results[k] = results[k].toString() + ' > ' + (results[k] / test_count * 100).toFixed(3) + ' %';
});
console.log(JSON.stringify(results, null, 2));
```
Which outputs:
``` js
{
"0": "1000900 > 10.009 %",
"1": "999727 > 9.997 %",
"2": "999742 > 9.997 %",
"3": "999268 > 9.993 %",
"4": "1000650 > 10.007 %",
"5": "998621 > 9.986 %",
"6": "1000241 > 10.002 %",
"7": "1000716 > 10.007 %",
"8": "1000151 > 10.002 %",
"9": "999984 > 10.000 %"
}
```
Which is a pretty decent distribution...
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu bằng cách tìm hàm get_random_int trong repository và chạy vòng lặp JavaScript được hiển thị trong issue với phạm vi và số lượng lần kiểm thử đã nêu. Issue không xác định tệp, vị trí kiểm thử hoặc thay đổi repository được yêu cầu; hãy làm rõ liệu cần thêm hay ghi lại tài liệu về việc kiểm tra phân phối trước khi xác định thế nào là hoàn thành.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript
- Lĩnh vực
- testing
- Loại issue
- Tính năng
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100