Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ricorsività

0 views
Skip to first unread message

Larry

unread,
May 13, 2008, 7:08:26 PM5/13/08
to
Salve,

sto cercando di scrivere una routine ricorsiva in perl che scopra
tutti gli "amici" di un "amico" e così via...gli amici vengono
identificati in modo univoco da un numero id e vorrei sapendo il numero
id d un amico espandermi il pi possibile nella "ragnatela"...un esempio
della struttura:

io (000001) = [ (000002), (000004), (000019), (000222) ...etc... ];

il mio amico (000002) a sua volta ha altri amici [ (000004), (009521),
(000023) ...etc... ]; e così all'infinito...

come vedete (000001) e (000002) hanno un amico in comune (000004)

Mi interesserebbe sapere che approccio logico usereste per riunire in
un'unica lista tutti gli amici di tutti e così via...

Grazie

Larry

unread,
May 14, 2008, 4:44:27 AM5/14/08
to
uhm...cerco di spiegarvi meglio lo scenario...avete presente myspace??
ogni "amico" ha degli "amici" e ognuno di quegli "amici" ha altri
"amici" e cosě via...io in pratica dovrei creare uno robot che partendo
dal mio friend ID prenda tutti i miei friends ID e cosě via e li
aggiunga in una lista. Viene usata una sola subroutine chiamata
_return_ids_from_id(id) che si spiega da sola...ora io so come partire
ma non come continuare dato che questo robot deve espanders all'infinito
o quasi mi era all'inizio venuta in mente l'idea di forkare ogni volta
che si saliva di livello ma questa diventerebbe una pazzia.

Ecco come inizierei:

codice:
my @ids = _return_ids_from_id(000001) # questo č il mio id e in @ids
vanno tutti i miei "amici"

ora dovrei scandire tutti gli @ids e per ognuno ritornare tutta la lista
di amici e cosě via...

foreach my $id ( @ids )
{
my @ids = _return_ids_from_id($id);

foreach my $id ( @ids )
{

my @ids = _return_ids_from_id($id)

...etc... e cosě via all'infinito
}

}

spero di essere stato pi chiaro...Grazie!

Sbrecche

unread,
May 15, 2008, 5:14:48 PM5/15/08
to
> uhm...cerco di spiegarvi meglio lo scenario...avete presente myspace??
> ogni "amico" ha degli "amici" e ognuno di quegli "amici" ha altri
> "amici" e cosě via...io in pratica dovrei creare uno robot che partendo
> dal mio friend ID prenda tutti i miei friends ID e cosě via e li
> aggiunga in una lista. Viene usata una sola subroutine chiamata
> _return_ids_from_id(id) che si spiega da sola...ora io so come partire
> ma non come continuare dato che questo robot deve espanders all'infinito
> o quasi mi era all'inizio venuta in mente l'idea di forkare ogni volta
> che si saliva di livello ma questa diventerebbe una pazzia.

Hai presente i grafi? In pratica stai considerando le conoscenze come se
fossero degli archi e gli amici come se fossero i vertici. Quello che devi
fare č una visita in ampiezza del grafo, su internet troverai algoritmi a
bizzeffe. Certo č che qui siamo leggermente Off Topic secondo me!
Era questo che ti serviva? =)


Gaetano

unread,
May 20, 2008, 8:15:41 AM5/20/08
to
> della struttura:
>
> io (000001) = [ (000002), (000004), (000019), (000222) ...etc... ];
>
> il mio amico (000002) a sua volta ha altri amici [ (000004), (009521),
> (000023) ...etc... ]; e così all'infinito...
>
> come vedete (000001) e (000002) hanno un amico in comune (000004)

Sicuramente la parola "infinito" è puramente teorica, ma anche se ci
limitaimo a un calcolo
limitato, non esiste un elboratore che possa andare molto in là con i
livelli di "amicizia"
Pensa che se fossi nel mondo reale , al sesto livello raggiungeresti
l'intera popolazione
terrestre. "teoria dei sei gradi di separazione".

--
______________________
Gaetano
"Nel coltellino svizzero di Chuck Norris c'è McGyver"


0 new messages