* امروز از سر بیکاری و البته سوال ذهنی که از قبل برام بود، یه تیکه کد نوشتم که عدد تصادفی تولید میکنه، البته با استفاده از توابع خود سی++. کل نکته این بود که برای داشتن اعداد تصادفی متفاوت، در هر بار اجرای برنامه، باید یه seed متفاوت به srand داد. همین :)
* سورس این برنامه رو میشه در ادامه مطلب با کلیک بروی اینجا دید. نکتهای که هست اینه که این برنامه میاد چندتا عدد تولید میکنه، بعد نمودار میلهای پراکندگی اعداد بین ۰ و ۹ رو رسم میکنه. من صبح کشف کردم که توزیع این اعداد یکنواخت هست که بعد فهمیدم واقعا هم اینطور هست! بعد اینکه یکی از دوستان بهم گفت که این اعداد کاملا تصادفی نیستند! به اینها میگن اعداد شبهتصادفی. بعد یکی دیگه از دوستان وقتی سوال کردم که چطور میشه توزیع رو نرمال کرد گفت که با چندبار تولید کردن توزیع یکنواخت و جمع کردن اونها و تقسیم بر تعداد کردن و در آخر کمکردن یکی از میانگینها که با استفاده از قضیه حد مرکزی این به توزیع نرمال میل میکنه :) این باشه برای بعدا که دوباره حس زندگی نبود :)
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
using namespace std;
void dispVect(vector<int> vect)
{
int i;
double j,f,div;
for(i=0; i<vect.size();i++)
{
if(vect[i])
{
div = vect[i];
break;
}
}
for(i=0;i<vect.size();i++)
{
cout << i << ": " << vect[i] << " ";
f = (double)vect[i] / div;
for(j = 0; j<f; j+=0.02)
{
cout << "-";
}
cout << endl;
}
}
int main(int argc, char **argv)
{
int num , i , top;
vector<int> numbers(10,0);
srand(time(NULL));
if(argc > 1)
top = atoi(argv[1]);
else
top = 10;
for(i=0;i<top ; i++)
{
num = rand() % 10;
numbers[num]++;
}
dispVect(numbers);
cout << endl;
}
* اینم یه عکس از اجرای برنامه:
دکی فردا امتحان دارم دارم میخونم منم همچین سوالی قبلا از استادمون کردم ولی نه اون فهمید چی گفت نه من نفهمیدم چی نگفت
برا همین
صبررررررررررررررررررررر اله
میلم زودی:دی
با این توزیع نرمال خیلی کارا میشه کرد
ببین تو رمز گشایی که بجا یه کلمه یه کاراکتر دیگه استفاده میشه زودی شکسته میشه چون توزیع نرمال نی
یعنی طرف نگا کنه مثلا حرف ای انگلیسی از همه بیشتر تو متن میا بعد ببین اون کاراکتر بیشتر حدث میزنه که اون کاراکتر همون ای میباشیه
پس این اعداد تصادفی و نمال کردن توزیعشون میتونه کمک زیادی به زمز نگاری بکنه
احسنتتتتتتتتتتتتتتتتت به این هوش و ذکاوتی که داری
کچل کردی مغزت کار میکنه بیشر از قبل
wooooooooow!!!
میتونی یه کد اضاف کنی که بگه چند درصد از این عددا اول هستن؟
واو!
پسر تو جقدر مطالعه داری!! خوشم میاد از این اخلاقت! :-*
پیشنهاد خوبیه، روش فکر میکنم. البته کار نداری که! دیگه خودت میدونی، یه چک کردن سادهس.