نمایش نتایج 1 تا 7 از 7

نام تاپیک: ذخیره ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی

  1. #1

    Question ذخیره ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی

    سلام
    چه طور میشه ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی ذخیره کرد یا حداقل فرمول بدست آوردن
    محل ذخیره شدن در آرایه یک بعدی چیه؟

  2. #2

    نقل قول: ذخیره ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی

    سلام
    می شه بیشتر توضیح بدید؟

  3. #3
    کاربر دائمی آواتار pedram.11
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    پشت کامپیوتر
    پست
    394

    نقل قول: ذخیره ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی

    سلام چون ماتریس های بالا مثلثی و پایین مثلثی ماتریس مربعی هستن تعداد سطر وستون رو با استفاده از طول آرایه ی یک بعدی(با جذر) میشه بدست آورد، حالا چون شما میخوای آرایه ی دوبعدی رو در آرایه ی یک بعدی ذخیره کنی میتونی با قانون خودت مثلا به ترتیب از سطر و ستون 1 و 1 تا سطر و ستون n و n رو در آرایه بریزی و موقع خوندن هم همین قانون رو رعایت کنی.

  4. #4

    نقل قول: ذخیره ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی

    با سلام به شما دوست عزیز

    شما می تونی اعداد ماتریس رو با ذکر شماره سطر و ستون اون ها توی آرایه ذخیره کنی. یعنی مقادیر توی خونه های آرایه به این صورت باشه:

    عدد/شماره سطر/شماره ستون

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

    مثلا یه ماتریس 3*3 :
    0و0و1
    0و1و2
    1و3و4

    آرایه: 2/2/1 - 4/3/1 - 3/3/2
    همونجوی که میبینی موقع بازخوانی جای هر عدد مشخصه ، هرجا که شماره سطر و ستون برابر شد مقدارش میشه یک و هرجا که شماره سطر از شماره ستون کمتر بود مقدارش میشه صفر.
    موفق باشی

  5. #5
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: ذخیره ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی

    یا میتونی فقط یک طرف آرایه رو ذخیره کنی.البته اگر بدونی این فرمول چیه:
    N=(L^2+L)/2
    واقعا الان اعصاب حل کردن فرمول و نوشتنش رو ندارم ولی اگر خودت حوصلش رو داری با این فرمول میتونی حلش کنی.

  6. #6
    کاربر جدید
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    teh
    سن
    33
    پست
    1

    نقل قول: ذخیره ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی

    سلام
    چطوری میشه بر عکس این کارو انجام داد؟؟؟
    یعنی آرایه یک بعدی رو به ماتریس بالا مثلثی تبدیل کرد؟

  7. #7
    کاربر دائمی آواتار pedram.11
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    پشت کامپیوتر
    پست
    394

    نقل قول: ذخیره ماتریس پایین مثلثی به صورت ستونی در آرایه یک بعدی

    سلام:
    static int[] get1D(int[][] m)
    {
    int l0=m.GetLength(0);
    int l = l0*(l0+1)/2;
    int[] ar = new int[l];
    int ind = 0;
    for (int i = 0; i < l0; i++)
    for (int j = 0; j <= i; j++)
    ar[ind++] = m[i][j];
    return ar;
    }
    static int[][] get2D(int[] m)
    {
    int l0 = m.Length;
    int l = l0 * 2;
    int rdelta = (int)Math.Sqrt(1 + 4 * l);
    int r = (-1 + rdelta) / 2;
    int[][] ar = new int[r][];
    int ind=0;
    for (int i = 0; i < r; i++)
    {
    ar[i] = new int[r];
    for (int j = 0; j <= i; j++)
    ar[i][j] = m[ind++];
    }
    return ar;
    }


    اولی ماتریس پایین مثلثی رو یک بعدی و دومی هم برعکسشو انجام میده.
    واسه تست هم:
    int[][] ar = {
    new int[]{1,0,0,0,0},
    new int[]{2,3,0,0,0},
    new int[]{4,5,6,0,0},
    new int[]{7,8,9,10,0},
    new int[]{11,12,13,14,15}};
    int[] x = get1D(ar);
    int[][] x2 = get2D(x);

تاپیک های مشابه

  1. نحوه ذخیره سازی ماتریس پایین مثلثی ( ستونی )
    نوشته شده توسط nefrat در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 6
    آخرین پست: جمعه 03 آبان 1392, 11:45 صبح
  2. ماتریس پایین مثلثی
    نوشته شده توسط giootin_tiz در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: جمعه 30 فروردین 1392, 14:03 عصر
  3. ماتریس پایین مثلثی و بالا مثلثی
    نوشته شده توسط maha19 در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 3
    آخرین پست: جمعه 30 فروردین 1392, 11:05 صبح
  4. ذخیره سازی دادها به صورت پایین مثلثی
    نوشته شده توسط mvb_mehran در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 3
    آخرین پست: یک شنبه 21 فروردین 1390, 20:15 عصر
  5. ماتریس پایین مثلثی به آرایه
    نوشته شده توسط emadfa در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 1
    آخرین پست: پنج شنبه 22 مهر 1389, 14:15 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •