Fuori pioveva così ho "preso" until e ho creato uno script che genera il triangolo di Tartaglia (o di Niccolò Fontana o di Pascal o di Kayyam). Per la cronaca, avrei potuto usare anche for o while. Certo, con python è più semplice (vero Juhan?); con bash, leggermente di meno. :)
Eccolo.
#!/bin/bash
#bit3lux
n=1
until [ $n -ge 13 ]; do
n=$((n+1))
x=1
echo -n "$x "
k=1
until [ $k -ge $n ]; do
y=$(echo "$x*($n-$k)/$k" | bc)
k=$((k+1))
echo -n "$y "
x=$y
done
echo ""
done
exit 0
Come al solito, basta salvare lo script su un file di testo, renderlo eseguibile con
$ chmod +x tart.sh
ed eseguirlo
$ ./tart.sh
Dovrebbe venire fuori qualcosa del genere :)
bit3lux@archbang Scrivania]$ ./tart.sh
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
Sicuramente si può fare di meglio. Ogni vostra proposta è cosa buona e giusta :)
Se domani ho un pò di tempo, mi cimento con i numeri di Fibonacci.
Il Triangolo di tartaglia su wikipedia (qui)
Ciao :)
Mi sembra perfetto così.
RispondiEliminaA meno che uno voglia esagerare e riscrivere la riga
y=$(echo "$x*($n-$k)/$k" | bc)
senza usare bc.
Non so bene se sia possibile, bisognerebbe provare qualcosa come $((espr)), come hai fatto sopra. Ripeto: non ho provato e non so se funziona; e sono troppo cotto per mettermi a litigare con la shell.
Ma certo, la possiamo sostituire con quest'altra:
RispondiEliminay=$[$x*($n-$k)/$k]
Ma che figata!
RispondiEliminaDomani spero di fare la fibonacci sequence! Eventualmente busserò alla tua porta :))
RispondiElimina