Есть ответ 👍

Как называются знаки, имеющие форму, похожую на отражающий объект

284
497
Посмотреть ответы 2

Ответы на вопрос:


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

Язык программирования не указан, сказано только, что была сделана попытка создать алгоритм в пайтоне, но работа оказалась медленной. это не удивительно, ведь пайтон - интерпретатор и там уж не до оптимизации. предлагаю решение на pascalabc.net. приводятся тайминги пяти прогонов, разрешение таймера - 16 мс. исходные последовательности: - 1 млн случайных целых из [100; 2000]; - 2 млн случайных целых из [50; 1500]; - 3 млн случайных целых из [1; 1000]; алгоритм: - генерируем последовательности; - создаем и заполняем для каждой последовательности частотный словарь в виде кортежа < ключ> < количество> , где ключ - значение элемента, количество - количество раз, которое этот элемент встретился в последовательности; - создаем последовательности ключей для всех трех словарей и находим их пересечение; - удаляем из каждого словаря элементы, ключей которых нет в пересечении; - создаем на основе каждого словаря последовательность значений (частот) и сортируем её по возрастанию; - для каждой пары значений первой и второй последовательности выбираем минимальное значение, а затем поступаем так же с результирующей и третьей последовательностью, находя в конце сумму её членов. // pascalabc.net 3.2, сборка 1374 от 10.01.2017 // внимание! если программа не работает, обновите версию! begin   var t0: =milliseconds;   var a1: =arrrandom(1000000,100,2000);   var a2: =arrrandom(2000000,50,1500);   var a3: =arrrandom(3000000,1,1000);   var t1: =millisecondsdelta;   writeln('инициализация: ',t1,' мс');   millisecondsdelta;     var d1: =new dictionary< integer,integer> ;   foreach var e in a1 do d1[e]: =d1.get(e)+1;   var d2: =new dictionary< integer,integer> ;   foreach var e in a2 do d2[e]: =d2.get(e)+1;   var d3: =new dictionary< integer,integer> ;   foreach var e in a3 do d3[e]: =d3.get(e)+1;   t1: =millisecondsdelta;   writeln('заполнены частотные словари: ',t1,' мс');   millisecondsdelta;     var kd1: =d1.select(e-> e.key).toarray;   var kd2: =d2.select(e-> e.key).toarray;   var kd3: =d3.select(e-> e.key).toarray;   var ki: =kd1.intersect(kd2).intersect(kd3); // пересечение ключей   t1: =millisecondsdelta;   writeln('получено пересечение ключей: ',t1,' мс');   millisecondsdelta;     foreach var k in kd1 do       if not (k in ki) then d1.remove(k);   var v1: =d1.orderby(x-> x.key).select(x-> x.value);   foreach var k in kd2 do       if not (k in ki) then d2.remove(k);   var v2: =d2.orderby(x-> x.key).select(x-> x.value);   foreach var k in kd3 do       if not (k in ki) then d3.remove(k);   var v3: =d3.orderby(x-> x.key).select(x-> x.value);   var m: =v1.zip(v2,(x,y)-> min(x,(v3,(x,y)-> min(x,;   t1: =millisecondsdelta;   writeln('получен результат: ',t1,' мс');   millisecondsdelta;   writeln(m); end. результаты инициализация: 234 мс заполнены частотные словари: 312 мс получено пересечение ключей: 0 мс получен результат: 1000 мс 474970 инициализация: 234 мс заполнены частотные словари: 312 мс получено пересечение ключей: 16 мс получен результат: 984 мс 474137 инициализация: 250 мс заполнены частотные словари: 312 мс получено пересечение ключей: 16 мс получен результат: 984 мс 474176 инициализация: 234 мс заполнены частотные словари: 312 мс получено пересечение ключей: 0 мс получен результат: 1000 мс 474090 инициализация: 234 мс заполнены частотные словари: 312 мс получено пересечение ключей: 16 мс получен результат: 984 мс 474108 как видно из результатов, в указанных условиях из 6 млн значений отбирается примерно 475 тыс и занимает это порядка полутора секунд на достаточно немолодом пк c процессором intel core 2 duo (3 ггц) и 2 гб оперативной памяти. вполне приемлемо.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

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

Подпишись на наш телеграмм канал

GTP TOP NEWS