Задача - Вероятность четных случайных чисел - программирование на разных языках

Задача — Вероятность четных случайных чисел — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Вероятность четных случайных чисел
— программирование на Pascal, Си, Кумир, Basic-256, Python

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

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

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

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

Pascal

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%

Python

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 до указанного в скобках включительно.

Basic-256

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%

Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий