Jika Anda ingin membuat kotak ajaib, periksa artikel ini, kode python di bagian bawah – Cara membuat kotak ajaibKotak ajaib adalah susunan bilangan dari 1 sampai N^2 (N-kuadrat) dalam matriks NxN, dengan setiap bilangan muncul tepat satu kali, dan jumlah entri dari setiap baris, sembarang . Sesuatu seperti ini. Tugas kode python adalah mendapatkan persegi dengan dimensi apa saja dan menentukan apakah itu persegi ajaib atau bukan. Ini adalah masukan yang mungkin. Show
Lapangan Ajaib Piton1 2 3 4 5 cetak(magic_square([[1,2,3], [4,5,6], [7,8,9]])) cetak(magic_square([[4,9,2], [3,5,7], [8,1,6]])) cetak(magic_square([[7,12,1,14], [2,13,8,11], [16,3,10,5], [9,6,15,4]])) cetak(magic_square([[23, 28, 21], [22, 24, 26], [27, 20, 25]])) cetak(magic_square([[16, 23, 17], [78, 32, 21], [17, 16, 15]])) Bagaimana hasilnya ditentukan? Dalam kasus saya, saya membuat daftar dan menambahkan jumlah semua garis vertikal dan horizontal. Lalu saya menambahkan dua diagonal. Pada akhirnya, saya memeriksa apakah semua nilai dalam daftar itu sama. Jika mereka sama, ini berarti bujur sangkar itu ajaib. Ini adalah nilai dari daftar dan hasilnya Kami sebelumnya melihat pengindeksan vektor 1 dimensi. Kami juga dapat mengindeks array yang lebih rumit seperti matriks. Dalam contoh ini kita akan membuat kotak ajaib, kotak ajaib adalah larik persegi di mana jumlah setiap kolom, baris, diagonal dan anti-diagonal adalah sama. Untuk melakukan ini, kita perlu menggunakan fungsi perpustakaan pihak ketiga magic_square. Kami akan mengimpornya sebagai ms. Jika Anda belum menginstal perpustakaan ini, gunakan Piton Membuat Kotak AjaibSetelah kami memiliki pustaka ini, kami dapat mengimpor prasyarat NumPy sebagai np dan pustaka magic_square sebagai ms Piton
Mari kita lihat dulu dimensi matriks menggunakan bentuk fungsi Piton _ Ini mengembalikan jumlah baris dan jumlah kolom masing-masing. Karena merupakan persegi, keduanya memiliki nilai yang sama yaitu 5. Ingat kita menggunakan pengindeksan urutan 0, yang berarti kita mulai dari elemen ke-0 dan naik ke tetapi tidak menyertakan batas atas 5 ini, sehingga elemen maksimum adalah elemen ke-4. Kita bisa melihat ini ketika kita membuka variabel s di explorer variabel Mengindeks Elemen TunggalUntuk memilih satu elemen misalnya elemen s pada baris 0 dan kolom 0 kita dapat menggunakan tanda kurung siku untuk mengindeks menjadi s. Pembatas koma digunakan untuk memisahkan elemen baris dari elemen kolom Piton
Kita bisa mencoba juga untuk baris 1 dan kolom 3 Piton
Piton _ Seperti yang kita lihat saat mengindeks dengan vektor, juga dimungkinkan untuk mengindeks menggunakan elemen negatif. Untuk ketiga nilai di atas mereka juga dapat ditentukan sebagai Piton
Piton
Piton _ Pengindeksan Banyak NilaiDimungkinkan juga untuk memilih beberapa elemen. Misalnya jika kita menginginkan elemen di baris ke-1 dan kolom ke-2 dan elemen di baris ke-3 dan kolom ke-4, kita akan menggunakan. Perhatikan bahwa elemen baris diapit tanda kurung siku menggunakan koma sebagai pembatas. Elemen dalam kolom juga diapit oleh tanda kurung siku menggunakan koma sebagai pembatas. Dan keduanya diapit di luar tanda kurung siku, sekali lagi dengan pembatas di antara keduanya Piton _ Dimungkinkan juga untuk membuat pilihan menggunakan titik dua. Katakanlah kita ingin baris 1 sampai 3 (ingat dengan pengindeksan urutan 0 kita pergi ke batas atas 3 ini tetapi tidak memasukkannya), jadi ini adalah baris 1 dan baris 2 dan kita ingin keduanya berada di kolom 1 yang bisa kita gunakan Piton _ Titik dua juga dapat digunakan untuk memilih baris atau kolom penuh. Mari kita ambil baris pertama misalnya Piton _0 Mengindeks Baris, Kolom, dan DiagonalDalam kotak ajaib, semua baris, kolom, dan diagonal memiliki nilai yang sama. Untuk kotak ajaib, periksa ini menggunakan pengindeksan baris atau kolom, fungsi penjumlahan, fungsi diag, dan fungsi fliplr. Saya menyarankan Anda untuk mencoba yang ini sebelum membaca di bawah untuk latihan Mari kita mulai dengan lima baris Piton _1 Piton _2 Piton _3 Piton _4 Piton _5 Sejauh ini bagus, 5 baris semuanya memiliki jumlah 65, sekarang mari kita ulangi dengan 5 kolom Piton _6 Piton _7 Piton _8 Piton _9 Piton 0 Sejauh ini bagusnya lagi, semua kolom juga berjumlah 65 Untuk diagonal kita bisa menggunakan fungsi diag Piton 1 Sekali lagi sama dengan 65. Untuk antidiagonal, kita perlu membalikkan matriks ke kiri ke kanan. Piton Membuka sfliplr di explorer variabel dan membandingkannya dengan yang di atas Kita melihat bahwa diagonal baru adalah antidiagonal sebelumnya, jadi kita dapat menggunakan fungsi diag Piton 2 Kita sekarang melihat jumlah dari anti-diagonal juga sama dengan 65 artinya persegi ajaib yang dibuat memang persegi ajaib Skrip LengkapUntuk kenyamanan saya akan meletakkan semua kode untuk menentukan panjang kotak ajaib ini dalam satu file skrip Apa algoritma untuk kotak ajaib?Kotak ajaib dalam keadaan normal direpresentasikan menggunakan matriks n × n . Kotak ajaib normal berisi bilangan bulat dari 1 sampai n2. Kotak ajaib normal ada untuk semua pesanan n ≥ 1, kecuali n = 2. Konstanta ajaib untuk kuadrat ajaib normal berorde n diberikan oleh n(n2 + 1)/2.
Apakah kotak ajaib merupakan susunan angka dengan Python?Kotak ajaib adalah susunan angka yang berbeda (mis. e. , setiap angka digunakan sekali), biasanya bilangan bulat, dalam kotak persegi, di mana angka di setiap baris, dan di setiap kolom, dan angka di diagonal utama dan sekunder, semuanya dijumlahkan menjadi angka yang sama, yang disebut "magic . " Kotak ajaib memiliki hal yang sama
Bagaimana Anda memecahkan persegi ajaib 3x3?Menyelesaikan Persegi 3 kali 3
. Ambil jumlah dari setiap angka di papan tulis dan bagi dengan jumlah baris . Dalam hal ini, angka ajaibnya adalah 1+2+… +9 = 45/3 = 15. |