برنامه ای بنویسید که n عدد تصادفی غیر تکراری را با ساختمان داده آرایه پیاده سازی نماید.
سوال
برنامه ای بنویسید که n عدد تصادفی غیر تکراری را با ساختمان داده آرایه پیاده سازی نماید. |
در حال بررسی
0
انجمن برنامه نویسان جاوا
2 سال
1 پاسخ
172 دیده شده
0
پاسخ ( ۱ )
الگوریتم تقسیمبندی ناحیهی انتخاب:
۱- ابتدا یک عدد در یک بازه انتخاب میشود مانند ۶۰ در بازه ۱۰۰ تا -۱۰۰
۲- سپس دو بازه خالی بوجود میآید: -۱۰۰ تا ۵۹ و ۶۱ تا ۱۰۰٫ حال دوباره یکی از این بازهها بهصورت رندومی انتخاب میشود و در این بازه یک عدد بهصورت رندومی انتخاب میشود بهطور مثال -۱۰ در بازه -۱۰۰ تا ۵۹٫
۳- سپس بازه های خالی دوباره محاسبه می شوند و در یکی از بازه های خالی یک عدد به صورت رندومی انتخاب می شود.
این روند تا زمانی ادامه دارد که n عدد رندوم انتخاب شوند.
برای تعیین بازهی Universal باید MAX_VAL و MIN_VAL در کدها تنظیم کنید. مقدار اولیه اونها ۱۰۰۰ و -۱۰۰۰ هست. این یعنی شما نهایتاً ۲۰۰۱ عدد رندوم غیرتکراری میتوانید تولید کنید.
سرعت این الگوریتم در بازه های بزرگ (بهطور مثال تولید ۱ میلیون عدد تصادفی غیرتکراری) بیشتر از الگوریتمهای دیگر است.