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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: برنامه ای بنویسد که پرتاپ دو تاس را شبیه سازی کند.( حل شد)  (دفعات بازدید: 4048 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین abolfazl.aghaii

  • Full Member
  • *
  • ارسال: 129
  • جنسیت : پسر
برنامه ای به زبان ++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;

}
« آخرین ویرایش: 28 دی 1393، 07:01 ب‌ظ توسط abolfazl.aghaii »

آفلاین احمد حمزه ئی

  • Jr. Member
  • *
  • ارسال: 66
  • جنسیت : پسر
    • Github
کد چه مشکلی داره که اجرا نمیشه؟ ](*,) ](*,) ](*,) ](*,) ](*,)

با یکم ویرایش کار میکنه.
خروجی:
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

  • High Hero Member
  • *
  • ارسال: 1319
« آخرین ویرایش: 22 دی 1393، 02:45 ب‌ظ توسط alend »

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19724
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
احتمالاً اگه خروجی‌اش رو می‌دیدی متوجّه می‌شدی خودت
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن