# Ancora sugli Array

**URL:** <https://www.ruby-forum.com/t/ancora-sugli-array/105883>\
**Category:** IT\
**Created:** [June 4, 2007, 10:39am UTC](https://www.ruby-forum.com/t/ancora-sugli-array/105883 "2007-06-04T10:39:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Giovanni\_I](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/4491bb/32.png) [@Giovanni\_I](https://www.ruby-forum.com/u/Giovanni_I)\
**Post date:** [June 4, 2007, 10:39am UTC](https://www.ruby-forum.com/t/ancora-sugli-array/105883/1 "2007-06-04T10:39:58Z")

</div>

Un altro quizzetto:

ho un array [[elementA, frequency], [elementB, frequency], …,  
[elementZ, frequency]]

vorrei trasformarlo in:

[[elementA, frequency/(total frequencies)], [elementB, frequency/  
(total frequencies)], …]

Chi sa la soluzione?

---

<div class="post-metadata">

**Author:** ![Giovanni\_I](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/4491bb/32.png) [@Giovanni\_I](https://www.ruby-forum.com/u/Giovanni_I)\
**Post date:** [June 4, 2007, 11:57am UTC](https://www.ruby-forum.com/t/ancora-sugli-array/105883/2 "2007-06-04T11:57:10Z")

</div>

On 6/4/07, Giovanni I. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ho un array [[elementA, frequency], [elementB, frequency], …,  
> [elementZ, frequency]]
> 
> vorrei trasformarlo in:
> 
> [[elementA, frequency/(total frequencies)], [elementB, frequency/  
> (total frequencies)], …]

Che brutto vedersi saltar fuori questi quiz mentre si sta lavorando,  
ma non riuscire lo stesso a resistere alla tentazione 😃 Premetto di  
non averla ragionata molto andando a razzo direttamente via irb,  
intendevi qualcosa di simile?

irb(main):001:0\> ary = [[‘a’, 2], [‘b’, 6], [‘c’, 4]]  
=\> [[“a”, 2], [“b”, 6], [“c”, 4]]  
irb(main):002:0\> tot\_freq = ary.inject(0) { |tot\_freq,(elem,freq)|  
tot\_freq += freq }.to\_f  
=\> 12.0  
irb(main):003:0\> ary.map { |(elem,freq)| [elem,(freq / tot\_freq)] }  
=\> [[“a”, 0.166666666666667], [“b”, 0.5], [“c”, 0.333333333333333]]

---

<div class="post-metadata">

**Author:** ![Giovanni\_I](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/4491bb/32.png) [@Giovanni\_I](https://www.ruby-forum.com/u/Giovanni_I)\
**Post date:** [June 4, 2007, 12:02pm UTC](https://www.ruby-forum.com/t/ancora-sugli-array/105883/3 "2007-06-04T12:02:11Z")

</div>

Quello che mi ero dimenticato di dire è che volevo farlo tutto in un  
passaggio solo 🙂  
(poi ho risolto in tutt’altro modo, ma il quiz vale ancora :))

Il giorno 04/giu/07, alle ore 11:56, Daniele A. ha scritto:

---

<div class="post-metadata">

**Author:** ![Giovanni\_I](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/4491bb/32.png) [@Giovanni\_I](https://www.ruby-forum.com/u/Giovanni_I)\
**Post date:** [June 4, 2007, 1:19pm UTC](https://www.ruby-forum.com/t/ancora-sugli-array/105883/4 "2007-06-04T13:19:22Z")

</div>

— Giovanni I. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Quello che mi ero dimenticato di dire è che volevo  
> farlo tutto in un  
> passaggio solo 🙂

wow.  
L’unica soluzione a cui riesco a pensare sarebbe di  
aggiornare tutto man mano che vai avanti, ma avresti  
un costo 1+2+…+N invece che 2N che è sempre peggiore  
per liste di almeno tre elementi 🙂

* * *

New Yahoo! Mail is the ultimate force in competitive emailing. Find out  
more at the Yahoo! Mail Championships. Plus: play games and win prizes.  
[http://uk.rd.yahoo.com/evt=44106/\*http://mail.yahoo.net/uk](http://uk.rd.yahoo.com/evt=44106/*http://mail.yahoo.net/uk)
