c++ 计算*中奖概率

操作方法:

输入两个数字,第一个数字是备选总数,第二个数字是选择总数,然后返回中将概率。

可以投注多次,结束的时候返回总的中将概率。

#include <iostream>
using namespace std;

long double probability(unsigned numbers, unsigned picks);

int main() {
	double total, choices, totalProbability=1, v_probability;
	cout << "Enter the total number of choices on the game card and
"
		"the number of picks allowed:
";
	while ((cin >> total >> choices) && choices <= total) {
		v_probability = probability(total, choices);
		cout << "Your chance " << v_probability << " of winning.
";
		totalProbability *= v_probability;
		cout << "Next two numbers (q to quit): ";
	}
	cout << "Your total chance " << totalProbability << " of winning.
";
	cout << "bye
";
	return 0;
}

long double probability(unsigned numbers, unsigned picks) {
	long double result = 1.0;
	long double n;
	unsigned p;

	for (n = numbers, p = picks; p > 0; n--, p--)
		result = result * n / p;
	return result;
}

  

原文地址:https://www.cnblogs.com/ranwuer/p/9720483.html