PDA

View Full Version : ایجاد جدول درستی؛



Developer Programmer
چهارشنبه 22 آذر 1385, 18:26 عصر
سلام
واسه حل یه مسئله آماری نیاز دارم که تمام حالات افتادن 10 سکه رو ایجاد کنم ؛(1024 حالت مختلف)
اما میخوام اینکار رو به صورت یه فرمول(بدون درگیر شدن با IF ها و حلقه های تودرتو) انجام بدم که برای مسئله های بزرگتر هم قابل تعمیم باشه؛

کسی میتونه کمک کنه؟

k.robot
پنج شنبه 23 آذر 1385, 01:54 صبح
دوست عزیز
اگه دقت کنی چون سکه دو حالت داره میتونیم هر سکه رو معادل یک بیت در نظر بگیریم
با گرفتن تعداد سکه ها از ورودی برنامه و محاسبه دو به توان ورودی تعداد حالاتو به دست میاری
بعد با یه حلقه for از 0 تا دو به توان n منهای یکو میشموری هر کدوم معادل یک حالتند در حین شمارش تابع تبدیل اعداد مبنای 10 به باینری و صدا میزنی.
حالا اگه 1 هارو خط و 0 ها رو شیر بگیری میبینی که تموم حالاتو داری.یا برعکس.
کد زیر واسه هر ورودی دلخواه همه حالاتو ایجاد میکنه.اگه خواستی چاپ کنی بسته به قرارداد خودت میتونی اگه مثلا 1 دیدی خط و 0 دیدی شیر چاپ کنی یا برعکس.
هزینه تابع 2 به توانه ورودیه .از این بهترشو نداریم.


generate(n)
{
for(i=0;i<=pow(2,n)-1;i++)
array[i]=binary(i);
}

Developer Programmer
پنج شنبه 23 آذر 1385, 09:59 صبح
سلام
روش جالبیه! من برای سه سکه ؛ آرایه 8*3 گرفته بودم و سعی میکردم؛ حالات رو در هر ستون جداگانه تولید کنم( مثل روشی که روی کاغذ مینویسیم)
جسارتا" این روش ساخته خودتونه؟

k.robot
جمعه 24 آذر 1385, 00:14 صبح
دوست عزیز
من از روش خاصی استفاده نکردم فقط یه کم رو سوالت فکر کردم همین.
اگه شما هم یه کم بیشتر فکر میکردی و یه کم سوالتو به ساختمان گسسته و مدار منطقی ربط میدادی میتونستی به همین نتیجه برسی.
به هر حال خوشحالم 10 دقیقه فکر کردن من بهت کمک کرد.