Forum >> Principianti >> ESERCIZIO RICORSIONE alternata asc/desc

Pagina: 1

Salve,
sono un principiante di Python e avrei bisogno di riuscire a risolvere questo problema.
Dovrei definire una funzione con due parametri numerici (num_var, num_max)
Questa funzione deve iterare num_var cicli da 1 a num_max.
La complicazione è che i cicli mi servirebbe che fossero alternativamente in crescendo e in decrescendo.
(I COLORI SONO USATI SOLO A SCOPO DI RENDERE PIU' CHIARA LA DOMANDA)

esempio 1
num_var =2 num_max=4

x1 x2
1 1
1 2
1 3
1 4
2 4
2 3
2 2
2 1

esempio 2
num_var =3 num_max=3

x1 x2 x3
1 1 1
1 1 2
1 1 3
1 2 3
1 2 2
1 2 1
1 3 1
1 3 2
1 3 3
2 3 3
2 3 2
2 3 1
2 2 1
2 2 2
2 2 3
2 1 3
2 1 2
2 1 1
3 1 1
3 1 2
3 1 3
3 2 3
3 2 2
3 2 1
3 3 1
3 3 2
3 3 3

Grazie mille




--- Ultima modifica di Lollo88 in data 2020-02-13 14:33:30 ---
non è molto chiaro quello che vuoi fare (a partire dal fatto che non ho capito che cosa c'entra la ricorsione), ma in ogni caso se stai ciclando con un "for" sopra un oggetto "range", allora tieni presente che "range" può essere costruito con un parametro "step" che può anche essere negativo.

Per esempio, prova la differenza tra
for i in range(0, 10): 
    print(i)
e
for i in range(10, 0, -1):
   print(i)
https://docs.python.org/3/library/stdtypes.html#typesseq-range







Molto interessante, vorrei sapere il titolo del libro ed il testo completo dell'esercizio per capire se viene richiesto espressamente di risolverlo con la ricorsione alternata.
Buongiorno a tutti,
chiedo scusa se la domanda è poco chiara e se uso termini non corretti (sono un neofita)

In realtà non è un esercizio di un libro. E' un problema derivato dal neo acquisto Raspberry:

Il codice di Raspberry prevede di cambiare i colori ad una lampadina modificando in maniera random i 3 leg RGB.




es.




R= 12 G=23 B=75

R= 52 G=39 B=12

...

...

etc




Questo fa si che la lampadina cambi colori casualmente.




In realtà mi sarebbe piaciuto avere un effetto sfumato facendo scorrere prima tutti i blu da 0 a 100


R=1 G=1 B=1


R=1 G=1 B=2


R=1 G=1 B=3

...




...


R=1 G=1 B=100




poi arrivato a questa situazione far aumentare di 1 il giallo e scendere il blu






R=1 G=2 B=99


R=1 G=2 B=98

...


...


R=1 G=2 B=1





e così via fino ad ottenere 100*100*100 = 1mln combinazioni (ovviamente l'avrei fatto con un passo di 10 ottenendo 10*10*10=1.000 combinazioni)







alterna_x2 = alterna_x3 = False
for x1 in range(1, 4) :
    for x2 in range(1, 4) :
        if alterna_x2 : x2 = 4 - x2
        alterna_x2 = False if alterna_x2 else True
        for x3 in range(1, 4) :
            if alterna_x3 : x3 = 4 - x3
            alterna_x3 = False if alterna_x3 else True
            print(x1, x2, x3)
--- Ultima modifica di EL DIABLO in data 2020-02-14 21:45:52 ---
Grazie Mille! :ok: :)


Pagina: 1



Esegui il login per scrivere una risposta.