Numeri Complessi

Vedi tutte le pagine e le modifiche recenti o scarica i sorgenti nella pagina


(perl cb 2.14)

Può capitare di fare calcoli avanzati in ruby, e ruby offre un ampio supporto a numeri di dimensioni arbitrarie, decimali, razionali, complessi, etc… Supponendo che dobbiate manipolare numeri complessi, basta caricare la libreria apposita, inclusa nella libreria standard, ed istanziarli:
 >> require 'complex'
 => true
 >> a=Complex.new 10, 20
 => Complex(10, 20)
 >> a+ 15
 => Complex(25, 20)
 >> 10+a
 => Complex(20, 20)
possiamo usre anche la notazione polare:
 >> Complex.polar 100, 45 #raggio, gradi
 => Complex(52.532198881773, 85.0903524534118)
Come vedete è semplicissimo, e grazie alle potenzialità di ruby, anche i metodi già esistenti possono gestire numeri complessi, senza intaccare il funzionamento di base:
 >> Math.sqrt 10
 => 3.16227766016838
 >> require 'complex'
 => true
 >> Math.sqrt( Complex.new(1,2))
 => Complex(1.27201964951407, 0.786151377757423)
 >> Math.sqrt 10
 => 3.16227766016838

La libreria standard di ruby non ha problemi a lavorare con i complessi e si comporta correttamente, ad esempio YAML è in grado di serializzarli correttamente:

 >> require 'complex'
 => true
 >> require 'yaml'
 => true
 >> Complex(1,2).to_yaml
 => "--- 1+2i" 
Updated on November 29, 2005 16:21 by Gabriele Renzi (151.37.158.94)