C語言之基本演算法28—硬幣拋投(隨機數)

來源:互聯網
上載者:User

標籤:c語言   隨機數   拋投硬幣   

//硬幣拋投(隨機數)
/*
=====================================================================
題目:拋投兩枚硬幣,試分析共有幾種情況,機率分別為多少?
=====================================================================
*/


#include<stdio.h>
#include<iomanip>
#include<ctime>
main()
{
int a,b,c,n,x,y;a=0;b=0;c=0;
srand(time(0));//這個必須有,否則無法產生隨機數!
for(n=0;n<100;n++)
{
x=rand()%(2-0)+0;//產生0,1兩種結果,表示一正一反,所以在[0,2)內產生隨機數,即2=2-0+0,在[a,b)內產生隨機數:rand()%(b-a)+a,此處a=0,b=2;
y=rand()%(2-0)+0;
printf("%3d:  %d,%d      ",n+1,x,y);
if((n+1)%5==0)printf("\n");
if(x+y==0)
a++;
else if(x+y==1)
b++;
else
c++;
}
printf("兩個正面:%d,一正一反:%d,兩個反面:%d\n",a,b,c);
}


/*
====================================================================
評:

首先要知道這是C語言和C++的組合,其實他們是一種語言。必須用到<ctime>和<iomanip>

函數(如果不知道,那麼背會記住就可以)。考點是投擲兩個硬幣可能產生三種結果:1、兩

正,2、兩反,3、一正一反,分別用0,1,2表示,這就分析出兩個要素需要產生三種結果,自

然是0+0=0;0+1=1;1+1=2;所以要隨機產生0,1兩個要素。即在[0,2)產生隨機數或等價於

[0,1]的隨機數!

=====================================================================
*/






著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

C語言之基本演算法28—硬幣拋投(隨機數)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.