انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: abolfazl.aghaii در 22 دی 1393، 01:50 ب‌ظ

عنوان: برنامه ای بنویسد که پرتاپ دو تاس را شبیه سازی کند.( حل شد)
ارسال شده توسط: abolfazl.aghaii در 22 دی 1393، 01:50 ب‌ظ
برنامه ای به زبان ++C بنویسید که پرتاپ دو تاس را شبیه ساری کند. این برنامه باید برای انداختن این تاس ارز rand و برای پرتاپ دومین تاس نیز باز هم از rand استفاده کند. و مجموع این دو مقدار را محاسبه کند. توجه: چون هر یک از تاس ها مقدار صحیح بین اعداد 1 تا 6 را نمایش می دهد. در نتیجه مجموع این دو مقدار بین 2 تا 12 است که مجموع 2 تا 12 کمترین دفعات و مجموع 7 بیشترین دفعات می باشند.


7   6   5   4   3   2
8   7   6   5   4   3
9   8   7   6   5   4
10   9   8   7   6   5
11   10   9   8   7   6
12   11   10   9   8   7

شکل بالا 36 ترکیب ممکن برای تاس ها را نشان می دهد. برنامه ی شما باید 36000 بار دو تاس را پرتاپ کند. تعداد دفعاتی را که هر یک از مجموعه های ممکن پیش می اید را با استفاده از یک ارایه یک بعدی دخیره و نتایج را به شکل جدولی نمایش دهید. سپس بررسی کنید که ایا تعداد مجموعه های بست امده معقول هست یا نه (مثلا به 6 طریق, مجموع عدد 7 حاصل می شود پس تقریبا حدود یک ششم همه ی پرتاپ ها باید عدد 7 باشد.)


کد چه مشکلی داره که اجرا نمیشه؟ ](*,) ](*,) ](*,) ](*,) ](*,)

 #include<iostream>

#include<conio.h>
#include<iomanip>
using namespace std;

int main()
{
const long ROLLS = 36000;
const int SIZE = 13;
// array exepected contains counts for the expected
// number of the times each sum occurs in 36 rolls of the dics
int expected[SIZE] = { 0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 };
int x, y, sum[SIZE] = {0};
srand(time(0));
for(long i = 1; i <= ROLLS; ++i) {
x = 1 + rand() % 6;
y = 1 + rand() % 6;
++sum[x + y];
}
cout << setw(10) << "Sum" << setw(10) << "Total" << setw(10)
<< "Expected" << setw(10) << "Actual\n"
<< setiosflags(ios::fixed | ios::showpoint);
for(int j = 2; j < SIZE; ++j)
cout << setw(10) << j << setw(10) << sum[j] << setprecision(3)
        << setw(9) << 100.0 * expected[j] / 36 << "%" << setprecision(3)
<< setw(9) << 100.0 * sum[j] / 36000 << "%\n";
getch();
return 0;

}
عنوان: پاسخ : برنامه ای بنویسد که پرتاپ دو تاس را شبیه سازی کند.(کدی که هست مشکل داره)
ارسال شده توسط: احمد حمزه ئی در 22 دی 1393، 02:33 ب‌ظ
کد چه مشکلی داره که اجرا نمیشه؟ ](*,) ](*,) ](*,) ](*,) ](*,)

با یکم ویرایش (http://paste.ubuntu.com/9717802/) کار میکنه.
خروجی:
ahmad@presto:~/Desktop$ g++ New.cpp
ahmad@presto:~/Desktop$ ./a.out
       Sum     Total  Expected   Actual
         2      1027    2.778%    2.853%
         3      1963    5.556%    5.453%
         4      3040    8.333%    8.444%
         5      4029   11.111%   11.192%
         6      4937   13.889%   13.714%
         7      5996   16.667%   16.656%
         8      5023   13.889%   13.953%
         9      3981   11.111%   11.058%
        10      3076    8.333%    8.544%
        11      1953    5.556%    5.425%
        12       975    2.778%    2.708%
عنوان: پاسخ : برنامه ای بنویسد که پرتاپ دو تاس را شبیه سازی کند.(کدی که هست مشکل داره)
ارسال شده توسط: alend در 22 دی 1393، 02:41 ب‌ظ
http://hyperphysics.phy-astr.gsu.edu/hbase/math/dice.html
http://en.cppreference.com/w/cpp/numeric/random/binomial_distribution
عنوان: پاسخ : برنامه ای بنویسد که پرتاپ دو تاس را شبیه سازی کند.(کدی که هست مشکل داره)
ارسال شده توسط: دانیال بهزادی در 23 دی 1393، 12:04 ق‌ظ
احتمالاً اگه خروجی‌اش رو می‌دیدی متوجّه می‌شدی خودت