Re: Перебор чисел

From
Dmitriy Gerasimenko ()
To
Eugene Anuchin
Date
2002-07-22T09:08:26Z
Area
RU.ALGORITHMS
From: "Dmitriy Gerasimenko" <gerasimenko@karelia.ru>


Hi, Eugene!

EA> Компилировалось fasm'ом.
EA> http://fasm.metro-nt.pl/fasm.zip (~200kb). Imho, получился довольно
изящный и
EA> короткий (53 байта) алгориитм...
EA> Для строки '0123456789' выдает честных 3628800
EA> перестановок менее чем за секунду (ессно без вывода на консоль)

А почему 3628800 ?

Твой алгоритм перебора сгенерирует строку "0000000000", "1111111111" ? Я бы
и сам
проверил, но у тебя нет вывода на консоль или в файл. У меня подозрения, что
твой алгоритм  не
разрешает размножаться символам в исходной строке, то есть он другой.

EA> buf     db  'abcd'  ;массив. вместо 'abcd' подставь '2514'

Не выйдет.
Мой алгоритм похож на электросчётчик, или на спидометр в автомобиле если
угодно.
Соответсвенно, по моёй формуле количество перестановок твоего числа = 10^10

Приведу пример: исходная строка "1234", из N символов. N=4
Найти: все возможные перестановки шириной S символов, S= 1, 2, 3, 4, 5, 6, 7

Количество перестановок= N^S

4^1= 4
4^2= 16
4^3= 64
4^4= 256
4^5= 1024
4^6= 4096
4^7= 16384

//--------------------------------------------------------------------------
------------------------------------------
Number= 1234
Count position= 1
1 :1
2 :2
3 :3
4 :4
//--------------------------------------------------------------------------
------------------------------------------
Number= 1234
Count position= 2
1 :11
2 :12
3 :13
4 :14
5 :21
6 :22
7 :23
8 :24
9 :31
10 :32
11 :33
12 :34
13 :41
14 :42
15 :43
16 :44
//--------------------------------------------------------------------------
------------------------------------------
Number= 1234
Count position= 3
1 :111
2 :112
3 :113
4 :114
5 :121
6 :122
7 :123
8 :124
9 :131
10 :132
11 :133
12 :134
13 :141
14 :142
15 :143
16 :144
17 :211
18 :212
19 :213
20 :214
21 :221
22 :222
23 :223
24 :224
25 :231
26 :232
27 :233
28 :234
29 :241
30 :242
31 :243
32 :244
33 :311
34 :312
35 :313
36 :314
37 :321
38 :322
39 :323
40 :324
41 :331
42 :332
43 :333
44 :334
45 :341
46 :342
47 :343
48 :344
49 :411
50 :412
51 :413
52 :414
53 :421
54 :422
55 :423
56 :424
57 :431
58 :432
59 :433
60 :434
61 :441
62 :442
63 :443
64 :444
//--------------------------------------------------------------------------
------------------------------------------
etc.
//--------------------------------------------------------------------------
------------------------------------------

Чао.




--- ifmail v.2.15dev5
 * Origin: UNKNOWN (2:5020/400)