تولید عددهای نابرابر

سلام دوستان
من میخوام به فرض 3 تا عدد تصادفی تولید کنم که این سه عدد برابر هم نباشند و یا حداقل یکی از آنها با بقیه متفاوت باشه. در این مثال میخوام عدد تولیدی a متفاوت از عددی های b‌ و c تولید بشه.
متغیرها رو نوشتم بقیشو نتونستم انجام بدم ممنون میشم راهنمایی کنین
[PHPS]var a:uint = Math.round(Math.random() * 3);
var b:uint = Math.round(Math.random() * 3);
var c:uint = Math.round(Math.random() * 3);

trace(a,b,c);[/PHPS]
 
آخرین ویرایش:

BehrouzPc

پــــادشــاه فــلــــش
باید عدد ها ابتدا در یک آرایه قرار دهید و بعد با رندم یکی از عناصر را خروجی دهید و آن عنصر را از آرایه حذف کنید و دوباره که از عناصر آن آرایه انتخاب کنید دیگر تکراری نخواهد بود زیرا آن مورد دیگر از آرایه حذف شده است
موفق و پیروز باشید
 
باید عدد ها ابتدا در یک آرایه قرار دهید و بعد با رندم یکی از عناصر را خروجی دهید و آن عنصر را از آرایه حذف کنید و دوباره که از عناصر آن آرایه انتخاب کنید دیگر تکراری نخواهد بود زیرا آن مورد دیگر از آرایه حذف شده است
موفق و پیروز باشید

ممنون از پاسختون
ولی ببینید من کاری که میخوام انجام بدم اینه که ابتدا برنامه دو عدد رندوم تولید کنه سپس جمع این دوتا عدد رو چاپ کنه. حال به غیر از اون عدد جواب، میخوام چند عدد رندوم دیگه تولید کنم که با جمع دو عدد متفاوت باشه. مثلا اگه جمع دو عدد 4 بود دو عدد دیگه که هیچکدوم 4 نباشه تولید کنه. فک نکنم از آرایه بشه به نتیجه رسید. آیا راه حل دیگه ای هست؟
 

BehrouzPc

پــــادشــاه فــلــــش
می توانید یک آرایه با تعداد زیادی عدد مرتب ایجاد کنید
حال با به دست آوردن عدد جمع به رندم عدد به دست آمده را از آرایه حذف کنید و حال یک نتیجه رندم از آرایه مربوطه بگیرید
خیلی ساده
موفق و پیروز باشید
 
راستش من تازه آموزش اکشن سه رو شروع کردم و هنوز راحت تر نمیتونم با آرایه کار کنم.ممنون میشم کدهارو قرار بدین و یا یه سمپل بگذارین.
 

mmz2006

Active Member
سلام

با معذرت از استاد بهروز فکر کنم استفاده از حلقه ویل کار رو راحت تر بکنه


PHP:
var a:uint = 1 + Math.round(Math.random() * 2);
var b:uint = 1 + Math.round(Math.random() * 2);
var c:uint = 1 + Math.round(Math.random() * 2);
 
//حلقه زیر می گوید اگر بی با ای مساوی است بازم رندم بگیر تا وقتی که نابرابر بشن
while (b == a){
    b = 1 + Math.round(Math.random() * 2);
  }


//در حلقه زیر از عملگر "یا" استفاده شده که به این شکل است "||"و معنی حلقه زیر
//این است که اگر سی با ای برابر باشه یا اگر با بی برابر باشه 
//حلقه اونقدر تکرار بشه تا با هردوشون نابرابر بشه
while (c == a || c == b){
     c = 1 + Math.round(Math.random() * 2);
  }
 
trace(a,b,c);
 

جدیدترین ارسال ها

بالا