PDA

View Full Version : سوال: تولید اعداد تصادفی در یک رنج خاص



mohsen57
چهارشنبه 08 خرداد 1387, 23:40 عصر
چجوری میتونم با Rnd اعداد تصادفی بین 1 و 5 تولید کنم؟

اوبالیت به بو
چهارشنبه 08 خرداد 1387, 23:47 عصر
Print Int(Rnd() * 6)
تابع Rnd يك عددي هستش بين 0 و 1 يعني

0<= Rnd <= 1
و وقتي در 6 ضرب ميشه يه عدد اعشاري توليد مي كنه بري همين از يه تابع ديگه به اسم Int استفاده ميكنيم تا عدد رو گرد كنه.

mohsen57
پنج شنبه 09 خرداد 1387, 00:05 صبح
این کد 0 را هم تولید میکنه می خوام بین 1 و 5 باشه.

اوبالیت به بو
پنج شنبه 09 خرداد 1387, 00:10 صبح
من هم توضيح تابع RND رو دادم هم Int


Print 1 + (Int(Rnd() * 5))

SeyedMoosavi
پنج شنبه 09 خرداد 1387, 00:18 صبح
این کد 0 را هم تولید میکنه می خوام بین 1 و 5 باشه.
شما فقط کافیه این کار رو که میگم انجام بدین
اگر میخوای بین 1 تا 5 باشه RND رو در 4 ضرب میکنی و به اضافه 1 میکنی
برای اینکه 6 نده باید ضربدر 4 بشه که اگر خود 4 اومد به اضافه 1 که میشه بشه 5 و اگر 0 دارد بشه 1
حالا اگر می خوای بین 15 تا 30 بده می زنی Rnd ضربدر 15 به اضافه 15یعنی

(Rnd * 15) +15
اگر متوجه نشدی بگو تا برات هم نمونه برنامه بزارم هم توضیح بدم

اوبالیت به بو
پنج شنبه 09 خرداد 1387, 00:24 صبح
اگر میخوای بین 1 تا 5 باشه RND رو در 4 ضرب میکنی و به اضافه 1 میکنی

اين حرف اشتباه چون 5رو ديگه نمي ده

SeyedMoosavi
پنج شنبه 09 خرداد 1387, 00:30 صبح
اين حرف اشتباه چون 5رو ديگه نمي ده
نه دوست من اشتباه نکن
اگر برنامه عدد 4 روبده به اضافه 1 میشه چند؟ خوب میشه 5 پس 5 رو هم میده

mohsen57
پنج شنبه 09 خرداد 1387, 01:02 صبح
نه دوست من اشتباه نکن
اگر برنامه عدد 4 روبده به اضافه 1 میشه چند؟ خوب میشه 5 پس 5 رو هم میده
دوستمون درست میگه کد شما عدد 5 رو تولید نمیکنه. البته من بجای 4 عدد 5 رو قرار دادم درست شد.

ali_habibi1384
پنج شنبه 09 خرداد 1387, 06:12 صبح
Print Int(Rnd() * 6)
تابع Rnd يك عددي هستش بين 0 و 1 يعني

0<= Rnd <= 1
و وقتي در 6 ضرب ميشه يه عدد اعشاري توليد مي كنه بري همين از يه تابع ديگه به اسم Int استفاده ميكنيم تا عدد رو گرد كنه.
البته rnd خود 0 و 1 رو تولید نمی کنه و اعداد بین 0 و 1 رو تولید میکنه.:چشمک:

مهران رسا
پنج شنبه 09 خرداد 1387, 07:01 صبح
برای اینکه اعداد در هر بار اجرای برنامه یکنواخت نباشن از Randomize Timer هم می تونی استفاده کنی :




Randomize Timer
MsgBox Int(Rnd * 5) + 1

اوبالیت به بو
پنج شنبه 09 خرداد 1387, 08:16 صبح
نه دوست من اشتباه نکن
اگر برنامه عدد 4 روبده به اضافه 1 میشه چند؟ خوب میشه 5 پس 5 رو هم میده
من در حرفه شما چيز جز 4 رو نديدم.
من در يك حلقه 32000 تايي يه آرايه تعريف كردم و درون آرايه رو كد شماره نوشتم. اما وقتي در آرايه جستجو رو انجام دادم عدد پنجي پيدا نشد.
بعيد مي دونم تويه 32000بار يه عدد 5 توليد نشه پس اشتباه هستش.

Apache66
پنج شنبه 09 خرداد 1387, 10:27 صبح
ببین برنامه زیر بدردت می خوره
البته برنامه نویس یکی از دوستان است

SeyedMoosavi
پنج شنبه 09 خرداد 1387, 15:26 عصر
درسته من اشتباه کرده بودم 5 نمیده کدی که نوشتم
از تمام دوستان معذرت میخوام