È il momento di Numb-ers con Ruby!
Mar 24 2023
Ancora una volta ti annoi dalla programmazione o hai bisogno di alcune cose nuove da giocare con un linguaggio di programmazione più interessante? Senza dubbio, ancora una volta avremmo continuato la serie con la freddezza di Ruby. Immergiamoci ancora una volta nel mondo dei numeri attraverso la nave di Ruby! Hmm quindi anche dal liceo abbiamo cercato di trovare i fattori di un numero tutto a mano ma non abbiamo mai pensato di utilizzare schemi comuni o di un buon algoritmo per il compito noioso/noioso.
Ancora una volta ti annoi dalla programmazione o hai bisogno di alcune cose nuove da giocare con un linguaggio di programmazione più interessante?
Senza dubbio, ancora una volta avremmo continuato la serie con la freddezza di Ruby.
Immergiamoci ancora una volta nel mondo dei numeri attraverso la nave di Ruby!
Hmm quindi anche dal liceo abbiamo cercato di trovare i fattori di un numero tutto a mano ma non abbiamo mai pensato di utilizzare schemi comuni o di un buon algoritmo per il compito noioso/noioso.
Quindi vediamo quanto può essere interessante la sua implementazione nella classe 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]
- Quindi, prima di tutto stiamo definendo questo metodo di fattori all'interno della classe Integer in modo che possiamo usarlo facilmente con as Integer.factors .
- All'interno del metodo per prima cosa viaggiamo (attraversiamo) attraverso il numero intero 1 fino alla radice quadrata del numero di cui vogliamo avere fattori di .
- Quindi filtriamo l'elenco per ottenere solo i numeri che possono dividere il nostro numero, ad esempio self utilizzando "(self % _1).zero?" .
- Quindi l'abbiamo concatenato con il metodo inject per inserire i numeri nell'array dei fattori usando "_1 << _2 << self / _2" dove _1 è l'array dei fattori _2 e self/_2 sono i fattori dei numeri che devono essere inseriti in Esso .
- Alla fine usiamo il metodo uniq e sort per restituire fattori univoci e ordinati come un array.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































