From: Daniel Jovanovski Date: 2010-11-06T02:00:16+09:00 Subject: Conta occorrenze in Hash 1) procedura coppie_frequenti() che stampi l'elenco delle coppie di parole [p1 p2] tali che nell'array la parola p1 sia immediatamente seguita da p2 almeno 10 volte. L'output dovrebbe essere quindi qualcosa del tipo: [diritto di]: 13 volte [la legge]: 21 volte [può essere]: 12 volte Come si fa a contate le occorrenze nell'hash usando come chiave una coppia di parole (= un array di due elementi contenente le 2 parole). def coppie_frequenti() h = Hash.new(0) File.read("cost54.txt").downcase!.each do |i| #ciclo che conta le h[i]+= 1 #occorrenze in un file di testo. come si trasforma in end #ciclo che conta copie di parole 2) Come posso stampare il risultato del Hash in questo modo: 10 volte: diritti casi loro norme 11 volte: tutela limiti lavoro 12 volte: cittadini 13 volte: delle alle 14 volte: ogni tutti 16 volte: hanno sono legge. 19 volte: essere 20 volte: dalla 22 volte: repubblica alla 27 volte: diritto 28 volte: legge 34 volte: della 54 volte: art avvendo mi stampato questo: 10 volte: norme 10 volte: loro 10 volte: diritti 10 volte: casi 11 volte: lavoro 11 volte: tutela 11 volte: limiti 12 volte: cittadini 13 volte: alle 13 volte: delle 14 volte: ogni 14 volte: tutti 16 volte: hanno 16 volte: sono 16 volte: legge. 19 volte: essere 20 volte: dalla 22 volte: alla 22 volte: repubblica 27 volte: diritto 28 volte: legge 34 volte: della 54 volte: art. il cosice: def parole_frequenti2() h = Hash.new(0) File.read("cost54.txt").downcase!.split(" ").each do |i| #ciclo che conta le occorrenze in un file di testo h[i] += 1 end h.delete_if { |key,val| key.size <= 3 or val < 10} h.sort { |key,val| key[1] <=> val[1] }.each {|key, val| puts "#{val} volte: #{key}" } array1=h.to_a n=10 while n <= 54 #cosa dovrei metere dentro il ciclo per ottenere il risultato??? n+=1 end end -- Posted via http://www.ruby-forum.com/.