Вычислить вероятность попадания в мишень - C (СИ)
Формулировка задачи:
Стало быть я новичок в области программирования, за помощь буду признателен.
1. Стрелок производит по мишени 5 выстрелов. Вероятность попадания в мишень при каждом выстреле 0,6.
Вычислить вероятность того, что стрелок не попадет в мишень ни разу; попадет один раз; 2 раза; 3 раза.
Вычисление вероятности m попаданий при n выстрелах оформить в виде функции. Указания: Вероятность того,
что стрелок при n выстрелах попадет m раз в мишень, равна Cm*pm*Qm-n где C = (n!)/(m!(n-m)!); P = 0.6; Q = 1 - P = 0.4
2. Написать программу отображающую последние 10 строк лог файла в терминале.
3. Написать программу обработки кольцевого списка, решающую задачу Джозефуса. Задача Джозефуса
представляет собой считалку: элементы становятся в круг, вводится некоторое число К. Необходимо, начиная с
первого, отсчитать К-й элемент списка и удалить его. Дела отсчет начинается с (К+1)-го элемента и опять
удаляется К-й элемент. Так продолжается до тех пор, пока в списке не останется один элемент. Выдать
содержимое последнего оставшегося элемента.
Решение задачи: «Вычислить вероятность попадания в мишень»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> #include <math.h> #include <assert.h> size_t fact(size_t n) { size_t result = 1; while (n > 1) { result *= n--; } return result; } double C(size_t m, size_t n) { return (double)fact(n) / (fact(m) * fact(n-m)); } double prob(size_t shots, size_t hits, double p) { assert(hits <= shots); assert(p >= 0 && p <= 1); return C(hits, shots) * (pow(p, hits) * pow(1.-p, shots-hits)); } int main() { double const p = 0.6; size_t const shots = 5; size_t const max_hits = 3; size_t hits; for (hits = 0; hits <= max_hits; ++hits) { printf("%d hits:\t%f\n", hits, prob(shots, hits, p)); } return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с математическими функциями и assert
- Определяем функцию fact, которая вычисляет факториал числа n
- Определяем функцию C, которая вычисляет сочетания из n по m
- Определяем функцию prob, которая вычисляет вероятность попадания в мишень
- В функции main задаем константы для проверки
- С помощью цикла for выводим вероятность попадания от 0 до 3 раз в мишень
- Возвращаем EXIT_SUCCESS
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д