PDA

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


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

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

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

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

Afshin_Zavar
پنج شنبه 23 آذر 1385, 11:29 قبل از ظهر
سلام
روش جالبیه! من برای سه سکه ؛ آرایه 8*3 گرفته بودم و سعی میکردم؛ حالات رو در هر ستون جداگانه تولید کنم( مثل روشی که روی کاغذ مینویسیم)
جسارتا" این روش ساخته خودتونه؟

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