Guest
Новичок
|
Есть такая штука:Code Sample:
123 456 789
илиCode Sample:
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
Типа матрицы, размерность разная, но всегда квадрат из последовательных чисел. Как вычислить крайние точки диагоналей, проходящих через заданную точку? Т.е. дана точка 17, для неё крайние точки диагоналей будут [11, 23] и [5, 21] - каким образом можно вычислить эти точки? Очень нужно.
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 25 авг. 2005 0:18 | IP
|
|
Guest
Новичок
|
Сначала вычислите координаты концов диагоналей. А затем числа стоящие на соответствующих полях. В чем проблема?
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 8 сен. 2005 7:36 | IP
|
|
Indigo
Удален
|
К примеру, как находится правый нижний конец диагонали. Пусть данная точка имеет координаты [i;j], размерность матрицы n. Тогда он (конец) имеет координаты [i+(n-max{i,j});j+(n-max{i.j})] В матрице такого вида точка, стоящая на месте с координатами [k,m], будет иметь значение (k-1)n+m. Таким образом, искомый конец диагонали равняется (i+(n-max{i,j})-1)*n+j+(n-max{i,j}). Остальные концы находятся аналогично, надо только кое-где поменять + на -, и max на min.
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 8 сен. 2005 16:39 | IP
|
|
Guest
Новичок
|
Indigo, что-то я не понял или не правильная формула. (i+(n-max{i,j})-1)*n+j+(n-max{i,j}) по этой формуле, для точки 22 в матрице размером 25, точка получается 570 Да и вообще, (i+(n-max{i,j})-1)*n - влюбом случае будет давать число, большее размера матрицы
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 9 сен. 2005 0:14 | IP
|
|
Indigo
Удален
|
по этой формуле, для точки 22 в матрице размером 25, точка получается 570
Получается: (1+(25-22)-1)*25+22+(25-22)=100 Посчитайте внимательней.
Да и вообще, (i+(n-max{i,j})-1)*n - влюбом случае будет давать число, большее размера матрицы
Размер матрицы тут ни при чем. У Вас в матрице n^2 разных натуральных чисел. Соответственно, ответ лежит в пределах от 1 до 625 в случае n=25.
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 9 сен. 2005 0:59 | IP
|
|
Guest
Новичок
|
всё, капут. Если ответ 100, то точка 100 не принадлежит матрице!? Я вот не понимаю, к чему вообще относиться точка 100? Indigo, если не трудно, поясни пожалуйста. Хотя это в любом случае, не то, что я описывал в 1-м посте и не то, что нужно, но всё-же жутко интересно
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 9 сен. 2005 15:37 | IP
|
|
Mazut
Удален
|
Совет to Guest... Организуйте цикл по номерам элементов начиная с номеров i,j элемента a[i,j]. Например, i1=i; j1=j; repeat i1=i1+1; j1=j1+1; until (i1=n) or (j1=n); i1,j1 - индексы элемента "низа диагонали". Значение a[i,j] = (i1-1)n + j1, где n - размерность матрицы ( n*n ). Надеюсь, это поможет вам понять формулы предложенные " by Indigo" (вообщем, правильные, разве что вы иначе понимаете "размер" матрицы...) (Сообщение отредактировал Mazut 9 сен. 2005 17:31)
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 9 сен. 2005 17:28 | IP
|
|
Indigo
Удален
|
всё, капут. Если ответ 100, то точка 100 не принадлежит матрице!? Я вот не понимаю, к чему вообще относиться точка 100? Indigo, если не трудно, поясни пожалуйста. Хотя это в любом случае, не то, что я описывал в 1-м посте и не то, что нужно, но всё-же жутко интересно
Матрица имеет размерность 25. Она квадратная. Следовательно, в ней 25 строк и 25 столбцов. Следовательно, всего 625 чисел - от 1 до 625. Точка 100 - это значение элемента, стоящего на нижнем конце диагонали, проходящей через точку 22 с северо-запада на юго-восток, вот таким образом ---> \ Почему бы точке 100 не принадлежать множеству натуральных чисел от 1 до 625? Это именно то, о чем Вы спрашивали в начальном посте. Сомневаетесь - постройте матрицу и проверьте
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 9 сен. 2005 20:53 | IP
|
|
Genrih
Удален
|
Indigo , по-моему под размерностью т-щ Guest имел в виду кол-во елементов в квадратной матрице(размер)
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 9 сен. 2005 21:21 | IP
|
|
Indigo
Удален
|
Indigo , по-моему под размерностью т-щ Guest имел в виду кол-во елементов в квадратной матрице(размер)
Хм... Хорошо, скажу тогда так: число n в формуле - это количество столбцов/строк в квадратной матрице. Мне казалось, что размером/размерностью/порядком матрицы называется именно это число. Хотя фиг его знает, меня учили не по-рюсски
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 9 сен. 2005 22:32 | IP
|
|
|