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

Создайте программу, которая будет симулировать бросок игрального кубика. каждый бросок будет генерироватся случайно число в депозоне [1,6]. кубик перекидывается n раз. после чего, программа выводит на экран сколько раз выпало каждое значение. и отдельно выводится информация о том, какое значение выпадало больше всего раз. n целое число, которое вводится с клавиатуры язык pascal and.net

👇
Ответ:
Medvedevatanya1
Medvedevatanya1
15.06.2021
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),1,6); a.Println;
  var s:=a.GroupBy(t->t).Select(t->(t.Key,t.Count)).OrderBy(t->t[0]);
  s.Println;
  var max:=s.MaxBy(t->t[1]);
  Writeln('Наиболее частое значение: ',max[0])
end.

Пример
n= 50
1 2 5 5 4 2 5 3 5 3 5 5 5 4 2 4 3 3 3 3 6 6 5 4 2 5 5 5 4 5 3 1 5 1 1 3 6 2 6 6 5 2 6 5 2 5 5 5 6 5
(1,4) (2,7) (3,8) (4,5) (5,19) (6,7)
Наиболее частое значение: 5
4,5(68 оценок)
Открыть все ответы
Ответ:
Сенсей14
Сенсей14
15.06.2021

Какой оператор цикла желательно использовать, если известно число повторений тела цикла?

repeat <оператор1, …>until <условие>

while <условие>do <оператор>

for <параметр>:= <начальное значение>to<конечное значение> do<оператор>

2. Используется оператор for i:= -10 to 10 do…

После завершения выполнения тела цикла i = 10

3. Цикл в фрагменте программы

p:=1;

repeat

p:=p*0.1

until p>0.1;

будет исполнен:

1 раз

2 раза

бесконечное число раз

0 раз

3 раза

4. Цикл в фрагменте программы

a:=1;

b:=1;

while a+b<8 do

begin

a:=a+1; b:=b+2

end;

выполнится:

0 раз

3 раза

2 раза

1 раз

бесконечное число раз

5. Какой оператор цикла желательно использовать для записи алгоритмической конструкции, изображённой на схеме?

НЕТ СХЕМЫ. ОТВЕТИТЬ НА ВОПРОС НЕВОЗМОЖНО.

while <условие> do <оператор>

for <параметр>:= <начальное значение> to <конечное значение> do <оператор>

repeat <оператор1, …> until <условие>

6. Какой оператор цикла желательно использовать, если известно условие выхода из цикла?

repeat <оператор1, …> until <условие>

for <параметр>:= <начальное значение> to <конечное значение> do <оператор>

while <условие> do <оператор>

7. Определите, какое значение будет выведено на экран в результате выполнения приведенной ниже последовательности операторов:

a:=1; b:=1;

while a<=32 do a:=a*2; b:=b*a;  //Обратите внимание! Нет begin end.

write (b)

32

256

64

128

8. Используется оператор for i:= -5 to 9 do…

При первом выполнении тела цикла i = -5

9. Чему равно значение переменной s после выполнения следующего фрагмента программы

Фрагмента программы нет! Задание решить нельзя!

4,8(40 оценок)
Ответ:
Vikysay10
Vikysay10
15.06.2021

Объяснение:

Эта задача сводится к задаче поиска пути на графе пространства состояний.

Состояние - положение черепашки на поле - (x, y).

Граф пространства состояний состоит из таких вершин-состояний, их количество N * M.

Переходов между вершинами всего два: R и D.

Здесь можно заметить, что прийти к одним и тем же вершинам мы можем разными путями. Например, путь из (0,0) в (1,1) можно расписать и как RD ((0,0) -> (0,1) -> (1,1)), и как DR ((0,0) -> (1,0) -> (1,1)), но это два разных маршрута.

Однако при неизменном ценовом листе максимальная стоимость и оный маршрут в любой клетке поля значение строго определённое и неизменное во времени.

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

Итак, для каждого состояния у нас есть два правила перехода. Рассчитывая максимальную стоимость маршрута для состояния (x,y) мы следуем алгоритму:

Если можем идти вправо, рассчитываем параметры для этого маршрутаЕсли можем идти вниз, рассчитываем параметры для этого маршрутаВыбираем между путями, если можем идти, или стоим, если уже не можемК выбранному варианту добавляем параметры текущего состояния

Если такой алгоритм применить к состоянию (0,0), то дойдем до (N, M) и получим максимальную цену и маршрут.

Код:

import re

from typing import List

cache = {}

def calculate_max_way_price(x: int, y: int, prices: List[List[int]], m:int, n:int):

   if (x, y) in cache:

       return cache[(x, y)]

   direction = ''

   cost = prices[y][x]

   x_cost, y_cost = -1, -1

   x_way, y_way = '', ''

   if x < m - 1:

       x_cost, x_way = calculate_max_way_price(x + 1, y, prices, m, n)

   if y < n - 1:

       y_cost, y_way = calculate_max_way_price(x, y + 1, prices, m, n)

   if not (x_cost < 0 and y_cost < 0):

       if x_cost > y_cost:

           cost += x_cost

           direction = 'R' + x_way

       else:

           cost += y_cost

           direction = 'D' + y_way

   cache[(x, y)] = (cost, direction)

   return cost, direction

MNtext = input('Enter N M: ')

MN = [int(x) for x in re.findall(r'\d+', MNtext)]

if len(MN) != 2:

   print("Input data error! It is not M and N")

   exit(-1)

N, M = MN[0], MN[1]

MAX_STEP_PRICE = 100

data = input('Enter all numbers separated by spaces. You must type ' + str(M*N) + ' elements:')

data = [int(x) for x in re.findall(r'\d+', data)]

if len(data) != N * M:

   print("Input data error! Too few/many numbers")

   exit(-2)

prices = []

for j in range(N):

   prices.append(data[M*j:M*(j+1)])

print(calculate_max_way_price(0, 0, prices, M, N))

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