یک آرایه2بعدی از اعداد باسطر و ستون غیرتکراری

splinter cell

Well-Known Member
با سلام
آقا من یک جدول5*5 دارم که قراره توی هرکدوم از خونه های اون اعداد1تا5 قرار بگیره به شرطی که اعداد واقع در سطر و ستونها تکراری نباشه. بنظر خودم اومد که با آرایه های دوبعدی باید کار کنم.
من از کلاسی که هادی عزیز:rose:برای تولید اعداد تصادفی بدون تکرار ساخته استفاده کردم و 5ردیف غیرتکراری ساختم.و حالا بعضی از این ستونها دارای عدد تکرای میشن.با حلقه هم خواستم چک کنم ولی این تکرای رو که عوض میکنم دوباره نظم قبلی ها بهم میریزه و ......:-?الان بقول روانشناسها مغزم به فلات رسیده:shock:.
امدوارم کسی بتونه الگوریتمی واسه این مورد ارائه بده. یاحق!
 

JavidFlasher

کاربر فعال
سلام
سادست کافیه اول یه الگو بسازین بعد سطر ها یا سطون های اون |فرقی نداره |رو به صورت تصادفی تو یه آرایه 2بعدی قرار بدی.
اگه نفهمیدین بگین تا کد بزارم.
 

++Hadi++

Active Member
به تصادف نمی شه گذاشت...چون یا باید بر مبنای سطر برید یا بر مبنای ستون،رو هر کدوم که استارت رو بزنید،شاید رو اون یکی جواب نده فرض کنید سطر اول و دوم به شرح زیر باشه :
3و5و2و1و4
5و4و2و3و1
حالا اگه دقت کنید چون رو سطر چیدیم،ستون وسط که سوم باشه،در هر دو ،عدد 2 تکرار شده..باید یه روش اصولی و عملی ریاضی باشه که اینو حلش کنید...به دنبال جداول و راههای مختلف برا حل این مساله باشید...من که الان حضور ذهن ندارم...
 

splinter cell

Well-Known Member
هادی دقیقاً حرف من رو زد. منم میخوام این عددهای اشتراکی ستونها رو حذف کنم ولی وقتی عوضش میکنم با یک ستون دیگه از نو یک مشترک میسازه.

جاوید جان اگه میشه الگوریتم خودت رو اینجا بذار .من که متوجه این الگوی از قبل تعریف شده ای که گفتی نشدم.
ممنون میشم
 

JavidFlasher

کاربر فعال
من از کلاس اعداد تصادفی بدون تکرار خودم استفاده کردم :
PHP:
var ar:Object=new Object()
var rnd:rnd_without_repeat=new rnd_without_repeat();
rnd.RandomNumber(1,5);
var pattern:Array=[
[1,2,3,4,5],
[2,3,4,5,1],
[4,5,1,2,3],
[5,1,2,3,4],
[3,4,5,1,2]
]
for (var i:int;i<5;i++) {
	ar[i]=pattern[rnd.Start()]
	trace(ar[i])
}

البته مشکل داره اونم اینه که سطر ها طبق الگوی خاص بوجود میان اما ستون ها مشکلی ندارن و ترکیبشون همون 120جور هستش...
 
آخرین ویرایش:

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

بالا