Каждый использует как исходное данное номер по журналу:

например, номер 29.
Тогда исходное число для практической работы двадцать девять (29) -это первое число
Читаем его следующим образом: одна двойка, одна девятка (1219) - это следующее число
Читаем его следующим образом: две единицы, одна двойка, одна девятка (211219) - это следующее число
Читаем теперь его: три единицы, две двойки, одна девятка (312219) - это следующее число
И так далее.
Теперь задание по существу: в получающемся ряду могут оказаться
довольно значительные по величине числа и надо спланировать где их
хранить, например первое число ряда поместится в коротком целом без
знака, но третье из ряда там уже не поместится и придется его хранить
в беззнаковом целом (длинном целом) или даже как вещественное (двойной
точности)
Считать надо до тридцатого включительно и запланировать минимально
потребное количество памяти под все тридцать величин, допустим, в моем
случае - один байт под первое число, два под второе, и четыре под
все (каждое) последующие 28 чисел, итого 1*1+2*1+4*28=115 байт
(не годится вариант хранить каждое в четырех байтах, потому что
потратим больше памяти)
Можно рассмотреть вариант хранения числа в виде строки цифр, тогда
первое число из разбираемого варианта займет 2 байта, второе 4 байта,
третье шесть и так далее. Вариант, очевидно, не лучше предыдущего.
Однако, можно съэкономить, используя так называемое двоично-десятичное
представление, когда цифры числа занимают полубайт, такой формат
предусмотрен в процессорах фирмы интел. Тогда первое число занимает 1
байт, второе - два байта, третье - три байта (так как запись содержит
шесть десятичных цифр). Это представление может оказаться более
экономным по расходу памяти, но более кропотливым по офрмлению
программы расчета по описанному алгоритму всего ряда значений (следует
учесть так же невозможность хранения нецелого числа байт, полубайт
придется учитывать как целый).
На самом деле, ряд может и выродиться, например, если на очередном шагу,
получим запись вида 31123319, то ряд вырождается и новых чисел мы в
нем уже не увидим. Фактически, так записанные числа, это своего рода
стоп-слово, после которого алгоритм расчета ряда будет
повторять это число, а память под него уже выделена и нового места не
потребуется.

Итак, ожидается от вас ряд значений, сформированный по правилу, с
указанием лучшего варианта хранения результата расчета по критерию
затрат памяти под числовые данные.

Второй расчет с следует проделать для своего дня рождения записанного
в формате день-месяц-год, например:
первое января две тысячи первого года = 01012001=1012001
Весь сгенеренный ряд чисел (в объеме 20 штук) следует рассматривать
как последовательность (псевдо)случайных десятичных цифр (из диапазона
0-9) о котором от вас ожидается оценка случайности данного ряда.

Это задание является аттестационным на рубежный контроль.

Схема расчета значений следующая, каждое очередное число записывается
как итог прочтения предыдущего в цифрах:
тогда первое записанное в ряду число (1012001),
второе (111011122011), то есть как бы читается предыдущее число -
одна единица, один ноль, одна единица, одна двойка, два нуля, одна единица.
третье (311031221021) - то есть предыдущее читается как три единицы,
один ноль, три единицы, две двойки, один ноль, две единицы и т.д.,
для построения ряда цифр следует использовать числа до двадцатого
прочитаннного таким образом числа включительно. Т.О. на случайность
анализируется следующая серия цифр 1012001111011122011311031221021...
записанная до исчерпания всех цифр всего сгенеренного ряда
"прочитанных" чисел. Получившаяся серия может не содержать всех
десятичных цифр, в этом случае учитываем только частоты цифр до
старшей встретившейся, в случае изображенной части ряда,
построение частот предполагает только частоты цифр 0, 1, 2 и 3.

Для оценки случайности ряда цифр используйте не менее трех
критерией на ваш выбор.

тэ10л тэ10л    1   18.03.2020 15:38    0

Другие вопросы по теме Информатика