Cabaran Mingguan 293
Setiap minggu Mohammad S. Anwar menghantar Cabaran Mingguan, peluang untuk kita semua mencari penyelesaian kepada dua tugas mingguan. Penyelesaian saya ditulis dalam Python terlebih dahulu, dan kemudian ditukar kepada Perl. Ini cara yang bagus untuk kita semua mempraktikkan beberapa pengekodan.
Cabaran, Penyelesaian saya
Tugasan 1: Domino yang serupa
Tugasan
Anda diberi senarai domino, @domino.
Tulis skrip untuk mengembalikan bilangan domino yang serupa dengan mana-mana domino lain.
$dominos[i] = [a, b] dan $dominos[j] = [c, d] adalah sama jika sama ada (a = c dan b = d) atau (a = d dan b = c).
penyelesaian saya
Saya tidak pasti sama ada ia bahasa Inggeris/AS atau sesuatu yang lain, tetapi saya menggunakan Domino sebagai jamak Domino. Domino apa yang anda dapat apabila anda lapar.
Untuk tugasan ini, saya mengambil integer daripada baris arahan dan menukarnya kepada senarai senarai (tatasusunan tatasusunan dalam Perl). Jika ini projek dunia sebenar, saya mungkin akan menggunakan Kelas Data dan mempunyai pengendali kesamarataan.
Saya mempunyai gelung berganda. Gelung luar - dipanggil i - adalah dari 0 hingga satu kurang daripada bilangan domino. Gelung dalam - dipanggil j - juga sama. Saya melangkau kes apabila i dan j adalah sama. Jika domino pada kedudukan i dan j adalah sama (sama ada nombor yang sama atau nombor bertentangan), saya menambah satu untuk mengira dan keluar dari gelung dalam.
def similar_dominoes(dominoes: list) -> int: count = 0 for i in range(len(dominoes)): for j in range(len(dominoes)): if i == j: continue if (dominoes[i][0] == dominoes[j][0] and dominoes[i][1] == dominoes[j][1]) \ or (dominoes[i][0] == dominoes[j][1] and dominoes[i][1] == dominoes[j][0]): count += 1 break return count
Contoh
$ ./ch-1.py 1 3 3 1 2 4 6 8 2 $ ./ch-1.py 1 2 2 1 1 1 1 2 2 2 3
Tugasan 2: Boomerang
Tugasan
Anda diberi tatasusunan mata, (x, y).
Tulis skrip untuk mengetahui sama ada mata yang diberikan adalah bumerang.
Bumerang ialah satu set tiga titik yang semuanya berbeza dan bukan dalam garis lurus.
penyelesaian saya
Seperti tugasan terakhir, saya mengambil integer daripada baris arahan dan menukarnya kepada senarai senarai (tatasusunan tatasusunan dalam Perl).
Saya cukup ingat dari matematik sekolah menengah untuk mengetahui bahawa kita boleh mendapatkan cerun (kecerunan) dua mata dengan formula (x2 - x1) ÷ (y2 - y1). Namun jika y1 dan y2 adalah sama, kita mendapat pembahagian dengan ralat sifar.
Oleh itu saya menggunakan semakan berikut:
- Jika semua nilai y (item kedua dalam setiap senarai) adalah sama, kembalikan Salah apabila titik membuat garis rata.
- Jika mana-mana nilai y adalah sama dengan nilai y pertama, kembalikan Benar (seperti yang kita tahu sekurang-kurangnya satu nilai y adalah berbeza).
- Kira slop mutlak antara titik pertama dan titik lain menggunakan formula di atas. Simpan ini sebagai satu set. Set tidak menyimpan nilai pendua.
- Jika set hanya mempunyai satu nilai, ia adalah garis lurus dan kembalikan Salah. Jika terdapat lebih daripada satu nilai, maka ia adalah bumerang. Saya tidak di sini untuk menentukan sama ada ia adalah bumerang yang bagus :)
def is_boomerang(points: list) -> bool: if all(points[0][1] == points[i][1] for i in range(1, len(points))): return False if any(points[0][1] == points[i][1] for i in range(1, len(points))): return True degrees = set(abs((points[0][0] - points[i][0]) / (points[0][1] - points[i][1])) for i in range(1, len(points))) return False if len(degrees) == 1 else True
Contoh
$ ./ch-2.py 1 1 2 3 3 2 true $ ./ch-2.py 1 1 2 2 3 3 false $ ./ch-2.py 1 1 1 2 2 3 true $ ./ch-2.py 1 1 1 2 1 3 false $ ./ch-2.py 1 1 2 1 3 1 false $ ./ch-2.py 0 0 2 3 4 5 true
Atas ialah kandungan terperinci Bumerang yang serupa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver Mac版
Alat pembangunan web visual

Dreamweaver CS6
Alat pembangunan web visual