علیرضا
5 ماه پیش توسط علیرضا مطرح شد
10 پاسخ

چاپ ماتریس مربعی

سلام
چجوری میشه این الگو رو چاپ کرد بدون ماتریس
مثلا اگه عدد n = 5 بود به این شکل میشه در تصویر زیر
تصویر

اگه عدد وارد شده 4 باشه بود به همون شکل از 1 میره تا 4 دوباره لاین بعد از 8 میره تا 5 به صورت صعودی و نزولی هس
-بدون ماتریس کسی میتونه.-
@Raymond
@saghari
@Farzadameri
@salar.mohammad2013
@mahdi.nazari
@mhyeganeh
@hesammousavi


ثبت پرسش جدید
علیرضا
@alireza.gh147 5 ماه پیش آپدیت شد
0

کسی نمیتونه با استفاده از نگهداری و تغییر وضعیت و بدون استفاده از فضای ماتریسی این الگوریتم رو انجام بده.


محمد حسین
تخصص : mevn stack
@saghari 5 ماه پیش آپدیت شد
0

فکر کنم اینطوری بشه البته پایتون خیلی حرفه ای نیستم

def createMatrix(rows):
    matrix = []
    for i in range(rows):
        matrix.append([])
        for j in range(rows):
            if i % 2 == 0:
                matrix[i].append((rows * i) + (j + 1))
            else:
                matrix[i].append((rows * (i + 1)) - j)
    return matrix

createMatrix(5)

علیرضا
@alireza.gh147 5 ماه پیش آپدیت شد
0

ممنون ولی با ماتریس رو انجام دادم بدون استفاده از ماتریس رو میخوام ببینم چجوری میشه الیته الگوریتمش رو تا حدودی نوشتم ولی تو نوشتن برنامه به مشکل خوردم
 تصویر
@saghari


محمد حسین
تخصص : mevn stack
@saghari 5 ماه پیش مطرح شد
0

منظورت رو از بدون ماتریس نفهمیدم
اگه منظورت اینه که خروجی که چاپ میشه لیست نباشه و خروجی مثلا اینطوری باشه

print('1 2 3 4')
print('8 7 6 5')

میتونی با حلقه فور انجامش بدی
اگه درست نگفتم منظورت رو واضح تر بگو چون درست متوجه نشدم


محمد حسین
تخصص : mevn stack
@saghari 5 ماه پیش مطرح شد
0

فکر کنم منظورت این باشه

def printNums(rows):
    for i in range(rows):
        for j in range(rows):
            if i % 2 == 0:
                print((rows * i) + (j + 1))
            else:
                print((rows * (i + 1)) - j)

printNums(4)

علیرضا
@alireza.gh147 5 ماه پیش آپدیت شد
0

اره این اوکی هست مچکر ولی اگه بخواییم با استفاده از نگه داشتن و تغییر وضعیت این کارو کنیم چی میشه مثلا یه flag داشته باشیم و وضعیت رو تغییر بدیم و اعداد رو چاپ کنیم (بدون اشتغال کردن فضای ماتریسی از حافظه)اگه n = 3 باشه میشه n در n , اگه n = 5 باشه n د ر n و ... اگه منظورم واضح نیست تا الگوریتمش رو بگم
@saghari


محمد حسین
تخصص : mevn stack
@saghari 5 ماه پیش مطرح شد
0

بازم متوجه نشدم الگوریتمیش رو بگو


علیرضا
@alireza.gh147 5 ماه پیش آپدیت شد
0

 تصویر
d
مثلا کاربر عدد n رو 4 میده (n = 4) به این شکل 1 تا 4 بعد لاین بعد از 8 میره تا 5 در اصل به صورت رفت و برگشتی یه flag میزاریم سطر های فرد رو false و سطر های زوج true هستن و با تغییر وضعیت این کار رو انجام میدیم اگه flag = Falseبود به صورت صعودی حرکت میکنه True بود به صورت نزولی میاد به همین ترتیب
@saghari


محمد حسین
تخصص : mevn stack
@saghari 5 ماه پیش مطرح شد
0

مگه نگفتی بدون ماتریس خب اینی که گفتی ماتریسه که
توی همون پاسخ اولم من همین کارو کردم میاد چک میکنه اگه سطر فرد بود صعودی میره اگه زوج بود نزولی
مثلا اگه بهش 4 بدی اینو ریترن میکنه

[
    [1, 2, 3, 4],
    [8, 7, 6, 5],
    [9, 10, 11, 12],
    [16, 15, 14, 13]
]

علیرضا
@alireza.gh147 5 ماه پیش مطرح شد
0

درسته ولی من بدون ماتریس میخوام همون که فرستادی با حلقه فور نوشتی ولی با استفاده از نگه داشتن یه وضعیت تو پاسخ قبلیم قشنگ توضیح دادم داخل عکس هم واضح هست با استفاده از اون وضعیت از راست به چپ یا ازچپ به راست حرکت میکنه مثلا یه متغیر به اسم Flag بگیری.


علیرضا
@alireza.gh147 5 ماه پیش آپدیت شد
0

کسی نمیتونه با استفاده از نگهداری و تغییر وضعیت و بدون استفاده از فضای ماتریسی این الگوریتم رو انجام بده.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام