PDA

View Full Version : پیاده سازی مثلث خیام پاسکال به روش...



ayub_amature
چهارشنبه 06 اردیبهشت 1385, 05:34 صبح
سلام!
من میخوام مثلث(( خیام - پاسکال)) رو به روش زیر پیاده کنم . تا فضای کمتری بگیره میخوام بدونم که به
نظر شما چجوری کدشو بنویسم؟ هر کی راه حل جالبی داره لطفا بگه...
این خود مثلث:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
اینم روش مورد نظر منه:
1 5 10 10 5 1
1 1 4 6 4 1
1 2 1 3 3 1

اَرژنگ
چهارشنبه 06 اردیبهشت 1385, 16:38 عصر
سلام!
من میخوام مثلث(( خیام - پاسکال)) رو به روش زیر پیاده کنم . تا فضای کمتری بگیره میخوام بدونم که به
نظر شما چجوری کدشو بنویسم؟ هر کی راه حل جالبی داره لطفا بگه...
این خود مثلث:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
اینم روش مورد نظر منه:
1 5 10 10 5 1
1 1 4 6 4 1
1 2 1 3 3 1
من متوجه نشدم این سوال با مثلث خیام چه ربطی دارد،
منظورتان از کمتر جا گرفتن چیه.
بر طبقه چیزی که نوشته شده، در سطر اوّل ۱ ، سطر دوم ۲ ، سطر سوم ۳ ، سطر چهارم ۴ ، ...عدد هست. ، اگر منظور از کمترین جا ۱ینه که این اعداد را در یک مربع سعی کنیم جا بدیم، جوابی که شما دادید درسته، و هر جواب دیگری که اعداد را در مربع بتونه جا بده هم درسته، به جایه استفاده از مثلثه خیام، میتونید از اینکی مثلث استفاده کنید که واضحتر باشه.


۱
۲۲
۳۳۳
۴۴۴۴
۵۵۵۵۵
۶۶۶۶۶۶
۷۷۷۷۷۷۷

۱

۱
۲۲

۱۲۲
۳۳۳

۱۴۴۴۴
۲۲۳۳۳

۱۴۴۴۴
۲۲۳۳۳
۵۵۵۵۵

۱۶۶۶۶۶۶
۲۲۵۵۵۵۵
۳۳۳۴۴۴۴

۱۶۶۶۶۶۶
۲۲۵۵۵۵۵
۳۳۳۴۴۴۴
۷۷۷۷۷۷۷

ayub_amature
چهارشنبه 06 اردیبهشت 1385, 21:28 عصر
من میخوام که حجم ذخیره سازی رو پایین بیارم و در عین حال این اعداد (برای ضریب دو جمله ای)
قابل بازیاببی باشند.

bichare
چهارشنبه 06 اردیبهشت 1385, 21:58 عصر
با سلام
من اگه خواسته باشم یه برنامه پسکال بنویسم به کجا باید مراجعه کنم برای کمک:متفکر:

اَرژنگ
چهارشنبه 06 اردیبهشت 1385, 23:44 عصر
من میخوام که حجم ذخیره سازی رو پایین بیارم و در عین حال این اعداد (برای ضریب دو جمله ای)
قابل بازیاببی باشند.
حجم ذخیره سازی چی را پائین بیارید؟
حساب کردن مثلث خیام ؟ برای ضریب دو جمله ای را میتونید بدون هیچ ذخیره کردنی حساب کنید.
لطفاً یکمی بیشتر توضیح :چشمک:

ayub_amature
پنج شنبه 07 اردیبهشت 1385, 06:03 صبح
ببین آژنگ عزیز روش معمول بدست آوردن ضریب دوجمله ای برنامه بازگشی هستش !
اما من میخوام برنامه غیر بازگشتی انرو جوری پیاده کنم که ماتریسم فضای خالی بلا استفاده نداشته باشه ! تو برنامه اصلی ما مجبوریم که جاهایی رو که از ماتریس خالی میمونه با صفر پر کنیم . من میخوام با این روش به جا صفر ها اعداد سطرهای پایینی رو قرار بدم تا هم سرعت بیشتر بشه و هم حافظه استفاده شده کم؟!

اَرژنگ
شنبه 09 اردیبهشت 1385, 04:54 صبح
ببین آژنگ عزیز روش معمول بدست آوردن ضریب دوجمله ای برنامه بازگشی هستش !

معمولی؟ کی همچین چرندیاتی را به شما گفته؟، اگر در کلاس اینا را یادتان میدن، چرند گفتند، ازشان دلیل بخواهید، من نمیفهمم علت اینکه میگن همه چی باید بازگشتی باشه چیه؟ فاکتوریل ، فیبوناچی ، پاسکال، ..
تنها وقتی که از روش بازگشتی استفاده میشه ،وقتیه که روش مستقیم معلوم نیست و یا اینکه عرضه کردن مسئله به روش بازگشتی ساده تر از روش مستقیمه.
اما اینکه شما در جستجوجیه روش بهتر هستید اینرا میروسنه که خیلی ترقی خواهید کرد، درود بر شما


اما من میخوام برنامه غیر بازگشتی انرو جوری پیاده کنم که ماتریسم فضای خالی بلا استفاده نداشته باشه ! تو برنامه اصلی ما مجبوریم که جاهایی رو که از ماتریس خالی میمونه با صفر پر کنیم . من میخوام با این روش به جا صفر ها اعداد سطرهای پایینی رو قرار بدم تا هم سرعت بیشتر بشه و هم حافظه استفاده شده کم؟!
یعنی شما میگید که که اگر سومین ضریبه توانه ۱۰ دو جمله ای را میخواهید باید تمامه ضریبها را تا تا توان ۹ داشته باشید؟
اگر که جوابتان بله است، خیر!
این فرمولk اُمین ضریبه توانه n را میده:


n!/[(n-k)!k!]

با این ترتیب شما نه به ماتریس احتیاج دارید و نه اینکه بخواهید سایزش را کمتر کنید.:لبخند:

ayub_amature
شنبه 09 اردیبهشت 1385, 05:50 صبح
خیلی ممنون از راهنماییت آزنگ عزیز!

ayub_amature
شنبه 09 اردیبهشت 1385, 05:53 صبح
من روشی پیاده کردم که به این فاکتوریل ها نیازی نباشه!

اَرژنگ
یک شنبه 10 اردیبهشت 1385, 05:37 صبح
من روشی پیاده کردم که به این فاکتوریل ها نیازی نباشه!
چه روشی که به این فاکتوریل ها نیازی نباشه؟

ayub_amature
دوشنبه 11 اردیبهشت 1385, 19:40 عصر
اگه با یه آرایه تابع اش رو بنویسی نیاز به فاکتوریل نیست

اَرژنگ
سه شنبه 12 اردیبهشت 1385, 01:50 صبح
اگه با یه آرایه تابع اش رو بنویسی نیاز به فاکتوریل نیست
تابع چی رو با چه آرایه‌ای؟ مگر مشیه با آرایه تابع نوشت؟

ayub_amature
سه شنبه 12 اردیبهشت 1385, 05:17 صبح
به جای استفاده از فاکتوریل میتونی از یه ماتریس استفاده کنی که هر سطرش از حاصل جمع عناصر سطر بالایی بدست میاد
بعد از بدست آوردن سطر مورد نظر سطر قبلی رو پاک کنی و این کار رو انقدر ادامه بدی که به ضریب مورد نظرت برسی!

اَرژنگ
سه شنبه 12 اردیبهشت 1385, 05:25 صبح
به جای استفاده از فاکتوریل میتونی از یه ماتریس استفاده کنی که هر سطرش از حاصل جمع عناصر سطر بالایی بدست میاد
بعد از بدست آوردن سطر مورد نظر سطر قبلی رو پاک کنی و این کار رو انقدر ادامه بدی که به ضریب مورد نظرت برسی!
با این روش اگر چهارمین ضریبه توانه ۱۰ را بخواهید باید از سطر اول شروع کنید، و باید یک ماتریس هم داشته باشید، هزینه حساب کردنش بالاست.

msnasiri
چهارشنبه 11 مرداد 1385, 19:49 عصر
آقا آرش می خواستم ببینم رابطه فیبوناچی بدون بازگشت چیه همچنین فاکتوریل.
مرسی

melina85
جمعه 24 اردیبهشت 1389, 20:28 عصر
حجم ذخیره سازی چی را پائین بیارید؟
حساب کردن مثلث خیام ؟ برای ضریب دو جمله ای را میتونید بدون هیچ ذخیره کردنی حساب کنید.
لطفاً یکمی بیشتر توضیح :چشمک:


لطفابرنامه اش را بنویسید به زبان C#‎
اصلااساس کار چیست