/
Pereroncino
/
Proga
Обзор
Документация
Войти
/
Pereroncino
/
Proga
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
lab6(2).cpp
63 строки
2 KB
Pereroncino
update: lab6(2).cpp
05 май 2026, 10:13
Верифицирован
05 май 2026, 10:13
e2c1b75
Код
Авторство
О чём код?
#include <stdio.h> #include <stdlib.h> #include <math.h> long long factorial(int n) { if (n < 0) return -1; if (n == 0 || n == 1) return 1; long long result = 1; for (int i = 2; i <= n; i++) { result *= i; } return result; } double combinations(int n, int m) { long long fact_n = factorial(n); long long fact_m = factorial(m); long long fact_nm = factorial(n - m); if (fact_n == -1 || fact_m == -1 || fact_nm == -1) return -1.0; return (double)fact_n / (fact_m * fact_nm); } int calculate_probabilities(int n, int m, double p, double &p_girls, double &p_boys) { if (n < 0 || m < 0 || m > n || p < 0 || p > 1) { return 0; } double q = 1.0 - p; double cnm = combinations(n, m); if (cnm < 0) { return 0; } p_girls = cnm * pow(p, m) * pow(q, n - m); p_boys = cnm * pow(q, m) * pow(p, n - m); return 1; } int main() { int n, m; double p = 0.45; double girls_prob = 0.0, boys_prob = 0.0; system("clear"); printf("n = "); if (scanf("%d", &n) != 1) return 1; printf("m = "); if (scanf("%d", &m) != 1) return 1; if (calculate_probabilities(n, m, p, girls_prob, boys_prob)) { printf("\nВероятность рождения %d девочек: %.6f\n", m, girls_prob); printf("Вероятность рождения %d мальчиков: %.6f\n", m, boys_prob); } else { printf("\nОшибка: Некорректные входные данные.\n"); } while (getchar() != '\n'); return 0; }