c++模拟抛硬币的概率

    技术2022-07-10  107

    思路:用rand函数生成的随机数来模拟硬币的正反面,在模拟抛硬币小于100次的的时候打印正反面的信息,在大于100次的时候直接就打印相关正反面出现的次数。

    #include<bits/stdc++.h> using namespace std; //使用std命名空间 typedef long long ll; bool fn() { int coin=rand()%100; //利用rand函数产生0~99中的随机数 if(coin>=0&&coin<=49) { return true; //正面的话返回true } else if(coin>=50&&coin<=99) { return false; //反面的话返回false } } int main() { cout<<"Please enter the number of analog coin tosses:"; ll n; cin>>n; ll sum_front=0,sum_back=0; for(ll i=0;i<n;i++) { bool flag=fn(); if(flag==true) { if(n<100) { cout<<" * "<<endl;; //*代表投掷的硬币为正面 } sum_front++; } else if(flag==false) { if(n<100) { cout<<" o "<<endl;; //o代表投掷的硬币为正面 } sum_back++; } } double front,back; front=(sum_front*1.0)/n; //出现正面的概率 back=(sum_back*1.0)/n; //出现反面的概率 cout<<" "<<endl; cout<<"本次一共投掷硬币"<<n<<"次"<<endl; cout<<"正面朝上的次数为"<<sum_front<<"次,正面朝上的概率为"<<front<<endl; cout<<"反面朝上的次数为"<<sum_back<<"次,反面朝上的概率为"<<back<<endl; return 0; }

    Processed: 0.027, SQL: 9