برای تولید اعداد تصادفی میتونید از ()rand و ()srand استفاده کنید .
و اعداد تولید شده رو در هر بار داخل یک فایل ذخیره کن .
و هر باری کی برنامه اجرا میشه . اعداد تولید شده جدید رو با اعداد ذخیره شده در فایل مقایسه کن . اگه اونطوری که میخوای نبود اعداد رو دوباره تولید کن . و وقتی که به اعداد مورد نظر رسیدی اونها رو به جای اعداد قدیمی ذخیره کن تا با دوباره اجرا شدن برنامه اعداد تکرار نشن .
UPDATE :
ببین نسبت به دیدگاه هایی که گذاشته شد . من میتونیم یه چیزی شبیه به اون چیزی که میخوای رو بنویسم .
اینو نگاه کن :
ٰٰ#include <iostream>
#include <map>
#include <utility>
using namespace std;
const int MOD_ADLER = 65521;
uint32_t adler32(unsigned char *data, int32_t len) /* where data is the location of the data in physical memory and
len is the length of the data in bytes */
{
uint32_t a = 1, b = 0;
int32_t index;
/* Process each byte of the data in order */
for (index = 0; index < len; ++index)
{
a = (a + data[index]) % MOD_ADLER;
b = (b + a) % MOD_ADLER;
}
return (b << 16) | a;
}
struct entry
{
struct index_pair
{
size_t x,y;
};
index_pair indices[8];
};
entry make_entry (void)
{
entry s;
// tolid kardane 8 ta joft index mesle [2][3]
return s;
}
int main ()
{
const int MAX = 30;
int CUR = 0;
map<uint32_t,entry> data;
entry e = make_entry ();
uint32_t checksum = adler32(reinterpret_cast<unsigned char*>(&e),sizeof(entry));
auto ret = data.insert( std::pair<uint32_t,entry>(checksum,e));
if(ret.second == true) CUR++;
return 0;
}
این کد رو باید خودت تغییر بدی . مثلا باید داخل یک حلقه بزاری و تمام entry ها رو به map بدی تا اینکه CUR به عدد 30 برسه .
در واقع اون شرط آخری چک میکنه که entry داده شده تکراری هست یا نه . اگر نبود یکی به CUR اضاقه میکنه .
و وقتی که CUR تعدادش به ۳۰ تا برسه شما همه ی entry ها رو داخل map دارید و میتونی هر کاری باهاشون بکنی .
ساختار entry هم همون چیزیه که باید ۳۰ تا نمونه منحصر بفرد ازش بدست بیاد و ۳ تا از نمونش رو خودت توی دیدگاه گذاشتی .
از تابع Adler32 هم برای درست کردن checksum استفاده کردم .
تابع make_entry رو خودت باید پیاده سازی کنی که چطور میخوای این اعداد رو درست کنی و یک entry رو بسازی .
ساختار index_pair هم که برای نگهداری جفت اعدادی هست که هر باز هست تا از اون تولید میشه و داخل entry قرار میگیره .