Теория вероятностей
Сегодня с коллегой обсуждали интересный факт из теории вероятностей про выбор наибольшего числа.
Задача чем-то напоминает задачу о двух конвертах
Я даже написал симулятор на kotlin:
package ru.yamakarov
import org.apache.commons.math3.distribution.UniformRealDistribution
fun main(args: Array<String>) {
var s = 0.0
var i = 0
val n = 10000
val random = UniformRealDistribution(
- Double.MAX_VALUE,
Double.MAX_VALUE)
while (i < n) {
i++
val a = random.sample()
val b = random.sample()
val t = random.sample()
val r = if (a > t) a else b
s += if (r == Math.max(a, b)) 1 else 0
}
println(s / n)
}
Оказалось, что выбирать при выборе t случайным образом вероятность где-то 0.67, а если брать середину интервала то получается 0.75
И тут я не понял как моделировать бесконечные числа на компьютере. Вероятность выбрать число среди бесконечного числа возможностей равна 0, а среди конечного пусть маленькая, но отличная от ноля. И стратегия с 0 на бесконечном интервале не должна работать, однако я не нашел способа это проверить.