PDA

View Full Version : سوال: ماتریس باینری



reza69
جمعه 26 آبان 1391, 10:06 صبح
سلام

میخوام یه ماتریس 5*5 و باینری به صورت رندم وارد بشه بعد چاپ بشه ولی هر بار یک جور اعداد وارد میشه و با دفعه بعد که برنامه رو اجرا کنیم تفاوتی نداره
ببینید قطعه کدم درسته

#include<iostream.h>
#include<stdlib.h>
//#include<conio.h>
main()
{
int arr[5][5];
int i,j;
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
arr[i][j]=random(2);}

for(i=0;i<5;i++)
{for(j=0;j<5;j++)
cout<<arr[i][j];
cout<<endl;
}
//return 0;
//getch();
}

Ananas
جمعه 26 آبان 1391, 11:03 صبح
سلام.
قبل از استفاده از تابع random ، تابع randomize را یک بار در ابتدا فراخوانی کنید.

reza69
جمعه 26 آبان 1391, 11:24 صبح
سلام.
قبل از استفاده از تابع random ، تابع randomize را یک بار در ابتدا فراخوانی کنید.
میشه کدشو بنویسید؟

مسعود اقدسی فام
جمعه 26 آبان 1391, 11:33 صبح
میشه کدشو بنویسید؟




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

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

.
.
.

reza69
جمعه 26 آبان 1391, 11:38 صبح
#include <stdlib.h>
#include <time.h>

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

.
.
.



خیلی ممنون اجرا شد
میشه توضیح بدید دلیلش چیه؟ منظورم اینکه این کد چیکار میکنه؟

مسعود اقدسی فام
جمعه 26 آبان 1391, 11:48 صبح
خیلی ممنون اجرا شد
میشه توضیح بدید دلیلش چیه؟ منظورم اینکه این کد چیکار میکنه؟

شما وقتی با ورق بازی می‌کنید، هر بار که بازی شروع می‌شه کارت‌ها رو بر می‌زنید. چرا؟ برای اینکه نظم و ترتیب کارت‌ها به هم بریزه و کاملا تصادفی تقسیم شه. تولید عدد تصادفی هم برای شروعش نیاز به یه همچین بر زدنی داره. اگه این کد رو نزنید به همون روش قبلی که عدد تولید کرده بود تولید می‌کنه. در نتیجه اعداد تکراری به دست می‌یاد.

در واقع برای شروع تولید عدد تصادفی یه عدد لازم داره که از اون استفاده کنه برای شروع. با تابع time یه عدد تصادفی که در واقع وابسته به ساعت سیستم هست و ثابت نیست به عنوان عامل شروع کننده تعیین می‌کنیم.