Надо переписать скрипт с питона на перл. Попытался, не получилось Питон совершенно не знаю. Помогите, пожалуйста. Вывод должен быть - полный перебор фраз, т.е. ab, ac, ba, bc, abc, cba и т.д.
| Код |
from numpy import chararray
N_CHARS = 3 a = chararray( N_CHARS ) a[:] = ['a', 'b', 'c'] z = chararray( N_CHARS )
def Pnm( a, lenA, j, m ): _a = chararray( lenA ) if j <= m: # for i in range(0,len(a) ): i = 0 while i <= lenA-1: z[j-1] = a[i] #2 _a = [] # for l in range(0,len(a) ): k = 0 kk = 0 while k <= lenA-1: if k != i: #2 _a.append( a[k] ) _a[kk] = a[k] kk = kk+1 k = k+1 Pnm( _a, kk, j+1, m ) i = i+1 else: kk = 0 while kk < m: print z[kk], kk = kk+1 print return
# for m in range (1, len(a)+1): m = 1 while m <= len(a): # z = range( m ) #2 z = [] i = 0 while i < m: #2 z.append( i ) z[i] = i i = i+1 Pnm( a, 3, 1, m ) m = m+1
|
| Код | my @a = qw/a b c/; my @z; sub pnm { my(@a, $lenA, $j, $m) = @_; if ($j <= $m) { $i = 0; while($i <= $lenA-1) { $z[$j-1] = $a[$i]; $k = 0; $kk = 0; } while($k <= $lenA-1) { if ($k!=$i) { $_a[$kk] = $a[$k]; $kk = $kk+1; $k = $k+1; pnm($_a, $kk, $j+1, $m); $i = $i+1; } } } else { $kk = 0; while($kk<$m) { print $z[$kk]; $kk = $kk+1; print; return; } } } $m = 1; while($m <= scalar @a) { $i = 0; while($i < $m) { $z[$i] = $i; $i = $i+1; pnm(@a, 3,1,$m); $m = $m+1; } }
|
|