Вероятность четных случайных чисел

Проверить корректность работы генератора псевдослучайных чисел языка программирования с помощью оценки вероятности выпадения четных чисел на выборке не меньше 1000 случайных чисел.

Встроенный в язык программирования генератор псевдослучайных чисел должен генерировать разные числа в заданном диапазоне с равной вероятностью. Это значит, что, например, количество четных и нечетных чисел должно быть примерно одинаковым (при условии, что диапазон задан так, что в нем количество четных и нечетных одинаково). Чем больше выборка, тем точнее результат исследования.

  1. Создадим счетчик четных случайных чисел и присвоим ему значение 0.
  2. Сгенерируем 1000 случайных чисел (например, от 0 до 99) и проверим каждое из них на четность. Четным является то число, при делении которого на 2 остаток равен 0. Если очередное число четное, то будем увеличивать счетчик на 1.
  3. Вероятность выпадения четных чисел оценим в процентах. Для этого количество четных чисел разделим на общее количество сгенерированных (в данном случае 1000) и умножим на 100.

Программа должна выдать около 50%. Можно увеличить число генераций, например до 10 тысяч. В таком случае отклонение от 50% будет меньше.

const N = 1000;
var i,q: integer;
begin
    randomize;
    q := 0;
    for i:=1 to N do
        if random(100) mod 2 = 0 then
            q := q + 1;
    writeln(q / N * 100:4:2,'%');
end.
48.80%
#include <stdio.h>
#define N 1000
main() {
    int i,q;
    q = 0;
    srand(time(NULL));
    for (i=0; i<N; i++)
        if (rand()%100 % 2 == 0)
            q += 1;
    printf("%.2f%%\n", (float)q/N * 100);
}
51.10%
from random import random
N = 1000
q = 0
for i in range(N):
    if int(random()*100) % 2 == 0:
        q += 1
print("%.2f%%" % (q / N * 100))
49.90%
алг
нач
  цел N = 1000
  цел i,q
  q := 0
  нц для i от 1 до N
    если mod(irnd(100),2) = 0 то
      q := q + 1
    все
  кц
  вывод q / N * 100, "%"
кон
50.5%

Функция irnd() генерирует целое число от 1 до указанного в скобках включительно.

N = 1000
q = 0
for i=0 to N
        if int(rand*100) % 2 = 0 then
                q = q + 1
        endif
next i
print (q/N * 100) + "%"
48.3%