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

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

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

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


ثبت پرسش جدید
علیرضا
علیرضا
@alireza.gh1472 سال پیشمطرح شد
0

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


محمد حسین
محمد حسین
تخصص :mevn stack
@saghari2 سال پیشمطرح شد
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.gh1472 سال پیشمطرح شد
0

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

@saghari


محمد حسین
محمد حسین
تخصص :mevn stack
@saghari2 سال پیشمطرح شد
0

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

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

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


محمد حسین
محمد حسین
تخصص :mevn stack
@saghari2 سال پیشمطرح شد
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.gh1472 سال پیشمطرح شد
0

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


محمد حسین
محمد حسین
تخصص :mevn stack
@saghari2 سال پیشمطرح شد
0

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


علیرضا
علیرضا
@alireza.gh1472 سال پیشمطرح شد
0



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


محمد حسین
محمد حسین
تخصص :mevn stack
@saghari2 سال پیشمطرح شد
0

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

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

علیرضا
علیرضا
@alireza.gh1472 سال پیشمطرح شد
0

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


علیرضا
علیرضا
@alireza.gh1472 سال پیشمطرح شد
0

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


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

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