LINUX.ORG.RU

разрулите алгоритм, лыжы не едут


0

0

есть прямоугольник состоящий из квадратиков(стороны MxN). 
Квадратики имеют линейный размер AxB и пронумерованы. 
Я хочу имея только порядковый  номер квадратика поиметь 
его координаты x и y.

Формулы придумал такие:

An=(Num - [Num/N]*N)*A

Bn=([Num/N]-1)*M*B

где [Num/N] - значит, что от частного берется только целая часть.

и вот что пишет алгоритм(сверху что надо, а снизу что дают эти две формулы):

[vit@observ devel]$ ./test.pl 000000 0000 0
 [000000 0000]   [000800 0000]   [001600 0000]   [002400 0000]
 [000000 -0200]  [000800 -0200]  [001600 -0200]  [002400 -0200]
 [000000 -0400]  [000800 -0400]  [001600 -0400]  [002400 -0400]
 [000000 -0600]  [000800 -0600]  [001600 -0600]  [002400 -0600]

 [000000 0800]   [000800 0800]   [001600 0800]   [00-800 1600]
 [000000 1600]   [000800 1600]   [001600 1600]   [00-800 2400]
 [000000 2400]   [000800 2400]   [001600 2400]   [00-800 3200]
 [000000 3200]   [000800 3200]   [001600 3200]   [00-800 4000]
[vit@observ devel]$

Че я не так думаю?
anonymous

целая часть от [Num/N] означает номер строки, в которой 
находится элемент с порядковым номером N. [Num/N]*B - координата, 
а вот почему не пашет - не пойму...

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20

это для прямоугольника 5x5, для 2 на 3 будет так:

1 2 3
4 5 6

ну, каждый квадратик имеет линейные размеры 1 см. на 1 см., я 
хочу получить общую формулу, в которой координаты положения 
квадратика в общем прямоугольнике(честный его случай квадрат) 
будут однозначно определяться
порядковым номером квадратика...

чето лыжи не едут уже пару дней...

anonymous
()

> есть прямоугольник состоящий из квадратиков(стороны MxN). > Квадратики имеют линейный размер AxB и пронумерованы.

у квадрата все стороны равны! он может быть AxB только тогда когда A==B

сумбур в условии задачи но попробую предположить настоящее условие.

Дан прямоугольник размерами WxH полностью замощеный квадратами 1x1(1 - условная единица..), квадраты пронумерованы слева направа, сверху вниз. Требуется по номеру(n) квадрата определить размеры прямоугольника у которого верхний левый угол совпадает с данным, а в правом нижнем лежит квадрат с номером n.

имеем w' = n % W (остаток); h' = n / W;(целочисленное деление)

PS: ЛыЖы всегда едет ..

lg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.