در حال بارگذاری...

Random در Java

از Java یک عدد شانسی در بازهٔ کوچک بخواهید و چاپ کنید. در Dice.java بنویسید import java.util.Random;، کلاس عمومی Dice را نگه دارید، بسازید Random rng = new Random(42);، نگه دارید int roll = rng.nextInt(6) + 1; و roll را چاپ کنید. با javac Dice.java ترجمه کنید و java Dice را اجرا کنید. با seed برابر 42 صفحه باید 3 نشان دهد. دموی دوم دو پرتاب از همان مولد چاپ می‌کند تا صفحه 3، بعد 4 نشان دهد. Summary را برای صفحهٔ بعد بگذارید — این درس عدد شانسی با seed ثابت برای تمرین است، نه جمع‌بندی کورس.

یک پرتاب با seed بسازید

صفحهٔ تاریخ یک روز تقویم را قفل کرد. این صفحه یک پرتاب می‌خواهد. فایل Dice.java را باز کنید. نام کلاس عمومی را Dice نگه دارید. دموهای باقی‌ماندهٔ تاریخ Stamp اگر داستان Random را دفن می‌کنند پاک کنید، جمع‌های قالب‌بندی Yard، فایل‌های نام‌گذاری، و هر Scanner صفحه‌کلید را هم پاک کنید. برنامه نباید منتظر تایپ بماند.
در بالای فایل import را اضافه کنید:
import java.util.Random;
داخل Dice.main یک مولد با seed بسازید تا هر اجرای این فایل آموزش همان مقدار اول را تکرار کند:
Random rng = new Random(42);
int roll = rng.nextInt(6) + 1;
System.out.println(roll);
nextInt(6) به‌تنهایی 0 تا 5 برمی‌گرداند. افزودن 1 بازه را به 1 تا 6 جابه‌جا می‌کند، مثل تاس شش‌وجهی. seed برابر 42 جادو نیست — فقط دنباله را برای این درس قفل می‌کند تا کوئیز و صفحه یکی باشند. هر بار که صفحه را می‌خوانید عدد تازه‌ای حدس نمی‌زنید.

Dice one seeded roll prints 3

java
import java.util.Random;

public class Dice {
    public static void main(String[] args) {
        Random rng = new Random(42);
        int roll = rng.nextInt(6) + 1;
        System.out.println(roll);
    }
}

از پوشه‌ای که Dice.java را دارد javac Dice.java را اجرا کنید. وقتی پرانتز، آکولاد و نقطه‌ویرگول جور باشند، javac سطر خودش را نمی‌نویسد. بعد java Dice را اجرا کنید — نه java Dice.java. پسوند .java را از فرمان اجرا بردارید. یک کلاس عمومی در فایل نگه دارید تا نام با Dice یکی باشد.
صفحه 3 نشان می‌دهد. یک‌بار اجرا را قدم‌به‌قدم ببینید. Java از Dice.main شروع می‌کند. سازنده seed برابر 42 را نگه می‌دارد. اولین فراخوانی nextInt(6) مقداری در 0..5 می‌کشد، بعد + 1 آن را 1..6 می‌کند. با این seed آن پرتاب اول 3 می‌شود. چاپ 3 می‌نویسد.
وقتی صفحه را می‌بینید قاعده را بگویید: Random را import کنید، وقتی دموی تکرارپذیر می‌خواهید با seed بسازید، برای بازهٔ شبیه تاس nextInt(6) + 1 را صدا بزنید، پرتاب را چاپ کنید. در این صفحه فصل Summary نسازید. Summary منتظر درس بعد است. اگر 1 تا 6 می‌خواهید + 1 را حذف نکنید.
اگر هنوز 2026-03-15 از فایل تاریخ Stamp می‌بینید، به فایل آموزش Random بروید و دوباره java Dice را اجرا کنید. اگر javac بگوید Random پیدا نمی‌شود، سطر import بالای Dice.java را چک کنید.

پرتاب دوم از همان مولد

یک پرتاب بازه را ثابت می‌کند. فراخوانی دوم روی همان شیء Random دنباله را ادامه می‌دهد. همان سازندهٔ seed را نگه دارید. دو پرتاب چاپ کنید:
System.out.println(rng.nextInt(6) + 1);
System.out.println(rng.nextInt(6) + 1);
با seed برابر 42 چاپ اول هنوز 3 است. چاپ دوم 4 است. هر دو مقدار داخل 1..6 می‌مانند. مولد جای خود را به یاد می‌سپارد؛ اگر مقدار بعدی همان دنباله را می‌خواهید بین آن دو سطر دوباره new Random(42) نسازید.

Dice two seeded rolls print 3 then 4

java
import java.util.Random;

public class Dice {
    public static void main(String[] args) {
        Random rng = new Random(42);
        System.out.println(rng.nextInt(6) + 1);
        System.out.println(rng.nextInt(6) + 1);
    }
}

با javac Dice.java ترجمه کنید و دوباره java Dice را اجرا کنید. صفحه 3، بعد 4 نشان می‌دهد. یک‌بار اجرا را قدم‌به‌قدم ببینید. همان seed دنباله را شروع می‌کند. اولین nextInt(6) + 1 مقدار 3 چاپ می‌کند. فراخوانی دوم جلو می‌رود و 4 چاپ می‌کند. چیزی منتظر صفحه‌کلید نمی‌ماند. چیزی روز تقویم نگه نمی‌دارد.
دو دمو را دو شکل آموزش نگه دارید. اول یک پرتاب با seed را ثابت کنید. بعد دو پرتاب پشت‌سرهم را ثابت کنید. هر دو شکل همان import و همان seed را دارند. شکل دوم فقط یک فراخوانی nextInt دیگر اضافه می‌کند.
اگر قبل از هر چاپ دوباره new Random(42) بسازید، هر سطر دنباله را از نو شروع می‌کند و ممکن است دو بار 3 ببینید. آن عادت دیگری است. این صفحه برای دموی دو‌پرتاب یک مولد نگه می‌دارد تا سطر دوم جلو برود.

Random نه تقویم است نه Summary

تاریخ یک روز ثابت نگه می‌داشت که چاپ و شکافته می‌شد. Random عدد شانسی در یک بازه می‌کشد. Summary در صفحهٔ بعد مسیر کورس را جمع می‌کند. امروز این سه کار را در یک فایل مبتدی قاطی نکنید.
بدون seed هر اجرا می‌تواند پرتاب اول متفاوتی نشان دهد. برای بازی‌های بعد اشکالی ندارد. این درس seed برابر 42 را به کار می‌برد تا صفحهٔ آموزش و کوئیز یک جواب داشته باشند. در هر حال همان فراخوانی nextInt را یاد می‌گیرید.
وقتی import نباشد، javac قبل از هر سطر صفحه شکست می‌خورد. وقتی + 1 را فراموش کنید، ممکن است 0 بیاید که چهرهٔ استاندارد تاس نیست. import را نگه دارید، جابه‌جایی را نگه دارید، و java Dice را اجرا کنید تا دموی یک‌پرتاب 3 نشان دهد یا دموی دو‌پرتاب 3 بعد 4.
اگر دموهای تاریخ هنوز نزدیک‌اند، به‌عنوان تاریخچه نگه دارید. برای این درس فایل آموزش Random را اجرا کنید تا صفحه عدد شانسی در بازه نشان دهد، نه 2026-03-15. اگر javac از کلاس عمومی تکراری شکایت کرد، فقط Dice را عمومی نگه دارید.

بازه، seed و عادت + 1

nextInt(6) یعنی شش مقدار شروع ممکن: 0، 1، 2، 3، 4 و 5. عبارت nextInt(6) + 1 آن‌ها را به 1، 2، 3، 4، 5 و 6 نگاشت می‌کند. یک‌بار این نگاشت را با صدای بلند بگویید وقتی به کد نگاه می‌کنید. آرگومان کران، شمار مقدارهای شروع است، نه بالاترین چهره بعد از جابه‌جایی.
seed مشخص می‌کند در این فایل آموزش اول کدام مسیر از آن چهره‌ها را می‌بینید. عوض کردن seed دنباله را عوض می‌کند. گذاشتن seed بیرون، دنباله را بین اجراها عوض می‌کند. برای تمرین نمره‌دار این صفحه 42 را نگه دارید تا چهرهٔ اول 3 بماند.
Random را جایگزین LocalDate ندانید. یک پرتاب را قانون تورفتگی قالب‌بندی ندانید. هر صفحهٔ قبل کار خودش را نگه داشت. این صفحه فقط عدد شانسی نگه می‌دارد.

قبل از Summary

می‌توانید Random را import کنید، new Random(42) بسازید، nextInt(6) + 1 بریزید، در یک اجرا 3 ببینید، و در دموی دو‌پرتاب 3 بعد 4 ببینید. برای دموهای نگه داشته‌شده Dice.java را ترجمه کنید و java Dice را اجرا کنید. بازه 1..6 ماند؛ seed دنباله را برای آموزش پایدار نگه داشت. صفحهٔ بعد Summary است، جایی که به مسیر Java نگاه می‌کنید.
دموهای تاس با seed را برای جفت روشن عدد شانسی نگه دارید. وقتی Random تمرین می‌کنید فایل‌های تاریخ را از این صفحه دور نگه دارید. فایل‌های Summary را تا آن درس از این صفحه دور نگه دارید. این سه عادت ایستگاه کنترل قبل از ادامه است. وقتی صفحهٔ یک‌پرتاب 3 نشان دهد یا صفحهٔ دو‌پرتاب 3 بعد 4، Random کار این درس را کرده و برای موضوع بعدی دربارهٔ Summary آماده‌اید.
یک پاس آخر روی پوشه: یک Dice عمومی، import حاضر، new Random(42)، nextInt(6) + 1، بدون انتظار صفحه‌کلید، بدون نوع تقویم اجباری. یک‌بار دیگر روی دموی باز javac Dice.java و java Dice را اجرا کنید. اگر صفحه هنوز 3 یا 3 بعد 4 را نشان می‌دهد، شکل Random محکم است و کورس می‌تواند در صفحهٔ بعد به Summary برود. در هر خواندن یک عادت شانسی روشن نگه دارید تا هر پاس همان نقشه را بیاموزد.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
5
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود