@ru_python

Страница 1532 из 9768
Aragaer
16.09.2016
07:38:06
просто переводи в 26-ричную систему

потоком

Rocket
16.09.2016
07:38:28
просто переводи в 26-ричную систему
целиком весь поток интерпретировать как бинарное число и его закодировать в base26 ?

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
Мне кажется, вы сейчас изобрели uue.
само собой, но в ююке лишние символы

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 буквы - эффективно

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
16 бит это 16384, в 3 буквы это 17576
осознал... а можешь рассчеты7

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
Log26(2**16)
ТОЧНО

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к это максимальное число или длина потока.
максимальная длинна потока в самом худшем и очень редком случае

а, собственно, не 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 байт. Но если туда попадут кривые данные, будет кровь-кишки

-
16.09.2016
08:22:56
короче 2 байта с хорошим кпд превращаются в 3 буквы
Разве? Два байта - 65536 возможных комбинаций, а три буквы - 17576

Оптимальнось перевода: 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
-
16.09.2016
08:36:07
я ведь передать больше 4096 символов все равно не могу
Переводи 19253 бита в 4096 букв. Эффективность ~0.9992

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
угумс

Страница 1532 из 9768