Информация об изменениях

Сообщение Re[2]: 3/4 vs 0.75 от 01.07.2021 8:05

Изменено 01.07.2021 8:27 rg45

Re[2]: 3/4 vs 0.75
Здравствуйте, Sinclair, Вы писали:

S>

0 1 2 3
0 0 1 3 6
1 2 4 7
2 5 8
3 9
S>Тут n[x, y] = (x+y)*(x+y+1)/2+y


Немного не так. В данном случае известно, что числитель меньше или равен знаменателю (x <= y). Поэтому треугольник лучше сделать таким:

x — по горизонтали, y — по вертикали
0 1 2 3
0 0
1 1 2
2 3 4 5
3 6 7 8 9
И формула попроще:

n[x, y] = x + y*(y+1)/2;

По семантике y представляет собой макисмальный индекс элемента в массиве, то есть размер массива минус один.

Обратное преобразование мне выводить тоже лень
(И да, придется иметь дело с квадратным корнем и округлениями).
Re[2]: 3/4 vs 0.75
Здравствуйте, Sinclair, Вы писали:

S>

0 1 2 3
0 0 1 3 6
1 2 4 7
2 5 8
3 9
S>Тут n[x, y] = (x+y)*(x+y+1)/2+y


Немного не так. В данном случае известно, что числитель меньше или равен знаменателю (x <= y) (По семантике y представляет собой макисмальный индекс элемента в массиве, то есть размер массива минус один). Поэтому треугольник лучше сделать таким:

x — по горизонтали, y — по вертикали
0 1 2 3
0 0
1 1 2
2 3 4 5
3 6 7 8 9
И формула попроще:

n[x, y] = x + y*(y+1)/2;

Обратное преобразование мне выводить тоже лень
(И да, придется иметь дело с квадратным корнем и округлениями).