Это уроки по С++, если я не ошибаюсь.Сообщение от Nobless
Так там же последняя строка N-1 номер имеет, если не доходит до последнего столбца, то добавь единичку
|
Это уроки по С++, если я не ошибаюсь.Сообщение от Nobless
Так там же последняя строка N-1 номер имеет, если не доходит до последнего столбца, то добавь единичку
Последний раз редактировалось Ginger; 29.01.2007 в 20:04.
GGenius, я всего лишь хотел помочь
Nobless
Допустим такая матрица:Для Яр
не канает, уже пробовал, он считает все элементы кроме последнего столбца, если ян е ошибаюсь
Тот код, что я привёл выводит:Код: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
1 2 3 4 5 7 8 9 13
Как раз те числа, что соответсвтуют "треугольнику". Найти среди них максимальное или минимальное, думаю, не трудно.
~ Motivation is what gets you started. Habit is what keeps you going.
Хотя нет %) Яр всётаки правильно сказал, я пока не могу понять по чемун о щазз пойму![]()
Да да именно так...я уже понял как оно работает
Блин всё так просто...почему же я сам не смог до этого додуматься...вроде и не дурак![]()
А блок схемы - зачем?Сообщение от Elfio
Он же не книжку с иллюстрациями пишет,
а программу.
Все правильно - используй дополнительную переменную,
которая сужает внутренний цикл перебора по столбцам.
А подумать? При умножении надо двойной цикл и еще один массив. Давайте еще что-то с массивом сделаем, чтоб проще было. Хотя конечно, оптимизация не моя специальность.Сообщение от GGenius
![]()
Для в) будет что-то типа этого:
Остальные варианты идентичны. Но сделать ты должен их сам и дойти до всего сам, это конечно, если тебя интересуют знания. Если за тебя кто-то сделает, то ты ничему не научишься.Код:целое num = n/2 - округляем по правилам округления, т.е 1,5 - это 2; 2,5 - это 3 и т.д. for i = 0; i < num; i++ { for j = i; j <= n - i - 1; j++ { Твое условие для ( i, j ); } }
ЗЫ: Ну раз додумался, то молодец.
Последний раз редактировалось MrJile; 30.01.2007 в 11:29.
j-цикл по столбцам
i-рядкам
n-кол-во рядков ,столбцов
если выполняется это условие ищи максимум
if((i<n/2&&i<=j&&j<=n-1-i))
для
11111
01110
00100
00000
00000
попробуй ,если не получается обращайся
if(i==j||j==n-1-i||(i<n/2&&i<j&&j<n-1-i)||(i>n/2&&i>j&&j>n-1-i))
для
11111
01110
00100
01110
11111
Дальше продолжать?Выходит?
Последний раз редактировалось Boot; 29.01.2007 в 22:01.
Ндрюха, ты умница, я не спорюСообщение от MrJile
Не надо наезжать зря на оптимизицию
![]()
Просто сначала не было известно, что область поиска максимума ограничена несколькими конечными вариантами(автор оставил это в тайне)!!! Это я предположила для случая, когда матрица позиций для поиска оптимума генерится по запросу "оопля"![]()
Кста, попробуй придумать математическое преобразование, такое, чтоб
Только чур математическое преобразование!!!Код:Матрица А Матрица Б Матрица С 2 3 4 5 1 0 0 0 2 0 0 0 3 4 6 7 0 1 0 0 0 3 0 0 6 7 8 9 что-то сделать 1 1 1 1 получилась 2 3 4 5 4 6 3 5 0 1 1 0 0 3 4 0![]()
И как мне кажется, то самый простой и понятный вариант для человека, у которого исчо с воображением плохенько, это использовать третий индекс. Он неоптимален с программистской точки зрения, за то более лёгок в понимани. А вот если у автора действительно есть талант к этому делу, он бы потом сел и подумал - А какие значения у меня принимает этот вспомогательный индекс??? А можно ли его выразить через i, j, N???
А вы всё сразу на блюдечке да с каёмочкой..........
Последний раз редактировалось Ginger; 29.01.2007 в 22:37.
поэлементное умноженеим, а не математическое множение матриц, но смысла в этой операции нет (для математики).Кста, попробуй придумать математическое преобразование, такое, чтоб
Код:
Матрица А Матрица Б Матрица С
2 3 4 5 1 0 0 0 2 0 0 0
3 4 6 7 0 1 0 0 0 3 0 0
6 7 8 9 что-то сделать 1 1 1 1 получилась 2 3 4 5
4 6 3 5 0 1 1 0 0 3 4 0
Только чур математическое преобразование!!!![]()
З.Ы. накладывать маску путем умножения все равно не есть гут.
Как говорилось ранее - для таких случаев (замкнутые непрерывные области) проще действительно использовать "твое условие для i и j" - та даже и если области более хирые - тоже пойдет.
Решается проходом по всей сатрице и одной проверкой (Б[i,j]==1 ), но никак не умножением матриц.Сообщение от GGenius
Вот нех.. мне чем заниматься больше. Ты ему еще LU-разложение предложи. Ты представляешь лицо Сереги, если бы ему студент принес такое для поиска максимума матрицы? Но заценил бы точноСообщение от GGenius
. Я так понял, что человек еще в школе учится.
ЗЫ: Но маладца, матрицы умножать ты умеешь, я ж и не спорю.
Читайте внимательно!!!!Сообщение от Пилигрим
![]()
Я тут не говорила о классическом перемножении матриц!!!
Да пжалста, кому как удобнее и понятнее!!!Сообщение от MrJile
Хотя мальчику в школе лучше ифы ставить вместо матричной маски
Ну так чего ты на меня наезжаешьСообщение от MrJile
Пы.сы.Подожди, я как-нить до тебя доберусь
![]()
Для тех, кто еще учится:
Сборник задач по программированию
Социальные закладки