標題:
亂數的使用-與應用
[打印本頁]
作者:
buy
時間:
2010-10-23 08:47
標題:
亂數的使用-與應用
需include stdlib.h
數值=rand();
例:
取1-10的亂數 a=(rand()%10)+1;
取1-100的亂數 a=(rand()%100)+1;
取100-1000的亂數 a=(rand()%901)+100;
由上幾例可以歸納出來
要取 a~b 的亂數可以這麼寫:
(rand()%(b-a+1))+a
如果單用 rand 取亂數會發現取多次後會出現相同的亂數
這個時候就可以用其他技巧來幫忙
利用 srand() (定義在 stdlib.h)
用 srand 取亂數需要一個參數作為種子以產生新的亂數序列
而這個參數通常使用目前的時間傳入,這時候就需要用 time() (include <time.h>)
來幫忙。
利用 srand() (定義在 stdlib.h)
用 srand 取亂數需要一個參數作為種子以產生新的亂數序列
而這個參數通常使用目前的時間傳入,這時候就需要用 time() (include <time.h>)
來幫忙。
使用方法
在使用 rand 的前一行加上
srand(time(NULL));
ex:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
int a;
srand(time(NULL));
a=(rand()%100)+1;
printf("The Random Number is %d .n", a);
}
05/10/24 修正 感謝kobe這位朋友
複製代碼
作者:
Alen
時間:
2010-10-23 11:05
#include <iostream>
#include <cstdlib>
using namespace std;
int main(void)
{
while (true){
int computer; //電腦出的拳
int user; //玩家出的拳
int tryagain;
srand(time(NULL)); //亂數種子
computer =1+rand()%((3-1)+1); //亂數種子來決定電腦出什麼
cout<<"請輸入要出的拳 1 = 剪刀 2 =石頭 3 = 布 4 = 不知道 5 = 隨機"<<endl;
cin>>user;
cout<<"您輸入的是:"<<user<<endl;
if(user== 5)
user=1+rand()%((3-1)+1); //亂數種子來決定玩家出什麼
if(computer == user)
{ //平手
switch(computer)
{ //平手三種情況
case 1: //剪刀
cout<<"您出:剪刀,電腦出:剪刀"<<endl ;
cout<<"平手"<<endl;
break;
case 2: //石頭
cout<<"您出:石頭,電腦出:石頭"<<endl ;
cout<<"平手"<<endl;
break;
case 3: //布
cout<<"您出:布,電腦出:布"<<endl ;
cout<<"平手"<<endl;
break;
}
}
if(computer == 1)
{ //電腦出剪刀
if(user == 2) //玩家出石頭
{
cout<<"您出:石頭,電腦出:剪刀"<<endl;
cout<<"您贏了!!"<<endl;
}
else if(user == 3) //玩家出布
{
cout<<"您出:布,電腦出:剪刀"<<endl;
cout<<"您輸了!!"<<endl;
}
}
if(computer == 2)
{ //電腦出石頭
if(user == 3) //玩家出布
{
cout<<"您出:布,電腦出:石頭"<<endl;
cout<<"您贏了!!"<<endl;
}
else if(user == 1) //玩家出剪刀
{
cout<<"您出:剪刀,電腦出:石頭"<<endl;
cout<<"您輸了!!"<<endl;
}
}
if(computer == 3)
{ //電腦出布
if(user == 1) //玩家出剪刀
{
cout<<"您出:剪刀,電腦出:布"<<endl;
cout<<"您贏了!!"<<endl;
}
else if(user == 2) //玩家出石頭
{
cout<<"您出:石頭,電腦出:布"<<endl;
cout<<"您輸了!!"<<endl;
}
}
if(user == 4)
{
cout<<"你呆啊!會不會出啊!!來真的啦!!"<<endl;
} }
system("pause");
return 0;
}
複製代碼
嗶嗶嗶嗶嗶嗶嗶 搖勒搖勒搖勒搖
嗶嗶嗶嗶嗶嗶嗶 搖勒搖勒搖勒搖
嗶嗶嗶嗶嗶嗶嗶 搖勒搖勒搖勒搖
作者:
chuangjoy
時間:
2010-10-23 11:08
#include <iostream>
using namespace std;
int main(){
int a;
int com = rand()%3;
int user = 0;
cout << "請輸入(0=剪刀 1=石頭 2=布)" << endl;
while (cin >> user){
com = rand()%3;
if(user == 0){ //user 出剪刀
if(com == 0){
cout << "你出剪刀 電腦出剪刀 平手" << endl; //com 出剪刀
}else if(com == 1){
cout << "你出剪刀 電腦出石頭 你輸了" << endl; //com 出石頭
}else if(com == 2){
cout << "你出剪刀 電腦出布 你贏了" << endl; //com 出布
}
}else if(user == 1){ //user 出石頭
if(com == 0){
cout << "你出石頭 電腦出剪刀 你贏了" << endl; //com 出剪刀
}else if(com == 1){
cout << "你出石頭 電腦出石頭 平手" << endl; //com 出石頭
}else if(com == 2){
cout << "你出石頭 電腦出布 你輸了" << endl; //com 出布
}
}else if(user == 2){ //user 出布
if(com == 0){
cout << "你出布 電腦出剪刀 你輸了" << endl; //com 出剪刀
}else if(com == 1){
cout << "你出布 電腦出石頭 你贏了" << endl; //com 出石頭
}else if(com == 2){
cout << "你出布 電腦出布 平手" << endl; //com 出布
}
}
}
system("pause");
return 0;
}
複製代碼
作者:
b1081081
時間:
2010-10-23 11:08
#include <iostream>
#include <cstdlib>
using namespace std;
int main(void){
srand(time(NULL));
int c = rand()%3;
string x[3] = {"剪刀","石頭","布"};
int user = 0;
cout << "輸入(0=剪刀 1=石頭 2=布)" << endl;
cin >> user;
if(user == c){
cout << "您出:" << x[user] << ",電腦出:" << x[c] << endl;
cout << "平手!\n";
}else if(user > c || (user == 0 && c == 2)){
cout << "您出:" << x[user] << ",電腦出:" << x[c] << endl;
cout << "您贏了!\n";
}else if(user < c || (user == 2 && c == 0)){
cout << "您出:" << x[user] << ",電腦出:" << x[c] << endl;
cout << "您輸了!\n";
}
system("pause");
return 0;
}
作者:
p17johnny
時間:
2010-10-23 11:10
#include <iostream>
#include <cstdlib>
using namespace std;
int main(void)
{
while (true){
int computer;
int user;
int tryagain;
srand(time(NULL));
computer =1+rand()%((3-1)+1);
cout<<"請輸入要出的拳 1 = 剪刀 2 =石頭 3 = 布 4 = 不知道 5 = 隨機"<<endl;
cin>>user;
cout<<"您輸入的是:"<<user<<endl;
if(user== 5)
user=1+rand()%((3-1)+1);
if(computer == user)
{
switch(computer)
{
case 1:
cout<<"您出:剪刀,電腦出:剪刀"<<endl ;
cout<<"平手"<<endl;
break;
case 2:
cout<<"您出:石頭,電腦出:石頭"<<endl ;
cout<<"平手"<<endl;
break;
case 3:
cout<<"您出:布,電腦出:布"<<endl ;
cout<<"平手"<<endl;
break;
}
}
if(computer == 1)
{
if(user == 2)
{
cout<<"您出:石頭,電腦出:剪刀"<<endl;
cout<<"您贏了!!"<<endl;
}
else if(user == 3) /
{
cout<<"您出:布,電腦出:剪刀"<<endl;
cout<<"您輸了!!"<<endl;
}
}
if(computer == 2){
if(user == 3){
cout<<"您出:布,電腦出:石頭"<<endl;
cout<<"您贏了!!"<<endl;
}
else if(user == 1){
cout<<"您出:剪刀,電腦出:石頭"<<endl;
cout<<"您輸了!!"<<endl;
}
}
if(computer == 3){
if(user == 1){
cout<<"您出:剪刀,電腦出:布"<<endl;
cout<<"您贏了!!"<<endl;
}
else if(user == 2){
cout<<"您出:石頭,電腦出:布"<<endl;
cout<<"您輸了!!"<<endl;
}
}
if(user == 4)
{
cout<<"??您出啥"<<endl;
} }
system("pause");
return 0;
}
複製代碼
哎呀壓
作者:
buy
時間:
2010-10-23 11:14
大家都寫的很好喔,品詰的方法很棒!明輝加油快點寫出來~
作者:
abc3806198
時間:
2010-10-23 11:16
回復
1#
buy
#include <iostream>
#include <cstdlib>
using namespace std;
int main(void)
{
while (true){
int com;
int user;
int tryagain;
srand(time(NULL));
com =1+rand()%((3-1)+1);
cout<<"請輸入要出的拳 1 = 剪刀 2 =石頭 3 = 布"<<endl;
cin>>user;
cout<<"你是:"<<user<<endl;
if(com == user)
{
switch(com)
{
case 1:
cout<<"你出:剪刀,電腦出:剪刀"<<endl ;
cout<<"平手"<<endl;
break;
case 2:
cout<<"你出:石頭,電腦出:石頭"<<endl ;
cout<<"平手"<<endl;
break;
case 3:
cout<<"你出:布,電腦出:布"<<endl ;
cout<<"平手"<<endl;
break;
}
}
if(com == 1)
{
if(user == 2)
{
cout<<"你出:石頭,電腦出:剪刀"<<endl;
cout<<"你贏了!!"<<endl;
}
else if(user == 3)
{
cout<<"你出:布,電腦出:剪刀"<<endl;
cout<<"你輸了!!"<<endl;
}
}
if(com == 2)
{
if(user == 3)
{
cout<<"你出:布,電腦出:石頭"<<endl;
cout<<"你贏了!!"<<endl;
}
else if(user == 1)
{
cout<<"你出:剪刀,電腦出:石頭"<<endl;
cout<<"你輸了!!"<<endl;
}
}
if(com == 3)
{
if(user == 1)
{
cout<<"你出:剪刀,電腦出:布"<<endl;
cout<<"你贏了!!"<<endl;
}
else if(user == 2)
{
cout<<"你出:石頭,電腦出:布"<<endl;
cout<<"你輸了!!"<<endl;
}
}
}
system("pause");
return 0;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2