<?php
function create_word(string $alphabet, int $index): string
{
$base = mb_strlen($alphabet);
$fix = 1;
$length = 1;
foreach (range(1, $base) as $k) {
$pow = pow($base, $k);
if ($fix + $pow <= $index) {
$fix += $pow;
$length++;
} else {
break;
}
}
$template = sprintf("%0{$length}d", base_convert($index - $fix, 10, $base));
$replace = implode('', range(0, $base));
return strtr($template, $replace, $alphabet);
}
for ($i = 1; $i <= 81; $i++) {
echo $i . ' = '. create_word("abc", $i) . \PHP_EOL;
}
- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- 1 = a
2 = b
3 = c
4 = aa
5 = ab
6 = ac
7 = ba
8 = bb
9 = bc
10 = ca
11 = cb
12 = cc
13 = aaa
14 = aab
15 = aac
16 = aba
17 = abb
18 = abc
19 = aca
20 = acb
21 = acc
22 = baa
23 = bab
24 = bac
25 = bba
26 = bbb
27 = bbc
28 = bca
29 = bcb
30 = bcc
31 = caa
32 = cab
33 = cac
34 = cba
35 = cbb
36 = cbc
37 = cca
38 = ccb
39 = ccc
40 = aaaa
41 = aaab
42 = aaac
43 = aaba
44 = aabb
45 = aabc
46 = aaca
47 = aacb
48 = aacc
49 = abaa
50 = abab
51 = abac
52 = abba
53 = abbb
54 = abbc
55 = abca
56 = abcb
57 = abcc
58 = acaa
59 = acab
60 = acac
61 = acba
62 = acbb
63 = acbc
64 = acca
65 = accb
66 = accc
67 = baaa
68 = baab
69 = baac
70 = baba
71 = babb
72 = babc
73 = baca
74 = bacb
75 = bacc
76 = bbaa
77 = bbab
78 = bbac
79 = bbba
80 = bbbb
81 = bbbc
- Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
1 = a
2 = b
3 = c
4 = aa
5 = ab
6 = ac
7 = ba
8 = bb
9 = bc
10 = ca
11 = cb
12 = cc
13 = aaa
14 = aab
15 = aac
16 = aba
17 = abb
18 = abc
19 = aca
20 = acb
21 = acc
22 = baa
23 = bab
24 = bac
25 = bba
26 = bbb
27 = bbc
28 = bca
29 = bcb
30 = bcc
31 = caa
32 = cab
33 = cac
34 = cba
35 = cbb
36 = cbc
37 = cca
38 = ccb
39 = ccc
40 = aaaa
41 = aaab
42 = aaac
43 = aaba
44 = aabb
45 = aabc
46 = aaca
47 = aacb
48 = aacc
49 = abaa
50 = abab
51 = abac
52 = abba
53 = abbb
54 = abbc
55 = abca
56 = abcb
57 = abcc
58 = acaa
59 = acab
60 = acac
61 = acba
62 = acbb
63 = acbc
64 = acca
65 = accb
66 = accc
67 = baaa
68 = baab
69 = baac
70 = baba
71 = babb
72 = babc
73 = baca
74 = bacb
75 = bacc
76 = bbaa
77 = bbab
78 = bbac
79 = bbba
80 = bbbb
81 = bbbc
preferences:
178.52 ms | 403 KiB | 210 Q