С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 18.07.2022
Сообщений: 3
1

Алгоритмическая задача из вступительного экзамена

18.07.2022, 10:03. Показов 2269. Ответов 17

Author24 — интернет-сервис помощи студентам
Есть задача, которую мне не получается осилить.

Имеется блок схема (рисунок)
Алгоритмическая задача из вступительного экзамена

далее текст задания:
Массив mas имеет размер N элементов. Перед началом выполнения алгоритма массив заполнен нулями. Необходимо определить значение y, при условии, что значение переменной x = 1024, значение переменной N = 100, а значение переменной res = 3141

Обозначения:
  • = - присваивание значений переменной;
  • / - частное от целочисленного деления;
  • == - проверка на равенство;
Кликните здесь для просмотра всего текста

Лирика:
Сразу не читая текст я попытался набросать код на основе блок схемы и завис на операции, не найдя переменную l
Код
i = l + 1;
Казалось бы мне, ошибка в задании, но (возможно) нет. Прочитав текст задания несколько раз, с надеждой найти волшебную l, я начал понимать, что задачка на алгоритмы плавно перетекает в решение уравнения, или нет?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
18.07.2022, 10:03
Ответы с готовыми решениями:

Алгоритмическая задача бинарная последовательность
Естественно код не нужен, а только на словах

Вероятность сдачи вступительного экзамена
вероятность сдачи вступительного экзамена для выпускников школы равна 0.8. Сколько нужно...

Онлайн-тест (вступительного экзамена) в институте
Добрый день коллеги, Онлайн-тест (вступительного экзамена) в институте. Исходные данные: 1)...

Даны результаты вступительного экзамена. Отобрать абитуриентов, у которых оценка не ниже 3
Помогите пожалуйста Даны результаты вступительного экзамена по математике. Он содержит фамилию...

Типизированные файлы.Дан файл,содержащий сведения о результатах вступительного экзамена по математике.
Дан файл,содержащий сведения о результатах вступительного экзамена по математике. Он содержит...

17
673 / 547 / 74
Регистрация: 20.09.2014
Сообщений: 3,560
18.07.2022, 10:16 2
Там не l, а I. Caps Lock не отжали. ;-)
i = i + 1
Неужели незнакомы с таким?
0
0 / 0 / 0
Регистрация: 18.07.2022
Сообщений: 3
18.07.2022, 10:40  [ТС] 3
Mikhaylo, я знаю про инкремент, но я воспринял задачу буквально.
Допустим нет ошибки и там инкремент, то по тексту задачи, как я понял, нужно выполнить алгоритм каким-то образом задом наперед, чтобы получить переменную y?
0
673 / 547 / 74
Регистрация: 20.09.2014
Сообщений: 3,560
18.07.2022, 11:19 4
У вас же два варианта вычисления res.
res = y + mas[?]
Нужно определить, какое из условий сработает, ту формулу и выбрать.
y = res - mas[?]
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,270
18.07.2022, 15:05 5
При том, что mas[N-1] всегда 0 при данных условиях, то y = res-x
0
6172 / 937 / 310
Регистрация: 25.02.2011
Сообщений: 1,373
Записей в блоге: 1
18.07.2022, 15:42 6
Лучший ответ Сообщение было отмечено dkozyarskij как решение

Решение

Цитата Сообщение от dkozyarskij Посмотреть сообщение
Необходимо определить значение y, при условии, что значение переменной x = 1024, значение переменной N = 100, а значение переменной res = 3141
у меня получилось:
x = 1024
y = 70
res = 3141

y = 3141 - 1024 - 1024 - 512 - 256 -128 - 64 - 32 - 16 - 8 - 4 - 2 - 1 = 70
0
1017 / 1905 / 178
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
18.07.2022, 15:43 7
Цитата Сообщение от dkozyarskij Посмотреть сообщение
Необходимо определить значение y
Если учесть, что мы его вводим, - от балды.
0
6172 / 937 / 310
Регистрация: 25.02.2011
Сообщений: 1,373
Записей в блоге: 1
18.07.2022, 15:49 8
упрощаем математически, получаем:
y = res - x * 3 + 1
для N > log2(x)
0
1017 / 1905 / 178
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
18.07.2022, 16:26 9
Цитата Сообщение от m-ch Посмотреть сообщение
y = 3141 - 1024 - 1024 - 512 - 256 -128 - 64 - 32 - 16 - 8 - 4 - 2 - 1 = 70
Где в блоксхеме игреку присваивается значение 3141?

ps: В огороде бузина, а в Киеве дядька.
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,270
18.07.2022, 17:11 10
для N > log2(x)
Таки log2(x)+1
0
1017 / 1905 / 178
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
18.07.2022, 17:33 11
Цитата Сообщение от dkozyarskij Посмотреть сообщение
Необходимо определить значение y
Цитата Сообщение от m-ch Посмотреть сообщение
y = res - x * 3 + 1
Цитата Сообщение от Parramon Посмотреть сообщение
Таки log2(x)+1
Вы начальное значение "y" откуда берете?
1
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,270
18.07.2022, 18:59 12
Цитата Сообщение от vantfiles Посмотреть сообщение
Вы начальное значение "y" откуда берете?
А зачем оно? Надо определить начальное или конечное значение? Конечное - мой вариант. Начальное - m-ch
1
1017 / 1905 / 178
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
18.07.2022, 19:22 13
Цитата Сообщение от Parramon Посмотреть сообщение
А зачем оно?
А вот это для кого?

Название: Screenshot_2.jpg
Просмотров: 108

Размер: 4.5 Кб
1
0 / 0 / 0
Регистрация: 18.07.2022
Сообщений: 3
18.07.2022, 19:40  [ТС] 14
Всем спасибо за ответы, я разобрался.
Накидал такую штуку на C#, выходит тоже 70 как у m-ch
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
                    
public class Program
{
    public static void Main()
    {
        int x = 1024;
        int y = 0;
        int N = 100;
        int res = 3141;
        int i = 0;
        int[] mas = new int[N];
            while(x > 0){
                mas[i] = x;
                res = res - mas[i];
                x = x / 2;
                i = i + 1;
                Console.WriteLine($"res = {res}; x = {x}; i = {i};");
            }
        if(mas[N-1] == 0){
            y = res - mas[0];
            Console.WriteLine("1");
        }
        else{
            y = res - mas[N-1];
            Console.WriteLine("0");
        }
        Console.WriteLine(y);
    }
}
Что в выводе:
Кликните здесь для просмотра всего текста
Output:
res = 2117; x = 512; i = 1;
res = 1605; x = 256; i = 2;
res = 1349; x = 128; i = 3;
res = 1221; x = 64; i = 4;
res = 1157; x = 32; i = 5;
res = 1125; x = 16; i = 6;
res = 1109; x = 8; i = 7;
res = 1101; x = 4; i = 8;
res = 1097; x = 2; i = 9;
res = 1095; x = 1; i = 10;
res = 1094; x = 0; i = 11;
1
70

Проверил по блок-схеме подставив 70, получается как и по тексту задачи - 3141. В общем спасибо.
0
6172 / 937 / 310
Регистрация: 25.02.2011
Сообщений: 1,373
Записей в блоге: 1
19.07.2022, 09:23 15
Цитата Сообщение от vantfiles Посмотреть сообщение
Где в блоксхеме игреку присваивается значение 3141?
Нигде, это значение должно получится у результата res, нужно определить значение исходных параметров (в частности y, который не известен), это следует из постановки задачи:
Необходимо определить значение y, при условии, что значение переменной x = 1024, значение переменной N = 100, а значение переменной res = 3141
Цитата Сообщение от vantfiles Посмотреть сообщение
А вот это для кого?
это алгоритм программы, которая вычисляет значение res при заданных x, y и N

Цитата Сообщение от vantfiles Посмотреть сообщение
Вы начальное значение "y" откуда берете?
ну собственно y и надо определить, чтобы res получился 3141 при заданном x = 1024 и N > 11
При N <= 11 вычисления пойдут по другому сценарию, кроме того в алгоритме нет обхода ситуации, что если i получится больше N (размерности массива mas() ), то это приведет к ошибке выполнения программы при присваивании значения mas(i) = x (с поправкой, что вместо i = l + 1 должно быть i = i + 1)
0
Модератор
Эксперт функциональных языков программирования
3077 / 2226 / 462
Регистрация: 26.03.2015
Сообщений: 8,630
20.07.2022, 22:26 16
Цитата Сообщение от vantfiles Посмотреть сообщение
Где в блоксхеме игреку присваивается значение 3141?
Вопрос в задаче:
каким должно быть y на входе, чтобы на выходе получилось res = 3141?
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,270
20.07.2022, 22:53 17
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вопрос в задаче:
каким должно быть y на входе, чтобы на выходе получилось res = 3141?
Вопрос в задаче: Необходимо определить значение y
0
673 / 547 / 74
Регистрация: 20.09.2014
Сообщений: 3,560
21.07.2022, 01:29 18
На входе y неопределен, при вводе y=70, на выходе y=2117. Все ответы верные)
0
21.07.2022, 01:29
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
21.07.2022, 01:29
Помогаю со студенческими работами здесь

VB6.0 Типизированные файлы.Дан файл,содержащий сведения о результатах вступительного экзамена по математике.
Дан файл,содержащий сведения о результатах вступительного экзамена по математике. Он содержит...

Алгоритмическая задача
При делении на 5 в остатке получается 2, а при делении на 7 в остатке 1

Алгоритмическая задача на perl 6
Всем привет! Не являюсь perl специалистом, но возникла интересная задача в этой области, не знаю с...

Алгоритмическая задача на питоне
Всем привет! Совсем недавно начал изучать алгоритмические задачи на питоне и наткнулся на одну...

Алгоритмическая задача на объединение мелких файлов
Добрый день! Возникла такая алгоритмическая задачка. В директории с программой лежит много...

Алгоритмическая задача на питоне, как улучшить код?
Всем привет! Недавно изучаю алгоритмические задачи на питоне, сделал одну задачу, хотел бы узнать,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru