Сгенерировать следующее рациональное число

Как я могу сгенерировать следующее рациональное число в 2 целочисленные переменные. Например, если у меня есть x = 3 и y = 2, следующее рациональное число будет x = 3 и y = 3. Генерация чисел должна быть похожа на следующий порядок:

Просмотреть нужный порядок

У кого-то есть идея, как я могу это реализовать? Спасибо


person Ofir    schedule 01.08.2012    source источник


Ответы (1)


n — числитель, d — знаменатель:

if (n%2 == d%2) {
  n++;
  if (d > 1) d--;
} else {
  d++;
  if (n > 1) n--;
}
person Barmar    schedule 01.08.2012