Sziasztok!
Napról-napra egyre nagyobb linux fan vagyok. Most éppen egy ideje shell script programozással próbálok foglalatoskodni.
Van egy ilyen program, ami bekér egy adott szót, és visszaadja az "anagrammáit". Ergo permutációs műveletet végez, összekeveri a szavakat.
Na, az van, hogy több dolog lenne, amit ki tudnék ebből venni, de sajnos elég bonyolult ez.
Esetleg valaki, aki ért az ilyenekhez elmagyarázná nekem szóról szóra, hogy mi mit csinál benne? Nagyon sokat segítene!
#!/bin/bash
function swapnm
{
n=$1
m=$2
z=${szo[$n]}
szo[$n]=${szo[$m]}
szo[$m]=$z
}
function permut
{
local k=$1
local i=0;
for ((; i<=k; i++))
do
swapnm $i $k
if [ $k -ne 0 ]
then
permut $(expr $k - 1)
else
# echo $nperm : ${szo[@]}
echo ${szo[@]}
((nperm++))
fi
swapnm $k $i
done
}
nperm=1
nbetu=${#1} #betűk száma
szo=$1
a=0
while (( $a < $nbetu ))
do
szo[$a]=${1:$a:1}
((a++))
done
#if [ $nbetu -gt 0 ] && [ $nbetu -lt 8 ]
#then
permut $(expr $nbetu - 1)
#fi
Nagy-nagy köszönet! :)