产生0, 1的概率可以根据设置调整的程序:
#include <stdio.h>
#include <stdlib.h>
int EqualProbability() {
if (rand() % 2 == 0) {
return 0;
} else {
return 1;
}
}
int BiasProbability(int parameter) {
int size = parameter + 1;
if (rand() % size == 0) {
return 0;
} else {
return 1;
}
}
int main(int argc, char** argv) {
int zero_counter = 0;
int one_counter = 0;
const int kGenerateTime = 1000000;
for (int i = 0; i < kGenerateTime; ++i) {
if (EqualProbability() == 0) {
zero_counter++;
} else {
one_counter++;
}
}
printf("zero:%d one:%d\n", zero_counter, one_counter);
zero_counter = 0;
one_counter = 0;
for (int i = 0; i < kGenerateTime; ++i) {
if (BiasProbability(10) == 0) {
zero_counter++;
} else {
one_counter++;
}