|
Задача с массивом | ☑ | ||
---|---|---|---|---|
0
GrandOpera
06.08.16
✎
14:50
|
Дан целочисленный массив из 50 элементов. Элементы массива могут принимать значения от 100 до 150-сведения о сборе пшеницы с одного гектара земли.
Опишите на языке программирования алгоритм, который находит максимальную разницу между порядковыми номерами гектаров, с которых собрали одинаковое количество пшеницы. Гарантируется, что есть по крайней мере одна пара элементов с одинаковыми значениями. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные не объявленные ниже, но разрешается не использовать часть них. Const N=50; Var A: array [1..n] of integer; I, j, max: integer; |
|||
1
Lexey_
06.08.16
✎
15:01
|
(0) прикольно
|
|||
2
Garykom
гуру
06.08.16
✎
15:17
|
if A[1]=A[50] then max := 49;
if A[1]=A[49] then max := 48; if A[2]=A[50] then max := 48; if A[1]=A[48] then max := 47; if A[2]=A[49] then max := 47; if A[3]=A[50] then max := 47; if A[1]=A[47] then max := 46; if A[2]=A[48] then max := 46; if A[3]=A[49] then max := 46; if A[4]=A[50] then max := 46; //... дальше сами... |
|||
3
mkalimulin
06.08.16
✎
15:18
|
(0) Школьная задача. Зачем это здесь?
|
|||
4
mkalimulin
06.08.16
✎
15:18
|
(2) По-мужски.
|
|||
5
Garykom
гуру
06.08.16
✎
15:25
|
По умному это кто заметил что в (0) еще дали 50 дополнительных переменных для "хранения"?
|
|||
6
Garykom
гуру
06.08.16
✎
15:33
|
(4) Да причем у меня в коде ошибка, найдет минимальную разницу а не максимальную. Нужно все строчки с конца выполнять, т.е. перевернуть их наоборот.
|
|||
7
Кирпич
06.08.16
✎
20:23
|
(2)А в чем подвох? Циклы нельзя использовать что ли или чо?
|
|||
8
youalex
06.08.16
✎
21:06
|
запрос нельзя использовать?
|
|||
9
mkalimulin
06.08.16
✎
21:15
|
(8) Надо "описать алгоритм"
|
|||
10
Кирпич
06.08.16
✎
21:15
|
(8) после (2) ничего смешнее уже не нашутишь
|
|||
11
Кирпич
06.08.16
✎
21:22
|
Это задача из ЕГ. Представляю, ученик сдает решение на пяти листах как (2). Сочинение по информатике "Почему я люблю паскаль" :)
|
|||
12
Garykom
гуру
06.08.16
✎
21:26
|
(11) Зато все четко по ТЗ, включая "Запрещается использовать переменные не объявленные ниже, но разрешается не использовать часть них. "
|
|||
13
youalex
06.08.16
✎
21:28
|
(10) это не шутка. Просто эта задача решается простейшим запросом.
|
|||
14
Кирпич
06.08.16
✎
21:31
|
(13) дети в школе на паскале пишут и на си. Какие нафиг запросы
|
|||
15
Кирпич
06.08.16
✎
21:32
|
(12) так можно по тз и в 3 строчки уложиться, а не в 50 :)
|
|||
16
youalex
06.08.16
✎
21:32
|
(13) + то есть понятно, что первым и самым очевидным решением будет два цикла и использование max(). Но это же банально)
|
|||
17
Кирпич
06.08.16
✎
21:36
|
(16) ну придумай не банально. Наверное можно. В задаче вроде намекают, что можно.
|
|||
18
youalex
06.08.16
✎
21:39
|
(17) я - уже придумал. Правда - вышел за рамки бредового условия.
|
|||
19
Asmody
06.08.16
✎
21:40
|
цикл в цикле, внутри условие. я такого добра с дочкой нарешал в том году на две общие тетради.
|
|||
20
Кирпич
06.08.16
✎
21:42
|
(18) за рамки условия нельзя выходить, тогда смысла нету
|
|||
21
Кирпич
06.08.16
✎
21:43
|
(19) да мы в курсе. Garykom только чота психанул
|
|||
22
Garykom
гуру
06.08.16
✎
21:47
|
(17) Ну можно "Неравенством о средних" попытаться воспользоваться
|
|||
23
youalex
06.08.16
✎
21:48
|
(20) мне кажется, смысла нет в этом условии. Ну разве что, подтолкнуть молодой пытливый разум в единственно верном направлении. Или - контекст задания, о котором мы ничего не знаем.
В данном контексте - возможна сортировка массива, например? |
|||
24
Garykom
гуру
06.08.16
✎
21:50
|
(23) "Элементы массива могут принимать значения от 100 до 150" - толстый намек
|
|||
25
youalex
06.08.16
✎
21:50
|
(23) + если мы можем отсортировать массив - то можно будет обойтись одним циклом вместо двух.
|
|||
26
Garykom
гуру
06.08.16
✎
21:50
|
(24)+ 150-100=?
|
|||
27
Кирпич
06.08.16
✎
21:52
|
(23) нафиг его сортировать, если нужно получить разницу между индексами массива
|
|||
28
Garykom
гуру
06.08.16
✎
21:53
|
Пока вижу уже чтук 6 различных алгоритмов решения задачки и это не считая вариантов оптимизации как
if (A[1]=A[49]) or (A[2]=A[50]) then max := 48; |
|||
29
Garykom
гуру
06.08.16
✎
21:56
|
(27) Можно транспонировать значения и индексы, тогда в ячейке значения будет 0, 1 или более индексов
|
|||
30
youalex
06.08.16
✎
21:57
|
(26) наибольшая разница = макс. индексу массива?
(27) ага, то есть сортировать точно нельзя (номер участка = индекс, точно бред) |
|||
31
Garykom
гуру
06.08.16
✎
21:57
|
(30) >наибольшая разница = макс. индексу массива?
без комментариев ;) |
|||
32
youalex
06.08.16
✎
21:59
|
(31) просто брутфорс условия)
|
|||
33
Кирпич
06.08.16
✎
22:01
|
Максимальная разница между одинаковыми значениями
|
|||
34
youalex
06.08.16
✎
22:04
|
(24) + для меня толстый намек это имена переменных: I, j, max ))
|
|||
35
Кирпич
06.08.16
✎
22:05
|
Щас дотнет подключится
|
|||
36
youalex
06.08.16
✎
22:05
|
(34) +собственно, это фактически описание алгоритма.
|
|||
37
Кирпич
06.08.16
✎
22:09
|
(36) вот я и обалдел от (2). Приходит же такое в голову людям :)
|
|||
38
mkalimulin
06.08.16
✎
22:11
|
(37) Он привык к почасовой оплате. Все правильно.
|
|||
39
youalex
06.08.16
✎
22:19
|
(37) это решение вполне соответствует условиям задачи. Представьте если бы в реале вам БЗ поставили условие какие переменные использовать...
|
|||
40
Кирпич
06.08.16
✎
22:20
|
(38) да скорее на сдельщине. От количества строк харчуется
|
|||
41
Garykom
гуру
06.08.16
✎
22:21
|
(38) Клиент за свое кол-во часов получает наиболее оптимальное решение.
Вариант (2): 1. Использует минимальные ресурсы (кол-во переменных) 2. Самый быстрый по скорости выполнения |
|||
42
youalex
06.08.16
✎
22:25
|
(39) + вот смари - у меня здесь на экране список клиентов, которые мне должны. Но я хочу чтобы те кто уже попал на штраф подсвечивались голубым. Мне не важно, как ты это сделаешь. Но обязательно - ты должен использовать только три переменных с типом int. И не волнует.
|
|||
43
Garykom
гуру
06.08.16
✎
22:27
|
(42) Зачем нужны переменные в задачке определения просроченной дебиторки?
|
|||
44
Кирпич
06.08.16
✎
22:29
|
(41)что тут сказать. профессионал.
|
|||
45
Garykom
гуру
06.08.16
✎
22:34
|
(44) А ведь еще можно наваять "автоконструктор" типового кода типа (2) по заданным входным параметрам.
Чтобы эту простынку руками не набивать. И тогда 3. Кол-во часов к оплате сравнимо с другими |
|||
46
Кирпич
06.08.16
✎
22:37
|
(43) сегодня великий день. Я понял, что до этого дня меня напрягало в программировании. С сегодняшнего дня все будет по новому - никаких переменных и циклов! Боже как это просто и красиво. Почему я сам не смог до такого додуматься? Жалкий пленник стереотипов...
|
|||
47
Кирпич
06.08.16
✎
22:40
|
(45)автоконструктор тоже наваять таким же методом
|
|||
48
youalex
06.08.16
✎
22:40
|
(43) Ну, давай щас не будем умничать. Я тут посоветовался с племянником, он тоже программист, как и ты. Короче - если есть возможность не использовать эти переменные... ... с ним. Так даже лучше. Племянник говорит что нужно использовать выборку. Вот, короче. Должны подсвечиваться голубым. Но ты обязательно должен использовать выборку.
|
|||
49
Garykom
гуру
06.08.16
✎
22:43
|
(48) Передай племяннику что разница между "ценой с обязательной выборкой" и "ценой без выборки" составляет 2 раза. Не в пользу племянника. Вы согласны делать "с выборкой"?
|
|||
50
youalex
06.08.16
✎
22:44
|
||||
51
Garykom
гуру
06.08.16
✎
22:48
|
(50) Не забыть бы делать "пол" периодическим реквизитом как и ФИО... спасибо что напомнили ))
|
|||
52
youalex
06.08.16
✎
22:50
|
(49) Это интересный вопрос. Да, конечно, я согласен делать с выборкой - да вот племянник рядом стоит, я ему доверяю. Чего? Большую выборку нельзя? Понял, не дурак. В общем пусть будет выборка максимум двадцать элементов, но в списке я должен видеть всех.
|
|||
53
Garykom
гуру
06.08.16
✎
22:53
|
(52) Не вопрос... передайте выполнение вашей задачки, вашему племяннику который имеет видимо все задатки для этого и свободное время. Об оплате сами с ним по родственному договоритесь.
А я пошел, мне другие заказчики у которых племянников к сожалению нет уже звонили и попросили "срочно". |
|||
54
youalex
06.08.16
✎
22:54
|
(51) само понятие "периодические реквизиты" пол - подразумевают сами собой))
|
|||
55
youalex
06.08.16
✎
23:05
|
(53) а, да нет, все нормально. С задачей справились. Племянника отправили на стажировку в США, договариваться конечно пришлось, но все в порядке в итоге. Ну а чё? Пацан грамотный, пусть отучится, потом приедет обратно уже помощником зам. министра. Задания в школы будет раздавать.
|
|||
56
Garykom
гуру
06.08.16
✎
23:08
|
(55) Ко мне на стажировку отправили? Нюню ))
|
|||
57
youalex
06.08.16
✎
23:20
|
(56) ну а собственно, а почему бы и нет. Может хоть научится посылать БЗ с откровенно тупыми задачами. А то зам. министра, честно скажем, не получилось. И в итоге - ему, после Йелля - задачи ставит технический персонал, у которого швабры между стеллажами не проходят.
|
|||
58
Asmody
06.08.16
✎
23:37
|
(46) "никаких переменных и циклов" – тоже подсел на haskell? Это ничего,это пройдет.
|
|||
59
b_ru
07.08.16
✎
00:09
|
В бытность школотой, если бы столкнулся с таким заданием, я бы как-нить изъебнулся с
I = reinterpret_cast<int>(malloc(2 * n))
и дальнейшей сортировкой массива структур (вес-индекс). Ну чтоб у проверяющего точно шары на лоб полезли. Но, к счастью, я давным давно забыл черную Си++ магию, да и нет на мой код проверяющих, которых надо любить в мозг. |
|||
60
Кирпич
07.08.16
✎
08:17
|
(59) вы с Garykom одноклассники похоже. Тот тоже легких путей не ищет нифига. Ваш учитель информатики оказал на вас нехорошее влияние, какое порой оказывает на девочек учитель физкультуры.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |