Profilo di iulian

Nome iulian
Indirizzo email n/a
Messaggi8
  • Re: Funzioni per i divisori di un numero
    Forum >> Principianti
    Daniele aka Palmux said @ 2019-01-20 23:04:05:
    Ciao caro, non è per volerti essere avverso, ma è giusto che questo esercizio provi a scriverlo da solo. Non è impossibile, hai già la traccia di quello che devi fare in quello che scrivi, quindi tramutalo in codice (se poi non capisci qualcosa condividile qui).

    Credimi, è infinitamente meglio che impari da solo, piuttosto che leggere una risposta fatta da altri. Sai quella cosa dei pesci e del pescare? Ecco appunto...

    Cya

    Forse mi perdo in un bicchiere d'acqua, ma non capisco come sommare le cifre pari (e idem per le dispari)
  • Funzioni per i divisori di un numero
    Forum >> Principianti
    Salve a tutti, in un esercizio mi viene chiesto di scrivere una funzione div11(x) che determini se un intero x>=0 è divisibile per 11, senza usare divisione intera, moltiplicazione e operatore resto.

    Il suggerimento è di ricordare che un numero è divisibile per 11 se il valore assoluto differenza tra la somma delle sue cifre in posizione pari e tra la somma delle sue cifre in posizione dispari è 0 o un multiplo di 11. Qualcuno potrebbe aiutarmi a capire come scrivere la funzione?


    --- Ultima modifica di iulian in data 2019-01-20 21:46:56 ---
  • Re: Trovare il massimo di una lista
    Forum >> Principianti
    Ma LOL, magari il senso dell'esercizio è farlo senza usare "max", no?

    Comunque, la versione ricorsiva sarebbe:

    - se la lista ha un solo elemento, allora restituisci quello;

    - se no, togli il primo (o l'ultimo, come vuoi) elemento della lista e chiama ricorsivamente la funzione su ciò che resta della lista; restituisci il valore più grande tra i due (ciò che ottieni dalla chiamata ricorsiva, e il primo elemento della lista).


    Grazie!
  • [Risolto] Trovare il massimo di una lista
    Forum >> Principianti
    Salve, ho un esercizio d'esame che mi chiede di scrivere una funzione ricorsiva che trovi il massimo valore all'interno di una lista contenente dei numeri.


    La versione iterativa è:


    def massimo(L):
    m = L(0)
    for v in L(1:]
    m = m if v < m else v
    return m


    *Ovviamente ho rispettato l'indentazione e ho messo le parentesi quadre per le due indicizzazioni, nel sito non sono ancora molto pratico.

    Qualcuno ha idea di come scriverla ricorsivamente?


    --- Ultima modifica di iulian in data 2019-01-13 18:43:42 ---
  • Re: Funzionalità funzioni ricorsive
    Forum >> Principianti
    Mah, intanto non allegare del codice sotto forma di immagine: prova a fare la fatica di copincollarlo e formattarlo in un post, come gesto di cortesia nei confronti di chi ti legge.


    Detto questo, boh? Ma è uno scherzo? Che senso ha scrivere codice python così? Chiunque scriva codice del genere non ha neanche la più pallida idea di che cosa vuol dire programmare. Ma proprio non lo ha mai fatto nella vita, almeno in un contesto professionale.


    Boh, non è che ho tanta voglia di risolvere i cruci-puzzle... a una prima occhiata è ovvio che si tratta di qualche operazione sugli alberi binari... ma non è che sia proprio il mio campo, e alcune di queste funzioni sono semplicemente scritte male e/o completamente sbagliate.


    W(a) è l'unica che si capisce al volo ed è scritta in modo "giusto" anche se insensato: restituisce la somma di tutti i nodi che hanno esattamente due figli.

    H(a, p) introduce una notazione "sx" e "dx" dove prima c'è scritto "l" e "r"... immagino che sia un errore dovuto a sciatteria... ma correggendo l'errore, dovrebbe restituire la larghezza di un dato livello (ovvero, quanti nodi ci sono a un dato livello). C'è un errore per il livello 0 (la radice), dove invece di restituire 1 restituisce "True", cosa che non ha senso. Ma tant'è.


    S(a) restituisce True se... boh, non so come dirlo... se tutti i rami sono "bilanciati" nel senso che la loro somma è 0. Non so se esiste un termine tecnico per questo. "Pazzia", forse.

    S(a, p) è quella che ha meno senso di tutte. Restituisce True solo se tutti i percorsi hanno somma pari a p, almeno mi pare a una prima occhiata. Ma non sono sicurissimo che sia così, dovrei fare delle prove. Forse voleva dire qualcos'altro ed è semplicemente bacata.





    Detto questo, si tratta di funzioni scritte proprio male, ma davvero proprio male male male. Per esempio, tutte le volte che c'è scritto "if not a" o cose del genere lui vorrebbe dire "se non c'è questo nodo"... ma "if not a" vuole anche dire "se il valore di questo nodo è 0"... quindi, se fai degli esperimenti, fai solo attenzione a non usare mai lo zero come valore per un nodo, altrimenti salta tutto. Questo è uno che non sa come si programma in python.





    Detto questo, se non hai la più pallida idea di come funziona la ricorsione, non è possibile che tu capisca queste funzioni. Devi prima lavorare su qualcosa di più facile (e soprattutto, qualcosa scritto meglio, da qualcuno che sa effettivamente scrivere codice python).





    Grazie dei suggerimenti, comunque con la ricorsione non ho particolari problemi, avevo anch'io il presentimento che gli esercizi (e si parla di esercizi da esame) non fossero scritti nella maniera più comprensibile. Grazie ancora!
  • Descrittori di lista
    Forum >> Principianti
    Qualcuno potrebbe riuscire a capire come correggere la mia soluzione all'esercizio?


    "Data A una matrice di dimensione MxN "M e N" fissate, utilizzando un descrittore di lista, definire una lista che contenga tutti i valori della matrice A che siano multipli di 3, visitando la matrice per colonne."


    Io avevo pensato da una matrice 3x6, ipotizzando "j" le colonne e "i" le righe", questo è ciò che ho pensato:
    *Per i e j nell'indicizzazione di A ho utilizzato le parentesi quadre in Python, in questo sito non so come visualizzarle, perciò ho utilizzato le tonde.

    print (A(i)(j) for j in range(6) for i in range(3) if A(i)(j) %3==0)




    --- Ultima modifica di iulian in data 2019-01-11 21:32:24 ---
  • Re: Funzionalità funzioni ricorsive
    Forum >> Principianti
    "Funzionalità funzioni ricorsive" è già un titolo molto ricorsivo, quindi direi che sei a buon punto.


    Sull'allegato binario di 480k senza estensione non posso esprimermi.










    Scusa l'errore, ho ricaricato, spero tu riesca ad aiutarmi.
  • [Risolto] Funzionalità funzioni ricorsive
    Forum >> Principianti
    Salve, a breve ho l'esame di programmazione in Python (non frequento la facoltà di matematica, quindi non è troppo profondo), ma non riesco a fornire le post condizioni di queste 4 funzioni ricorsive. Ho intuito che il parametro "a" rappresenta un albero e "a.v" il valore di un nodo e "a.dx" e "a.sx" i rami destro e sinistro.
    Qualcuno potrebbe aiutarmi a ragionare su come esprimere in italiano comprensibile cosa fanno queste funzioni?


    --- Ultima modifica di iulian in data 2019-01-12 21:44:56 ---