Тир#1583

Тир (Розбір)

Ймовірність того, що друг влучить у мішень при одному пострілі, дорівнює

p = a / 100

Тоді ймовірність того, що він не влучить у мішень при одному пострілі, дорівнює

1 - p = 1 - a / 100

Оскільки всі постріли незалежні, то ймовірність того, що друг не влучить у мішень жодного разу, здійснивши пострілів, дорівнює

(1 - a / 100.0)^n

Ймовірність того, що друг влучить у мішень хоча б один раз за пострілів, дорівнює доповненню до цієї події:

1 - (1 - a / 100.0)^n

За умовою задачі суперечка має зміст, якщо ймовірність хоча б одного влучання строго менша , тобто:

1 - (1 - a / 100.0)^n < 0.5

Перетворюємо нерівність:

(1 - a / 100.0)^n > 0.5

Таким чином, потрібно знайти максимальне ціле число , для якого виконується це нерівність. Як тільки при збільшенні ймовірність промаху по всіх пострілах стає меншою або дорівнює , суперечка перестає бути вигідною.

Реалізація алгоритму

Читаємо вхідне значення ймовірності .

while (scanf("%d", &a) == 1)
{

Ймовірність промаху по мішені обчислюємо в змінній .

  miss = 1 - a / 100.0;

У змінній обчислюємо ймовірність (1 - a / 100.0)^n.

  p = miss;
  n = 0;

Шукаємо найбільше значення , для якого (1 - a / 100.0)^n > 0.5.

  while (p > 0.5)
  {
    n++;
    p *= miss;
  }

Виводимо відповідь.

  printf("%d\n", n);
}