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

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

Изменено 01.07.2021 10:33 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, y >= 1 (по семантике y — это размер коллекции). Поэтому треугольник лучше сделать таким:

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

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

Обратное преобразование мне выводить тоже лень
(И да, придется иметь дело с квадратным корнем и округлениями).
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 >= 1 (по семантике y — это размер массива, а x — zero-based индекс элемента в массиве). Поэтому треугольник лучше сделать таким:

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

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

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