Предложение воспользоваться произвольной биекцией с рациональными числами не прошло как неконструктивное.
Но есть ведь и "конструктивный" способ нумерации (положительных рациональных):

.
Вроде, это то же самое, что: разложим число

в цепную дробь:
![$r =[a_0:a_1,....,a_k.]$ $r =[a_0:a_1,....,a_k.]$](https://dxdy-04.korotkov.co.uk/f/7/c/7/7c7b5adcacc6875abdaac6b7df62238482.png)
. (В этой записи есть дискриминация чисел: нулевое может быть нулем, а остальные - нет).
Закодируем эту дробь нулями и единицами: вместо знаков препинания напишем единички, вместо

- столько нулей, вместо каждого

напишем

нулей (уничтожили дискриминацию!) .Прочитав это число справа налево, найдем (двоичный) номер числа

.
(Оффтоп)
Нумерация эта довольно известная, у нее даже есть имя какое-то, и где то она в Вики есть - но - не помню...