السلطان
  1. الرئيسية
  2. الأمثلة
  3. العشوائية

مولد شبه عشوائي ببذرة

البذرة نفسها تعطي التسلسل نفسه.

random/seeded_random.sn
// مولد شبه عشوائي ببذرة: البذرة نفسها تعطي التسلسل نفسه.
استورد std.io.println;
استورد std.text.number;
استورد std.text.transform;
استورد std.random.prng;
استورد std.text.compare;

عرف ارم_النرد(البذرة: طبيعي, العدد: طبيعي): نص {
    دع المولد: متغير مولد_عشوائي = أنشئ_مولد_عشوائي(البذرة);
    دع الرميات: متغير متجه نص = [];
    دع ف: متغير طبيعي = 0;
    طالما (ف < العدد) {
        طابق عشوائي_بين(&متغير المولد, 1, 7) مع
        | اختياري.موجود(الوجه) -> { ألحق(الرميات, طبيعي_إلى_نص(الوجه)); }
        | اختياري.لا_شيء -> { };
        ف := ف + 1;
    }
    دع المسافة: نص = " ";
    أرجع صل_النصوص(&الرميات, &المسافة);
}

عرف الرئيسية(): عدد {
    دع الأول: نص = ارم_النرد(2026, 8);
    دع مرة_أخرى: نص = ارم_النرد(2026, 8);
    اطبع_سطر(استنسخ(&الأول));
    إذا (نصان_متساويان(&الأول, &مرة_أخرى)) { اطبع_سطر("البذرة نفسها تعطي الرميات نفسها"); };
    أرجع 0;
}

التشغيل

بالمفسر، دون ترجمة:

./build/sultanc run examples/ar/random/seeded_random.sn

أو ترجمه إلى ملف تنفيذي:

./build/sultanc examples/ar/random/seeded_random.sn -o build/example && ./build/example

المصدر على GitHub   كل الأمثلة