Profilo di Ὅμηρος 蟒蛇

Nome Ὅμηρος 蟒蛇
Indirizzo email alex78414@yahoo.it
AvatarAvatar utenti
Messaggi53
  • Re: nuovissimo
    Forum >> Principianti
    Oppure si può fare la stessa cosa con una funzione ricorsiva:
    def stampaadestra(i) :
        if i > 21 + len(s) : return
        stampaadestra(i + 1)
        print(s.rjust(i, "."))
    
    s = input("Inserire una stringa: ")
    stampaadestra(len(s))
    
    realizzare funzioni ricorsive è molto facile e divertente, prova!
  • Re: nuovissimo
    Forum >> Principianti
    No, è bellissimo.
    def main() :
        stringa = input("Inserire una stringa: ")
        stampaadestra(stringa)
    
    def stampaadestra(s) :
        for i in range(21 + len(s), len(s) - 1, -1) :
            print(s.rjust(i, "."))
    
    main()
    
  • Re: Problema liste
    Forum >> Principianti
    if del_name < len(list_d): list_d.pop(del_name)
    else: print(del_name, "Domanda non trovata") 
  • Re: quadrato magico
    Forum >> Principianti
    Ho fatto alcune modifiche, ora sforna quadrati magici a manetta.
    In circa 5 minuti trova tutti i quadrati magici che si possono formare permutando la lista 21 mila miliardi di volte.
    Prossimamente spero di poterlo migliorare ulteriormente.
    Se qualcuno riesce a renderlo più rapido, posti la soluzione.
    Grazie.


    --- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-04-16 19:44:02 ---
  • Re: quadrato magico
    Forum >> Principianti
    Ciao, in questo periodo sto studiando le liste, quindi mi sono divertito a risolvere l'esercizio da te proposto.
    Le permutazioni possibili con n oggetti sono pari al fattoriale di n!
    Con una matrice 4 x 4 sono possibili 16! permutazioni, cioè circa 21 mila miliardi.
    Anche se correggo gli errori nel tuo codice, non raggiungerai ugualmente il risultato.
    Se aspetti che, mescolando casualmente i 16 valori contenuti nella matrice, si formi un quadrato magico, la barba ti verrà lunga un metro. ;)
    Quindi ho realizzato dei cicli annidati, all'interno dei quali ho inserito il turbo, che controllano tutte le possibili permutazioni.
    Dopo qualche minuto il programma avrà già visualizzato parecchi quadrati magici.

    ##
    # Questo programma visualizza tutti i quadrati magici 4 x 4 contenenti i numeri interi da 1 a 16.
    # Una matrice n * n contenente i numeri interi 1, 2, 3, ..., n * n è un quadrato magico se la somma
    # dei suoi elementi in ciascuna riga, in ciascuna colonna e nelle due diagonali ha lo stesso valore.
    #
    
    magicNumber = 34
    n = 4
    
    def visualizza(matrice, count):
     print("\n%d%s Quadrato magico" % (count, chr(186)))
     chr0 = chr(9472)
     print("%s%s%s%s" % (chr(9484), (chr0 * 2 + chr(9516)) * 3, chr0 * 2, chr(9488)))
     for riga in range(n) :
      for colonna in range(n) : print("%s%2d" % (chr(9474), matrice[ riga ][ colonna ]), end="")
      print(chr(9474))
      if riga < 3 : chr1, chr2, chr3 = chr(9500), chr(9532), chr(9508)
      else : chr1, chr2, chr3 = chr(9492), chr(9524), chr(9496)
      print("%s%s%s%s" % (chr1, (chr0 * 2 + chr2) * 3, chr0 * 2, chr3))
              
    def controlloMatrice():
     count = 0
     lista1 = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]
     for i1 in lista1 :
      lista2 = list(lista1)
      lista2.remove(i1)
      for i2 in lista2 :
       lista3 = list(lista2)
       lista3.remove(i2)
       for i3 in lista3 :
        if 17 < i1 + i2 + i3 < magicNumber :
         lista4 = list(lista3)
         lista4.remove(i3)
         for i4 in lista4 :
          if i1 + i2 + i3 + i4 == magicNumber :
           lista5 = list(lista4)
           lista5.remove(i4)
           for i5 in lista5 :
            lista6 = list(lista5)
            lista6.remove(i5)
            for i6 in lista6 :
             lista7 = list(lista6)
             lista7.remove(i6)
             for i7 in lista7 :
              if 17 < i5 + i6 + i7 < magicNumber :
               lista8 = list(lista7)
               lista8.remove(i7)
               for i8 in lista8 :
                if i5 + i6 + i7 + i8 == magicNumber :
                 lista9 = list(lista8)
                 lista9.remove(i8)
                 for i9 in lista9 :
                  if 17 < i1 + i5 + i9 < magicNumber :
                   lista10 = list(lista9)
                   lista10.remove(i9)
                   for i10 in lista10 :
                    if 17 < i2 + i6 + i10 < magicNumber and 17 < i4 + i7 + i10 < magicNumber :
                     lista11 = list(lista10)
                     lista11.remove(i10)
                     for i11 in lista11 :
                      if 17 < i9 + i10 + i11 < magicNumber and 17 < i3 + i7 + i11 < magicNumber and 17 < i1 + i6 + i11 < magicNumber :
                       lista12 = list(lista11)
                       lista12.remove(i11)
                       for i12 in lista12 :
                        if i9 + i10 + i11 + i12 == magicNumber and 17 < i4 + i8 + i12 < magicNumber :
                         lista13 = list(lista12)
                         lista13.remove(i12)
                         for i13 in lista13 :
                          if i1 + i5 + i9 + i13 == i4 + i7 + i10 + i13 == magicNumber :
                           lista14 = list(lista13)
                           lista14.remove(i13)
                           for i14 in lista14 :
                            if i2 + i6 + i10 + i14 == magicNumber :
                             lista15 = list(lista14)
                             lista15.remove(i14)
                             for i15 in lista15 :
                              if i3 + i7 + i11 + i15 == magicNumber and 17 < i13 + i14 + i15 < magicNumber :
                               lista16 = list(lista15)
                               lista16.remove(i15)
                               i16 = lista16[ 0 ]
                               if i13 + i14 + i15 + i16 == i4 + i8 + i12 + i16 == i1 + i6 + i11 + i16 == magicNumber :
                                matrice = [ [ i1, i2, i3, i4 ], [ i5, i6, i7, i8 ], [ i9, i10, i11, i12 ], [ i13, i14, i15, i16 ] ]
                                count += 1
                                visualizza(matrice, count)
                  
    controlloMatrice()
    


    --- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-04-16 19:09:37 ---
  • Re: Aiuto:Eliminare più di una volta la sottostringa
    Forum >> Principianti
    :ok:Fighissssssimoooooooo!!!!!!! :ok:

    :OIl prof. è rimasto a bocca aperta :O

    Dovreste almeno regalarmi un paio di confezioni di pocket Coffee e di mon Chérry. :)
  • Re: Aiuto:Eliminare più di una volta la sottostringa
    Forum >> Principianti
    Più di così, per ora, non saprei come accorciarla.
    def sottrai(a, b) :
        if b not in a : return a
        return sottrai(a[:a.find(b)] + a[a.find(b) + len(b):], b)
    L'ho risolto in modo figo?

    --- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-03-20 12:55:48 ---
  • Re: Aiuto:Eliminare più di una volta la sottostringa
    Forum >> Principianti
    In questo periodo sto studiando e svolgendo esercizi su funzioni e funzioni ricorsive. Uno più, uno meno... ;)
    Domani potreste proporre al prof. come esercizio questo:
    Realizzare una funzione che ordini tutte le lettere di una stringa. Ad esempio, la stringa "ciao" deve essere così ordinata: "acio".
    :ok:
  • Re: eliminare una porzione di stringa
    Forum >> Principianti
    per quanto riguarda un buon testo se hai qualche nome da fornirmi te ne sarei grata visto che a lezione abbiamo a disposizione delle dispense piuttosto scarne e mi ritrovo a cercare ovunque senza avere un buon riferimeneto :)
    Per esempio in questo sito, nella sezione Documentazione >> I libri, ne scegli uno.
    Hai capito il funzionamento della funzione ricorsiva? Altrimenti il prof. ti sgama :D
    Oltretutto vi presenterete entrambi con lo stesso codice, e se nessuno dei due avrà capito il funzionamento.. vi sgamerಠal quadrato.

    Quale fantastico corso state frequentando?
  • Re: eliminare una porzione di stringa
    Forum >> Principianti
    E' meglio che studiate Python da un libro serio, invece di andare a scqquola :D
    La funzione ricorsiva l'ho postata nella discussione di Coffee