cuvluroyeoc
09.11.2020 14:40

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

например, номер 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.

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Noka1319
30.01.2020 23:47
Var 
s,s1,s2,st1,st2:string; i:integer; 
mn:set of char; b:boolean;
begin
writeln('Введите текст:');
readln(s);
s:=s+' ';
st1:=''; st2:='';
s1:=''; s2:=''; mn:=[]; b:=false;
while pos('  ',s)>0 do delete(s,pos('  ',s),1);
for i:=1 to length(s) do
 if s[i]<>' '
  then begin 
       s1:=s[i]+s1;
       s2:=s2+s[i];
       if s[i] in mn then b:=true;
       mn:=mn+[s[i]];
       end
  else begin
       if s1=s2 then st1:=st1+s1+' ';
       if not b then st2:=st2+s2+' ';
       s1:=''; s2:=''; mn:=[]; b:=false;
       end;
if st1<>''
 then writeln('Слова-перевёртыши: ',st1)
 else writeln('Слов-перевёртышей нет');
if st2<>''
 then writeln('Слова без повторяющихся букв: ',st2)
 else writeln('Слов без повторяющихся букв нет');
end.

Пример:
Введите текст:
заказ слово комок  пробел след пример огонь текст
Слова-перевёртыши: заказ комок 
Слова без повторяющихся букв: пробел след 
0,0(0 оценок)
Ответ:
Привет14963
28.03.2023 18:42
Using System;

public class Test
{
    public static int Main()
    {
        Random rnd=new Random(DateTime.Now.Millisecond); // иниц. датчика
        int n=Convert.ToInt32(Console.ReadLine());
        double[] Arr=new double[n];
        double e, max=0;
        for(int i=0;i<Arr.Length; i++)
        {
            Arr[i]=(int)(rnd.Next(1,99));
            Console.Write(Arr[i]+" ");
            e=Math.Abs(Arr[i]);
            if(e>max) max=e;
        }
        Console.WriteLine("\nmax={0:f1}",max);
        return 0;
    }
}

Пример
15
56 9 1 94 34 42 46 71 2 27 91 37 54 31 66
max=94.0
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота