|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Как известно, в .NET есть строки, в том числе одна пустая. Сколько их всего? Как известно, максимальный размер строки = 2 гб, или 1 073 741 823 символов в кодировке utf-16, последняя в свою очередь может закодировать 1 112 064 символов. Символ может быть закодирован 2 или 4 байтами. Если бы все помещались в 2 байта, то все просто, то все просто - геометрическая програссия 65536*(1-65536^1 073 741 823)/(1-65536) Но есть и 4 байта, тогда строка, скажем из 10 байт, может быть представлена так 22222 - 63488(1-63488^5)/(1-63488) 2422 - 63488 * 1048576 * 63488 * 63488 244 - 63488 * 1048576 * 1048576 4222 - 1048576 * 63488 * 63488 * 63488 442 - 1048576 * 1048576 * 63488 Как же быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 10:36 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Ничего не понял что считаем. Сколько уникальных строк можно сформировать в .NET ? Если так, то 65536 тут не уместно, т.к. в UTF-16 есть неиспользованные коды В общем случае можно смело ответить дофига, т.к. 65536 1 073 741 823 = 2 17 179 869 168 ~= 10 5 153 960 750 Дальше можно не считать, т.к. это уже мелочи по сравнению с этим числом. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 10:48 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВ, тут .Net наверно не причём. В utf-16 для символа строго два байта. Переменная длина в utf-8. А что вообще надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 10:52 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
KreatorXXIВ utf-16 для символа строго два байта. Не строго, есть 4-хбайтные, т.к. в юникоде на сегодня более миллиона символов, что никак не входит в 65536 (2 16 ). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 11:54 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Dima TKreatorXXIВ utf-16 для символа строго два байта. Не строго, есть 4-хбайтные, т.к. в юникоде на сегодня более миллиона символов, что никак не входит в 65536 (2 16 ). В Википедии вот так: Символы же в диапазоне 10000..10FFFF (больше 16 бит) кодируются по следующей схеме: Из кода символа вычитается 10000. В результате получится значение от нуля до FFFFF, которое помещается в разрядную сетку 20 бит. Старшие 10 бит (число в диапазоне 0000..03FF) суммируются с D800, и результат идёт в ведущее (первое) слово, которое входит в диапазон D800..DBFF. Младшие 10 бит (тоже число в диапазоне 0000..03FF) суммируются с DC00, и результат идёт в последующее (второе) слово, которое входит в диапазон DC00..DFFF. Я так понял, хитро кодируются. В принципе может это и не важно. Сейчас utf-8 рулит. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 12:05 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВ, тема топика - криптография? Какая решается задача - непонятно. Несмотря на действующее ограничение в 2Гб текстовые данные все равно обрабатываются в любом размере. Есть лог-файлы гораздо больше 2Гб и как-то с ними мы умудряемся работать. Поэтому если надо - можно пренебрегать этим ограничением. Но изначально надо поставить задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 12:33 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Dima T Если так, то 65536 тут не уместно, т.к. в UTF-16 есть неиспользованные коды Не используемые это какие? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 12:44 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВDima TЕсли так, то 65536 тут не уместно, т.к. в UTF-16 есть неиспользованные коды Не используемые это какие? Вот таблица юникода , полистай, там есть пустые клетки ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 13:02 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Dima TЕвгенийВпропущено... Не используемые это какие? Вот таблица юникода , полистай, там есть пустые клетки 1. Есть незаполненные значения, скажем выделили какому нибудь алфавиту диапазон из 100 символов, а в нем только 90, но это будут валидные значения. 2. Есть повторяющиеся символы. 3. Есть неправильно сформированные строки. msdnОбратите внимание, что String , поскольку экземпляр состоит из последовательной коллекции единиц кода UTF-16, можно String создать объект, который не является правильно сформированной строкой в Юникоде. Например, можно создать строку с младшим суррогатом без соответствующего старшего символа-заместителя. Хотя некоторые методы, такие как методы кодирования и декодирования объектов в System.Text пространстве имен, могут выполнять проверки, чтобы гарантировать, что строки имеют правильный формат, String члены класса не гарантируют, что строка имеет правильный формат. Нужны все строки всех строк, правильных, повторяющихся и не заполненных, за исключением 3 пункта. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 15:08 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
KreatorXXIВ utf-16 для символа строго два байтаДля кодовой точки, мопвашуять, для кодовой точки. Символы (глифы) состоят из одной или нескольких кодовых точек и этот факт не зависит от способа кодирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 17:04 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Вы пример какой-нибудь приведите. А то непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 17:46 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
KreatorXXI, снимается вопрос. Есть символы из двух двухбайтовых слов, т.н. суррогатные пары. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 17:54 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВНужны все строки всех строк, правильных, повторяющихся и не заполненных, за исключением 3 пункта. На Википедии ( https://ru.wikipedia.org/wiki/UTF-16) есть пример функции по декодированию. В ней зашито определение недопустимых диапазонов. Достаточно всё просто. Можно этим воспользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 18:02 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Вроде в Unicode символы могут быть составные. Например буква отдельно и аксент марки отдельно. Тогда, наверное, их кол-во врят ли ограничено (насколько помню, древне греческие буквы до 4 разных (или больше?) акцент марков в написании могут иметь). Но давно с этим разбирался. И в то время, полноценно Unicode почти никто не поддерживал ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 18:03 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВНужны все строки всех строк, правильных, повторяющихся и не заполненных, за исключением 3 пункта. Зачем? По пьяне поспорили кто точнее посчитает? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 20:26 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
KreatorXXIВы пример какой-нибудь приведите. А то непонятно."Cyrilic letter yo" - представлена как отдельной кодовой точкой, так и парой - "Cyrilic letter e" и акцентирующий код (диакритический знак). Второй пример - "иван-краткий". Это если совсем наглядно и не выходя за пределы кириллицы. P.S. Вот реально несложные вещи, изложенные на сайте консорциума во введении к стандартам и в ЧАВО. P.P.S. Что за эпидемия стильно-модно-молодёжных сайтов началась-то ... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 20:38 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Dima TЗачем? По пьяне поспорили кто точнее посчитает? Нужна формула, которая по данному N (количеству char) даст количество строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 21:34 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВDima TЗачем? По пьяне поспорили кто точнее посчитает? Нужна формула, которая по данному N (количеству char) даст количество строк. Есть ответ дофига, т.е. больше чем атомов во вселенной. Зачем дальше считать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 21:40 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Dima TЕсть ответ дофига, т.е. больше чем атомов во вселенной. Зачем дальше считать? Хочу все знать, интересует сама методика подсчета таких сумм. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 22:00 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВDima TЕсть ответ дофига, т.е. больше чем атомов во вселенной. Зачем дальше считать? Хочу все знать, интересует сама методика подсчета таких сумм. В фундаментальных науках обычно говорят не о подсчёте а об оценке. Тоесть. Мы берем предположение что будет текст который на 99% состоит из обычных символов unidoce (двухбайтных) и на 1% из т.н. code-points со средней длиной 2 char (четырехбайтных). Дальше - школа. Втрой класс. Работа с дробями и пропорциями. Считаем по вашим-же формулам в первом посте. Гнаться за супер-точностью порядка копеек в младших разрядах нет смысла т.к этот ответ ни на что не влияет. А для принятия решения в физике например просто берут старшие 10 десятичных разрядов и порядок числа а младшие - тупо игнорируют. По аналогии с типом double. Он работает похожим образом только основание системы не 10 а 2. Такие-же методики грубых оценок и сравнений к примеру использует Брюс Шнайер в своей книге "Практическая Криптография". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2019, 22:12 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВинтересует сама методика подсчета таких сумм. Тогда вам в школьную математику, раздел комбинаторика. В простейшем случае это перемноженные количества возможных значений для каждой из позиций. То есть, например, в двузначном числе в первой позиции 10 возможных значений и во второй 10. Поэтому всего двузначных чисел существует 10*10 = 100. Если в первой позиции вместо цифр будут латинские буквы, то количество достигнет 26*10 = 260. И так далее по аналогии. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 14:55 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, комбинаторика это не школьный курс, не надо передергивать, комбинаторику преподают на 1-2 курсах института, в профильных техникумах ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 15:24 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Roman MejtesDimitry Sibiryakov, комбинаторика это не школьный курс, не надо передергивать, комбинаторику преподают на 1-2 курсах института, в профильных техникумах Вроде как 10-11 класс. В техникумы обычно после 9-го идут, поэтому там ускоренно проходят программу 10-11 классов. Институты с мат.уклоном наверно углубленно изучают. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 15:35 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
Да комбинации юникодов автор правильно посчитал в 1 посту. Его вопрос касался длинных Unicode-последовтательностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 15:41 |
|
Сколько строк в .NET
|
|||
---|---|---|---|
#18+
maytonДа комбинации юникодов автор правильно посчитал в 1 посту. Его вопрос касался длинных Unicode-последовтательностей. Получается если все символы 2 байта, то 63488 1 073 741 823 комбинаций Если один 4-байтный, то 63488 1 073 741 821 * 1 112 064 1 два 4-байтных - 63488 1 073 741 819 * 1 112 064 2 и т.д. до 63488 1 * 1 112 064 536 870 911 Т.е. каждое последующее произведение получается делением на 63488 2 и умножением на 1 073 741 823. Или по другому это геометрическая прогрессия. Дальше посчитать по формуле суммы N элементов геометрической прогрессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 16:20 |
|
|
start [/forum/topic.php?fid=16&msg=39849481&tid=1339915]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 159ms |
0 / 0 |