08/09/08 15:27:46
#include <iostream>
#include <stdexception>
double odds(double p, double q, int m, int n) {
// Aが表を m 回出すまでの確率
double a = ( double )m / p;
// Bが表を n 回出すまでの確率
double b = ( double )n / q;
// AのBに対する勝率
// ただし、AはBよりも1回分余計に振るチャンスがある
return a / b + 1 / a; }
int main(){
using namespace std;
double p( 0 ), q( 0 );
int m( 0 ), n( 0 );
cout << "入力が必要です、例えばAとBが表を出す確率:";
cin >> p, q;
if ( p =< 0.0 || q =< 0.0 || p > 1.0 || q > 1.0 ) { throw domain_error( "ちょ、おまw" ); }
cout << "おまえが入力せよ、つまりAとBが表を出す回数:";
cin >> m, n;
if ( m =< 0 || n =< 0 ) { throw domain_error( "ちょ、おまw" ); }
cout << "AのBに対する勝率は・・・" << odds( m, n ) << endl;
return false; }