powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сколько строк в .NET
38 сообщений из 38, показаны все 2 страниц
Сколько строк в .NET
    #39849106
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как известно, в .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
Как же быть?
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849114
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понял что считаем. Сколько уникальных строк можно сформировать в .NET ?

Если так, то 65536 тут не уместно, т.к. в UTF-16 есть неиспользованные коды

В общем случае можно смело ответить дофига, т.к. 65536 1 073 741 823 = 2 17 179 869 168 ~= 10 5 153 960 750
Дальше можно не считать, т.к. это уже мелочи по сравнению с этим числом.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849116
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

тут .Net наверно не причём. В utf-16 для символа строго два байта. Переменная длина в utf-8. А что вообще надо.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849149
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIВ utf-16 для символа строго два байта.
Не строго, есть 4-хбайтные, т.к. в юникоде на сегодня более миллиона символов, что никак не входит в 65536 (2 16 ).
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849160
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 рулит.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849188
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ, тема топика - криптография? Какая решается задача - непонятно.

Несмотря на действующее ограничение в 2Гб текстовые данные все равно обрабатываются
в любом размере. Есть лог-файлы гораздо больше 2Гб и как-то с ними мы умудряемся работать.

Поэтому если надо - можно пренебрегать этим ограничением. Но изначально надо поставить задачу.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849200
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Если так, то 65536 тут не уместно, т.к. в UTF-16 есть неиспользованные коды

Не используемые это какие?
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849215
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВDima TЕсли так, то 65536 тут не уместно, т.к. в UTF-16 есть неиспользованные коды

Не используемые это какие?
Вот таблица юникода , полистай, там есть пустые клетки
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849290
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕвгенийВпропущено...

Не используемые это какие?
Вот таблица юникода , полистай, там есть пустые клетки
1. Есть незаполненные значения, скажем выделили какому нибудь алфавиту диапазон из 100 символов, а в нем только 90, но это будут валидные значения.
2. Есть повторяющиеся символы.
3. Есть неправильно сформированные строки.
msdnОбратите внимание, что String , поскольку экземпляр состоит из последовательной коллекции единиц кода UTF-16, можно String создать объект, который не является правильно сформированной строкой в Юникоде. Например, можно создать строку с младшим суррогатом без соответствующего старшего символа-заместителя. Хотя некоторые методы, такие как методы кодирования и декодирования объектов в System.Text пространстве имен, могут выполнять проверки, чтобы гарантировать, что строки имеют правильный формат, String члены класса не гарантируют, что строка имеет правильный формат.
Нужны все строки всех строк, правильных, повторяющихся и не заполненных, за исключением 3 пункта.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849370
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIВ utf-16 для символа строго два байтаДля кодовой точки, мопвашуять, для кодовой точки.
Символы (глифы) состоят из одной или нескольких кодовых точек и этот факт не зависит от способа кодирования.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849401
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

Вы пример какой-нибудь приведите. А то непонятно.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849405
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,

снимается вопрос. Есть символы из двух двухбайтовых слов, т.н. суррогатные пары.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849409
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНужны все строки всех строк, правильных, повторяющихся и не заполненных, за исключением 3 пункта.

На Википедии ( https://ru.wikipedia.org/wiki/UTF-16) есть пример функции по декодированию. В ней зашито определение недопустимых диапазонов. Достаточно всё просто. Можно этим воспользоваться.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849410
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде в Unicode символы могут быть составные.

Например буква отдельно и аксент марки отдельно. Тогда, наверное, их кол-во врят ли ограничено (насколько помню, древне греческие буквы до 4 разных (или больше?) акцент марков в написании могут иметь).

Но давно с этим разбирался. И в то время, полноценно Unicode почти никто не поддерживал
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849471
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНужны все строки всех строк, правильных, повторяющихся и не заполненных, за исключением 3 пункта.
Зачем? По пьяне поспорили кто точнее посчитает?
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849481
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIВы пример какой-нибудь приведите. А то непонятно."Cyrilic letter yo" - представлена как отдельной кодовой точкой, так и парой - "Cyrilic letter e" и акцентирующий код (диакритический знак). Второй пример - "иван-краткий".
Это если совсем наглядно и не выходя за пределы кириллицы.

P.S.
Вот реально несложные вещи, изложенные на сайте консорциума во введении к стандартам и в ЧАВО.

P.P.S.
Что за эпидемия стильно-модно-молодёжных сайтов началась-то ...
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849498
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЗачем? По пьяне поспорили кто точнее посчитает?
Нужна формула, которая по данному N (количеству char) даст количество строк.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849502
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВDima TЗачем? По пьяне поспорили кто точнее посчитает?
Нужна формула, которая по данному N (количеству char) даст количество строк.
Есть ответ дофига, т.е. больше чем атомов во вселенной. Зачем дальше считать?
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849507
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсть ответ дофига, т.е. больше чем атомов во вселенной. Зачем дальше считать?
Хочу все знать, интересует сама методика подсчета таких сумм.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849514
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВDima TЕсть ответ дофига, т.е. больше чем атомов во вселенной. Зачем дальше считать?
Хочу все знать, интересует сама методика подсчета таких сумм.
В фундаментальных науках обычно говорят не о подсчёте а об оценке. Тоесть.
Мы берем предположение что будет текст который на 99% состоит из обычных
символов unidoce (двухбайтных) и на 1% из т.н. code-points со средней длиной
2 char (четырехбайтных).

Дальше - школа. Втрой класс. Работа с дробями и пропорциями. Считаем
по вашим-же формулам в первом посте.

Гнаться за супер-точностью порядка копеек в младших разрядах нет
смысла т.к этот ответ ни на что не влияет. А для принятия решения
в физике например просто берут старшие 10 десятичных разрядов
и порядок числа а младшие - тупо игнорируют. По аналогии с типом
double. Он работает похожим образом только основание системы не 10
а 2.

Такие-же методики грубых оценок и сравнений к примеру использует
Брюс Шнайер в своей книге "Практическая Криптография".
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849812
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВинтересует сама методика подсчета таких сумм.
Тогда вам в школьную математику, раздел комбинаторика. В простейшем случае это перемноженные количества возможных значений для каждой из позиций. То есть, например, в двузначном числе в первой позиции 10 возможных значений и во второй 10. Поэтому всего двузначных чисел существует 10*10 = 100. Если в первой позиции вместо цифр будут латинские буквы, то количество достигнет 26*10 = 260. И так далее по аналогии.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849849
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

комбинаторика это не школьный курс, не надо передергивать, комбинаторику преподают на 1-2 курсах института, в профильных техникумах
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849862
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesDimitry Sibiryakov,

комбинаторика это не школьный курс, не надо передергивать, комбинаторику преподают на 1-2 курсах института, в профильных техникумах
Вроде как 10-11 класс. В техникумы обычно после 9-го идут, поэтому там ускоренно проходят программу 10-11 классов. Институты с мат.уклоном наверно углубленно изучают.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849871
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да комбинации юникодов автор правильно посчитал в 1 посту. Его вопрос касался длинных Unicode-последовтательностей.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849891
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 элементов геометрической прогрессии.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849896
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что максимальный размер строки как был так и остался равен 2 гигабайтам.
Но автор ищет логический смысл. Тоесть смысл в символах класса кодовая точка.
А этот класс мы не можем точно посчитать. Только оценить. Типа верхняя граница.
Если 100% символов строки будут из кодовых точек. И наоборот.

Или некая средняя оценка где мы просто берем пропорцию. Если я правильно его понял.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849910
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исходный вопрос автора "строка в .NET"

Подозреваю, что ".NET", как и 99 % остальных языков программирования, никак корректность строк не проверяют. Некоректная Unicode строка это тоже вполне себе "строка в .NET"

Т.ч. все подробности про Unicode - в топку.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849954
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПолучается если все символы 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 элементов геометрической прогрессии.
Напутал немного, точнее не учел что 4-хбайтовые разряды могут быть в любом месте, т.е. каждое из слагаемых это только сколько значений могут принять все разряды, надо каждый умножить на количество комбинаций как могут быть расположены 2х и 4хбайтовые символы.

Например для двух 4-байтных - 63488 1 073 741 819 * 1 112 064 2 * (1 073 741 819 + 2)! / (1 073 741 819! * 2!)

Геометрическая прогрессия отменяется, но т.к. тут факториалы добавились, то есть такое подозрение что самый большой элемент будет в середине последовательности, когда 2х и 4байтныйх поровну, и будет центр на много порядков выше краев, т.е. достаточно посчитать 10-100 средних элементов чтобы получить итого с высокой точностью.

PS Боюсь для записи итого в виде 10^X потребуется очень много циферок для записи X.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849957
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ думаю что максимальный размер строки как был так и остался равен 2 гигабайтам.
Но автор ищет логический смысл. Тоесть смысл в символах класса кодовая точка.
А этот класс мы не можем точно посчитать. Только оценить. Типа верхняя граница.
Если 100% символов строки будут из кодовых точек. И наоборот.

Или некая средняя оценка где мы просто берем пропорцию. Если я правильно его понял.
Я так понял что надо вычислить сколько может быть уникальных строк в кодировке UTF-16 размером до 1 073 741 823 * 2 байт.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849967
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TmaytonЯ думаю что максимальный размер строки как был так и остался равен 2 гигабайтам.
Но автор ищет логический смысл. Тоесть смысл в символах класса кодовая точка.
А этот класс мы не можем точно посчитать. Только оценить. Типа верхняя граница.
Если 100% символов строки будут из кодовых точек. И наоборот.

Или некая средняя оценка где мы просто берем пропорцию. Если я правильно его понял.
Я так понял что надо вычислить сколько может быть уникальных строк в кодировке UTF-16 размером до 1 073 741 823 * 2 байт.
В общем и целом, но важней как считать, методика.
Для 10 байт = 5 char
‭1 031 490 117 213 424 000 759 808‬ +
‭ 268 333 472 997 988 892 672‬ * 2 +
‭ 69 805 794 224 242 688‬ * 2 +

А вообщем?
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849975
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Укладка рюкзака.

Чьорт. Это задача уже поздаколебала.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849991
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ...А вообщем?
Где-то в 4-5 классе школы была такая задача на мат. кружке

но давно это было, т.ч. ответ я уже не помню, искать в википедии тоже лениво
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849992
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39849993
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 + n + n**2 + n**3 +... n**m

дофига
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39850007
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonУкладка рюкзака.

Чьорт. Это задача уже поздаколебала.
Не, тут рюкзак бесконечен, т.е. тут задача определить подходящий размер рюкзака.
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39850008
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev1 + n + n**2 + n**3 +... n**m

дофига
Я так и сказал в начале 21948910 , но оказалось намного порядков больше 21950371
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39850028
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev1 + n + n**2 + n**3 +... n**m

дофига
Не забудь прибавить String.Empty!
...
Рейтинг: 0 / 0
Сколько строк в .NET
    #39855368
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevПодозреваю, что ".NET", как и 99 % остальных языков программирования, никак корректность строк не проверяют.

В .NET у строк есть метод Normalize, которые в том числе проверяет корректность строки.

Если 99% любых остальных языков будут проверять корректность всех строк всегда, производительность ПО встанет раком.

И что там за таинственный 1%, можно поинтересоваться? :)
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сколько строк в .NET
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]