PDA

Показать полную графическую версию : Как на Perl'е написать перебор символов??


JS
14-10-2003, 08:51
Нужно написать перебор символов (например латиницы) допустим слова должны быть от 2 символов до 7 и чтобы програ выбавала все комбинации. Это возможно сделоть??
в си или Дельфях есть что-то типа char(32) и она выдает нужный символ...
как сделать в perl???

fLANkeR
15-10-2003, 14:13
Массив символов, задаешь константой
и строка вот и все в которую ты перебираешь.
вместо массива символов можно ипользовать так же строку.

JS
16-10-2003, 09:03
ну предположим сделали так:

# определяем нужные символы
@arr(0..9,'a'..'z'); # т.е. символы должны перебираться от 0 до z
$word="f2x"; # это какое-то начальное значение

==============
Если сделать по простому:
for($i=0;$i<500;$i++){
  $word++;
}

то мы получим заначения:

f2y
f2z
f3a
f3b
f3c
...
f3y
f3z
f4a
...

т.е. совсем не то что нам нужно, а именно

f2y
f2z
f30
f31
f32
...
f38
f39
f3a
f3b
f3c
...
f3z
f40
f41
f42
...

Я нашел выход написав сложную программу всей этой проверки, правда пошел другим немного путем (не использовал этот массив).
Но в результате скорость снизилать с 2.4 млн. до 22.6 тыс переборов с секунду!!!
Это просто ОФИГЕННО!!! В данном случае скорость имеет огромное значение!!!
На PHP это можно сделать немного проще, но на этом языке нельзя - у него timeuot=30 sec.

<b>Где найти лучний выход??</b>

можно ли создать переменную которая может принимать значения только из определенных символов, и при инкриментации меняла значения только в этом диапазоне????




© OSzone.net 2001-2012