Đã đến lúc tê liệt với Ruby!
Mar 24 2023
Một lần nữa cảm thấy nhàm chán với việc lập trình hoặc cần một số thứ mới để chơi với một ngôn ngữ lập trình thú vị hơn? Không còn nghi ngờ gì nữa, một lần nữa chúng ta sẽ tiếp tục loạt bài với sự tuyệt vời của Ruby. Hãy một lần nữa đi sâu vào thế giới của những con số qua con tàu ruby! Hmm, ngay từ thời trung học, chúng tôi đã cố gắng tìm các thừa số của một số bằng tay nhưng chưa bao giờ nghĩ đến việc sử dụng các mẫu chung hoặc bất kỳ thuật toán tốt nào cho công việc tẻ nhạt/nhàm chán này.
Một lần nữa cảm thấy nhàm chán với việc lập trình hoặc cần một số thứ mới để chơi với một ngôn ngữ lập trình thú vị hơn?
Không còn nghi ngờ gì nữa, một lần nữa chúng ta sẽ tiếp tục loạt bài với sự tuyệt vời của Ruby.
Hãy một lần nữa đi sâu vào thế giới của những con số qua con tàu ruby!
Hmm, ngay từ thời trung học, chúng tôi đã cố gắng tìm các thừa số của một số bằng tay nhưng chưa bao giờ nghĩ đến việc sử dụng các mẫu chung hoặc bất kỳ thuật toán tốt nào cho công việc tẻ nhạt/nhàm chán này.
Vì vậy, hãy xem việc triển khai nó có thể thú vị như thế nào trong lớp Ruby Integer :
class Integer
def factors
1.upto(Math.sqrt(self)).select {
(self % _1).zero?
}.inject([]) {
_1 << _2 << self / _2
}.uniq.sort
end
end
pp 450.factors #=> [1, 2, 3, 5, 6, 9, 10, 15, 18, 25, 30, 45, 50, 75, 90, 150, 225, 450]
- Vì vậy, trước hết chúng ta định nghĩa phương thức factor này bên trong lớp Integer để chúng ta có thể dễ dàng sử dụng nó với tên Integer.factors .
- Bên trong phương pháp, trước tiên chúng ta di chuyển (đi qua) qua toàn bộ số 1 đến căn bậc hai của số mà chúng ta muốn có các thừa số của .
- Sau đó, chúng tôi lọc danh sách để chỉ nhận các số có thể chia số của chúng tôi, tức là tự sử dụng “(self % _1).zero?” .
- Sau đó, chúng tôi xâu chuỗi nó bằng phương thức tiêm để đưa các số vào mảng của các thừa số bằng cách sử dụng “_1 << _2 << self / _2" trong đó _1 là mảng thừa số _2 và self/_2 là thừa số của các số sẽ được chèn vào Nó .
- Cuối cùng, chúng tôi sử dụng phương thức sắp xếp và uniq để trả về các yếu tố duy nhất và được sắp xếp dưới dạng một mảng.

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































