Суббота
27-04-2024
22:44
Главная страница
Каталог статей
Информист Приветствую Вас Гость | RSS
Регистрация
Вход
Меню сайта

Категории каталога
Без категории [60]
Статьи требующие создания отдельной категории

Наш опрос
Что Вы веберете
Всего ответов: 230

Копилка
Если вам понравился наш сайт или вы нашли полезную информацию, то у вас есть возможность отблагодарить администрацию.

Начало » Статьи » Статьи » Без категории

Задача о двух конвертах

Если предположить, что сумма в меньшем конверте равномерно распределена между 10 руб. и 100 руб., то про сумму в случайно вытянутом конверте очевидно следующее:

  • Если выпало менее 20 руб., то в другом конверте определённо вдвое больше. Поэтому требуется брать другой конверт.
  • Если выпало более 100 руб., то в другом конверте определённо вдвое меньшая сумма — ни в коем случае не брать другой конверт.
  • Если выпало от 20 до 100 руб., в другом может быть как вдвое большая (с вероятностью 2/3), так и вдвое меньшая сумма (с вероятностью 1/3)

Код программы:


package simulator;

import java.util.LinkedList;
import java.util.List;
import java.util.Random;

public class TwoEnvelopes200100 {

    public static void main(String[] args) {
        Random rand = new Random(System.nanoTime());
        List list = new LinkedList();
        int max = 1000000;

        int x1 = 0;
        int x2 = 0;
        int x3 = 0;

        int y1 = 0;
        int y2 = 0;
        int y3 = 0;

        for (int i = 0; i < max; i++) {
            int x = rand.nextInt(90) + 10;
            int y = x * 2;
            list.add(x);
            list.add(y);
            int n = rand.nextInt(2);

            int summa1 = list.remove(n);
            int summa2 = list.remove(list.size() - 1);
            if (summa1 < 20) {
                x1++;
                if (summa2 > summa1) {
                    y1++;
                }
            } else if (summa1 > 100) {
                x2++;
                if (summa2 > summa1) {
                    y2++;
                }
            } else {
                x3++;
                if (summa2 > summa1) {
                    y3++;
                }
            }
        }

        float z1 = ((float) y1) / ((float) x1) * 100;
        float z2 = ((float) y2) / ((float) x2) * 100;
        float z3 = ((float) y3) / ((float) x3) * 100;

        System.out.println("Вероятность того, "
                + "что во втором конверте сумма больше, " +
                "если в выбранном:");

        System.out.println("Меньше 20: " + z1 + "%");
        System.out.println("Больше 100: " + z2 + "%");
        System.out.println("Между 20-100: " + z3 + "%");
    }
}

Результат работы программы:


Вероятность того, что во втором конверте сумма больше, если в выбранном:
Меньше 20: 100.0%
Больше 100: 0.0%
Между 20-100: 66.07642%
Категория: Без категории | Добавил: Judge (02-05-2010) | Автор: AlexJudge
Просмотров: 1220 | Рейтинг: 5.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск по каталогу
Яндекс


Поиск по Информисту

Наша кнопка


Друзья сайта

Статистика


Copyright MyCorp © 2006Сайт создан в системе uCoz