
Aragaer
16.09.2016
07:38:06
просто переводи в 26-ричную систему
потоком

Rocket
16.09.2016
07:38:28

Aragaer
16.09.2016
07:38:40
типа того

Google

Rocket
16.09.2016
07:38:46
а мне это в голову не приходило, спасибо...

Aragaer
16.09.2016
07:38:59
можно упростить конечно

Rocket
16.09.2016
07:39:10
да я и так могу... )
а как упростить?

Aragaer
16.09.2016
07:39:33
взять какую-то степень двойки, которая чуть-чуть меньше, чем 26 на что-то
и делить на столько бит

Rocket
16.09.2016
07:39:41
поток у меня не очень большой - 16384 в самом худшем и крайне редком случае***
...я так и хотел
делить по 4 бита
но остается 10 символов алфавита

Aragaer
16.09.2016
07:40:42
или точнее которая будет близка к какой-то степени 26, вот
ща

Google

Rocket
16.09.2016
07:40:51
хотелось бы и его как то утилизировать
4 бит - 16, 5 бит - уже 32 - перебор

Aragaer
16.09.2016
07:41:36
смотри, по 8 бит ты получаешь числа вида a*26+b, где a максимум 9
а по 9 бит уже лучше - а максимум 19

Rocket
16.09.2016
07:42:30
эм...
не понял, поясни

Aragaer
16.09.2016
07:43:35
во, бери по 16 бит и это будет покрывать почти весь интервал по 3 буквы
а что за канал такой хитрый кстати?

Rocket
16.09.2016
07:44:19

Aragaer
16.09.2016
07:44:55
а

Pavel
16.09.2016
07:45:07
Мне кажется, вы сейчас изобрели uue.

Rocket
16.09.2016
07:45:22

Aragaer
16.09.2016
07:46:07
ща

Rocket
16.09.2016
07:47:05
так... да...
корень из 26...
5,099019513592785
не, не то...
не корень

Pavel
16.09.2016
07:47:58
Логарифм по основанию 2?

Rocket
16.09.2016
07:48:13
ла

Google

Rocket
16.09.2016
07:48:14
да
4.700
4.700439718141093
теперь вопрос... сколько бит брать за раз, чтобы получилось максимально эффективно?

Aragaer
16.09.2016
07:50:13
$ ./26 12
maa
$ ./26 12345
vgs
$ ./26 0
aaa
правда это литл эндиан
16 бит в 3 буквы - эффективно

Rocket
16.09.2016
07:50:34

Aragaer
16.09.2016
07:50:58
в смысле у меня в моем коде maa это число 12

Rocket
16.09.2016
07:51:00
2-3...

Aragaer
16.09.2016
07:51:05
влезет, довольно близко

Rocket
16.09.2016
07:51:18
ща попытаюсь сообразить...

Aragaer
16.09.2016
07:51:35
16 бит это 16384, в 3 буквы это 17576

Rocket
16.09.2016
07:51:54
3 буквы буквы - это 24 бита в итоге

Aragaer
16.09.2016
07:52:54
2^16 и 26^3

Rocket
16.09.2016
07:52:57
16 на 24...

Pavel
16.09.2016
07:52:59
Log26(2**16)

Rocket
16.09.2016
07:53:19

Google

Aragaer
16.09.2016
07:53:23
$ cat 26.c
n;main(c,a)char**a;{sscanf(a[1],"%d",&c);for(;n++<3;c/=26)putchar('a'+c%26);putchar(10);}
кодгольф 8)
о, атои тоже автоматически линкуется
ща..

Pavel
16.09.2016
07:54:51
Только я не понял, 16к это максимальное число или длина потока.

Rocket
16.09.2016
07:55:12
а, собственно, не 16к ведь...

Admin
ERROR: S client not available

Aragaer
16.09.2016
07:55:36
короче 2 байта с хорошим кпд превращаются в 3 буквы

Rocket
16.09.2016
07:55:36
я ведь передать больше 4096 символов все равно не могу

Aragaer
16.09.2016
07:55:41
все

Pavel
16.09.2016
07:56:16

Aragaer
16.09.2016
07:56:32
80 байт при реализации на C, можно наверно еще короче

Subbotin
16.09.2016
08:07:32
лол. как услышал про 26 символов сразу подумал про то что кто-то хочет через энигму бинарные данные гонять.

Aragaer
16.09.2016
08:08:42
n;main(c,a)char**a;{for(c=atoi(*++a);n++<3;c/=26)putchar('a'+c%26);puts(&c);} 77 байт. Но если туда попадут кривые данные, будет кровь-кишки

Rocket
16.09.2016
08:09:17
через энигму и через М-209

-
16.09.2016
08:22:56
Оптимальнось перевода:
4 bits -> 1 letters 0.6153846153846154
9 bits -> 2 letters 0.757396449704142
14 bits -> 3 letters 0.9321802457897133
47 bits -> 10 letters 0.996956746215826
1114 bits -> 237 letters 0.9970838928123971
...

Google

Rocket
16.09.2016
08:29:58
?

-
16.09.2016
08:36:07

Rocket
16.09.2016
08:36:23
?

Aragaer
16.09.2016
08:41:38
тьфу, да, не два байта, а 14 бит

Rocket
16.09.2016
08:42:08
а если по 16 бит, то сколько получается?
ща...

Aragaer
16.09.2016
08:42:30
то не очень получается

Rocket
16.09.2016
08:43:08
16 бита -> 0,5714285714285714

Aragaer
16.09.2016
08:45:09
47 бит в 10 букв очень хорошо идут
2^47/26^10
.99695674621582592589

Rocket
16.09.2016
08:45:28
геморно )
хотя, какая разница...

-
16.09.2016
08:46:06
А почему не 14 бит в 3 буквы?

Aragaer
16.09.2016
08:46:18
это был мой первый ответ 8)
чуть меньше кпд
2^14/26^3
.93218024578971324533
я даже привел на С код, который это реализует
на практике чем больше букв, тем больше останется хвост для старшего разряда

Rocket
16.09.2016
08:47:28
угумс