М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
hahafbdch
hahafbdch
23.04.2023 01:23 •  Информатика

Каждый из 10 населенных пунктов соединен автодорогами (без проезда через промежуточные пункты). При этом автобусное сообщение существует только между следующими населенными пунктами: Нахабино и Аникеевка, Прудок и Ермолино и Любань, Бужарово и Марушкино, Нахабино и Любань, Аникеевка и Ермолино и Бужарово, Дарна и Кашино, Дарна и Кашино и Марушкино.

1. Постройте граф по этому описанию.

2. Сколько всего существует автодорог между населенными пунктами?

3. Можно ли с автобусного сообщения попасть из Нахабино в Прудок?

4. С каким наименьшим количеством пересадок можно доехать из Марушкино в Прудок?

5. Какой маршрут можно открыть, что бы автобусное сообщение существовало между всеми 10 населенными пунктами?

👇
Открыть все ответы
Ответ:
лев234325
лев234325
23.04.2023
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
const
  m = 10;

var
  t: array[1..m] of integer;
  i, n, nm, sm: integer;

begin
  //Заполняем массив сл.числами и подсчитываем
  //количество элементов и среднее арифметическое
  //согласно условию задачи
  for i := 1 to m do
  begin
    t[i] := random(-20, 20);write(t[i]:4);
    if (i > 1) and (i <= m) then
      if t[i] > t[i - 1] then n := n + 1
      else if t[i] < t[i - 1] then begin
        sm := sm + t[i];nm := nm + 1;
      end;
  end;
  writeln;
  writeln('число элементов больших предыдущего = ', n);
  writeln('ср. арифметическое элементов меньших предыдущего = ', sm / nm);  
 
end.

Тестовое решение:
    6  13  19   8 -19 -11 -20 -15 -19 -13
число элементов, больших предыдущего = 5
среднее арифметическое элементов, меньших предыдущего = -12.5
4,6(68 оценок)
Ответ:
ммрк
ммрк
23.04.2023

100000! содержит "всего" 456574 цифр, так что по крайней мере имеет смысл попытаться начать решать задачу.

Вот наивный алгоритм, который вычисляет факториал по определению (n! = 1 * 2 * 3 * ... * n):

Код (Python 3):

prod = 1

for i in range(1, 100000 + 1):

   prod *= i

Количество нулей в конце в числе prod можно найти, например, так (результат находится в переменной count):

Код (Python 3):

count = 0

while prod % 10 == 0:

   count += 1

   prod //= 10

Наконец, проверим, сколько времени считался результат. Импортируем из модуля time функцию perf_counter, запустим её в начале программы и в конце. Разность результатов - время работы программы в секундах.

Итого получаем такую программу:

Код (Python 3):

from time import perf_counter

start = perf_counter()

prod = 1

for i in range(1, 100000 + 1):

   prod *= i

print(prod)

count = 0

while prod % 10 == 0:

   count += 1

   prod //= 10

print(count)

end = perf_counter()

print(end - start)

Вывод полностью приводить не буду, скажу только, что вычисление на моём компьютере заняло меньше 15 секунд.

4,7(46 оценок)
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ