Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как на Perl'е написать перебор символов?? (http://forum.oszone.net/showthread.php?t=30224)

JS 14-10-2003 08:51 207844

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

fLANkeR 15-10-2003 14:13 207845

Массив символов, задаешь константой
и строка вот и все в которую ты перебираешь.
вместо массива символов можно ипользовать так же строку.

JS 16-10-2003 09:03 207846

ну предположим сделали так:

# определяем нужные символы
@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>

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


Время: 01:13.

Время: 01:13.
© OSzone.net 2001-