برنامه ای بنویسید که n عدد تصادفی غیر تکراری را با ساختمان داده آرایه پیاده سازی نماید.

سوال
برنامه ای بنویسید که n عدد تصادفی غیر تکراری را با ساختمان داده آرایه پیاده سازی نماید.
در حال بررسی 0
rose 1 سال 1 پاسخ 146 دیده شده 0

پاسخ ( ۱ )

  1. الگوریتم تقسیم‌بندی ناحیه‌ی انتخاب:

    ۱- ابتدا یک عدد در یک بازه انتخاب می‌شود مانند ۶۰ در بازه ۱۰۰ تا -۱۰۰

    ۲- سپس دو بازه خالی بوجود می‌آید: -۱۰۰ تا ۵۹ و ۶۱ تا ۱۰۰٫ حال دوباره یکی از این بازه‌ها به‌صورت رندومی انتخاب می‌شود و در این بازه یک عدد به‌صورت رندومی انتخاب می‌شود به‌طور مثال -۱۰ در بازه -۱۰۰ تا ۵۹٫

    ۳- سپس بازه های خالی دوباره محاسبه می شوند و در یکی از بازه های خالی یک عدد به صورت رندومی انتخاب می شود.

    این روند تا زمانی ادامه دارد که n عدد رندوم انتخاب شوند.

    برای تعیین بازه‌ی Universal باید MAX_VAL و MIN_VAL در کدها تنظیم کنید. مقدار اولیه اونها ۱۰۰۰ و -۱۰۰۰ هست. این یعنی شما نهایتاً ۲۰۰۱ عدد رندوم غیرتکراری می‌توانید تولید کنید.

    سرعت این الگوریتم در بازه های بزرگ (به‌طور مثال تولید ۱ میلیون عدد تصادفی غیرتکراری) بیشتر از الگوریتم‌های دیگر است.

ارسال یک پاسخ