|
bianka |
|
|
|
Как можно реализовать датчик случайных чисел, которое принимает значение 0 и 1 с вероятностью p и (1-p) на языке программирования Turbo Pascal?
|
|
|
|
 |
|
faruk |
|
|
|
Всё, что от 0 до p, отправлять в 0. Всё, что от p до 1, отправлять в 1.
|
|
|
|
 |
|
bianka |
|
|
|
Не понимаю. И как это написать на языке Turbo Pascal?
|
|
|
|
 |
|
ИСН |
|
|
|
Как вообще работает паскалевский random, знаете? Что он выдаёт?
|
|
|
|
 |
|
bianka |
|
|
|
Не очень. Знаю, что команда Random(2) записывает 0 и 1, но не знаю как записать вероятности.
|
|
|
|
 |
|
ИСН |
|
|
|
Это нам не поможет. (Вероятности записать очень просто: 1/2 и 1/2.) Нужна другая команда. С похожим названием, но другая.
|
|
|
|
 |
|
bianka |
|
|
|
И если вероятность появления 1 например равна 1/3 и вероятность появления 0 ровная 2/3? Яка другая команда?
|
|
|
|
 |
|
yk2ru |
|
|
|
Вам нужен рандом, который промежуточные результаты выдаёт, а не только крайние 0 и 1. Что до р выдаётся, сами отправляйте в качестве результата 0, а остальное даст результат 1.
|
|
|
|
 |
|
ИСН |
|
|
|
Другая команда - просто random, ни от чего (без скобочек). Посмотрите в хелпах.
|
|
|
|
 |
|
PAV |
|
|
|
i |
Перемещено в раздел Программирование. Не дублируйте темы |
|
|
|
|
 |
|
yk2ru |
|
|
|
функция майрандом: инт начало а = рандом; если а < р то результат = 0 иначе результат = 1 конец
|
|
|
|
 |
|
bianka |
|
|
|
Спасиба, так уже работает. Можете объяснить как это процедура работает?
|
|
|
|
 |
|
yk2ru |
|
|
|
Наверное нужно обратиться к специалистам из Борланд, Микрософт и Интел, заодно и к яблочникам (Эйпл). Вот как же они добились, что записанные словами процедуры прекрасно работают на железных компьютерах?
В мешке 20 зелёных шариков и 80 жёлтых. С какой вероятностью вы вытащите из мешка не глядя зелёный шар, и с какой - жёлтый?
|
|
|
|
 |
|
dmivaler |
|
|
|
Вероятности будут соответственно 0,2 и 0,8
|
|
|
|
 |