廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 7668 個閱讀者
 
<<   1   2  下頁 >>(共 2 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
karen7710
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x9
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][求助] 投擲兩個骰子100次,計算2~12點出現的機率
題目:
投擲兩個骰子100次,計算2~12點出現的機率

而以下的程式是計算1~12點出現的機率~
要算2~12點的機率該怎麼改呢?

#include <stdlib.h>
#include <time. ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



獻花 x0 回到頂端 [樓 主] From:歐洲 | Posted:2007-05-26 18:39 |
blueshiang
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

= =
這程式真的是妳寫的嗎????

他把每一次 隨機出現的數字
對應在dice[0~11] 這陣列中 在 累加

那你想 你要2~12 的顯示次數
你要如何改呢????


獻花 x0 回到頂端 [1 樓] From:臺灣新世紀資通股份有限公司 | Posted:2007-05-27 17:31 |
karen7710
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x9
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

那是我參考課本打的!
所以你的意思是在dice[point-1]++;
這個地方做修改囉?


獻花 x0 回到頂端 [2 樓] From:歐洲 | Posted:2007-05-27 17:39 |
GNUGCC
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x11
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

程式的邏輯沒有錯, 如果改 2~12 只要改 point=rand()%12+2;
讓程式都只會在 dice[1] 的位置開始計數


獻花 x0 回到頂端 [3 樓] From:臺灣 | Posted:2007-05-27 22:16 |
blueshiang
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

喔喔 樓上的想法才是對的

忘記兩個骰子最小點數 是 2
所以最大點數是 12

所以亂數範圍 只能設定成 2~12 這幾種出現

不能有1 出現

拍謝 誤導囉你 表情


獻花 x0 回到頂端 [4 樓] From:臺灣新世紀資通股份有限公司 | Posted:2007-05-27 22:45 |
gamewalk
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

point=rand()%12+2;
這樣是不是會跑出13阿?因為 rand()%12應該是會產生0~11的數,如果整體加2會變成 2~13


[ 此文章被gamewalk在2007-05-27 23:56重新編輯 ]


獻花 x0 回到頂端 [5 樓] From:臺灣永大數位動力公司 | Posted:2007-05-27 23:40 |
GNUGCC
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x11
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

其實有其他方法~~~目前想到的是改成 point=rand()%11+2;
而且也不會超過陣列範圍, 先試看看吧...


獻花 x0 回到頂端 [6 樓] From:臺灣 | Posted:2007-05-27 23:49 |
gamewalk
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

如果是骰兩個骰子(應該是指1~6+1~6),可能要分開產生亂數在把他們相加起來喔,結果應該會與隨機產生2~12的數不同喔...樓主的範例比較像是投擲一個12面骰子(假設有這種東西的話)的結果....


獻花 x0 回到頂端 [7 樓] From:臺灣永大數位動力公司 | Posted:2007-05-28 00:31 |
海洋天使 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x35
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

好像討論的有些結果了!

小地翻了一下我自己有留存的檔案(學習C++所寫的)

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>

using namespace std;

int main()
{
     srand((unsigned)time(NULL));

     int array = 36000;            //骰多少次

     int count[13] = {0};

     for(int i=0; i<array; i++)
     {
           int bone1 = rand()%6 + 1;
           int bone2 = rand()%6 + 1;

           count[ bone1+bone2 ]++;
     }


     //以下開始 Print

     cout << "總和\t擲出的次數\t擲到的機率" << endl;
     cout << "-----------------------------------------" << endl;

     for(int i=2; i<=12; i++)
           cout << setw(4) << i << "\t" << setw(10) << count << "\t" << ((double)count/array) << endl;
     
     system("pause");      
     return 0;
}

參考一下^^


獻花 x0 回到頂端 [8 樓] From:未知地址 | Posted:2007-05-28 01:22 |
gamewalk
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

樓上的應該就對了...不過有個小地方要注意....

cout << setw(4) << i << "\t" << setw(10) << count << "\t" << ((double)count/array) << endl;

兩個count的地方沒有加到索引值,應該是count[i]....

我想可能是因為這裡如果直接貼程式碼"[i]"這部份似乎會被吃掉,剛才有試一下


[ 此文章被gamewalk在2007-05-28 12:57重新編輯 ]


獻花 x0 回到頂端 [9 樓] From:臺灣永大數位動力公司 | Posted:2007-05-28 12:50 |

<<   1   2  下頁 >>(共 2 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.054100 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言