انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تمام حالات ترکیب اعداد (متلب - MATLAB)

تمام حالات ترکیب اعداد (متلب - MATLAB)

#1
Exclamation 
سلام، من میخوام برنامه تشکیل جدول COPT که تو مهندسی برق مورد استفاده قرار می گیره رو تو متلب بنویسم منتهی تو نوشتن اون به مشکل خوردم.
برنامه به این صورته که شما یه سری اعداد دارین و باید تمام حالاتی که این اعداد می تونن با هم جمع بشن رو تشکیل بدین
مثلا اعداد ورودی شما به این صورته :
120 , 450 , 250
و من میخوام برنامه ای بنویسم که خروجی اون تمام حالات جمع این اعداد با هم باشه یعنی :
120 , 250 , 370 , 450 , 570 , 700 , 820

روشی که به ذهن خودم رسیده اینه که به تعداد اعداد حالت های مختلف باینری اون رو تولید کنم یعنی مثلا تو این مثال می تونم با دستور 
(ff2n(3 انواع حالت های ترکیب 3 عدد مثال بالا رو به صورت باینری بنویسم اینجوری :
0 0 0
1 0 0
0 1 0
0 0 1
1 1 0
1 0 1
0 1 1
1 1 1

بعد با دستور های if و for میشه جمعشون کرد.

ولی مشکل اینجاست که اگه تعداد اعداد زیاد بشه دستور ff2n ارور میده و نمی تونه اونا رو تولید کنه مثلا برای 32 تا عدد ارور میده که برای تولید این تعداد عدد باینری به 1 گیگ فضا احتیاج داره و برا تولید 136 تا عدد کلا دستور ارور میده.

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

تمام حالات ترکیب اعداد (متلب - MATLAB)

#2
سلام.
برای به دست آوردن تمام دنباله های باینری (Binary) امکان پذیر، می توانید از کد متلب (MATLAB) زیر استفاده نمایید :

کد پی‌اچ‌پی:
clear all
close all
clc

n
=3;
dec2bin(2^n-1:-1:0)-'0'
flipud(A

3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
نتیجه اجرای کد متلب (MATLAB) بالا :

کد پی‌اچ‌پی:
=

     
1     1     1
     1     1     0
     1     0     1
     1     0     0
     0     1     1
     0     1     0
     0     0     1
     0     0     0


=

     
0     0     0
     0     0     1
     0     1     0
     0     1     1
     1     0     0
     1     0     1
     1     1     0
     1     1     1 


Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان