انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: 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;
}
-
کد چه مشکلی داره که اجرا نمیشه؟ ](*,) ](*,) ](*,) ](*,) ](*,)
با یکم ویرایش (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%
-
http://hyperphysics.phy-astr.gsu.edu/hbase/math/dice.html
http://en.cppreference.com/w/cpp/numeric/random/binomial_distribution
-
احتمالاً اگه خروجیاش رو میدیدی متوجّه میشدی خودت