Не могу понять, почему он дает такие результаты

0

"Нам не нужно перечислять фракции в каком-либо конкретном порядке, нам просто нужно убедиться, что до тех пор, пока цикл продолжится, каждое рациональное число в конечном итоге будет построено. Так что же:

for i=0 to infinity
   for j=1 to i
      display i/j
   next j
next i

Вы должны уметь видеть, что если вы подождете достаточно долго, каждая фракция будет в конечном итоге отображена. Фактически мы генерируем каждую фракцию бесконечно много раз из-за одинаковых членов, таких как 1/2, 2/4. 4/8 и т. Д.. "

Почему выход 1/2, 2/4 и так далее...? Я не могу понять: ((Переведите этот псевдокод на язык C или C++, возможно, я не прав:

#include <stdio.h>

int main()
{
  for (int i = 0; i < 100000000000000000; i++) {
     for(int j = 1; j < i; j++) {
        printf("%f\n", (float)(i/j));
     }
}
return 0;
}
  • 1
    Если бы у меня был пенни каждый раз, когда меня об этом спрашивают ... -.- "
  • 1
    Why the output is 1/2, 2/4 and so on... ? I can't figure out :(( - Даже я не могу, вы никогда не получите такой вывод в C с кодом выше, я не думаю, что этот вопрос полностью ясен.
Показать ещё 1 комментарий
Теги:
algorithm

2 ответа

2
Лучший ответ
  • Почему выход 1/2, 2/4 и так далее...?

Я предполагаю, что вы ссылаетесь на это предложение:

Фактически мы генерируем каждую фракцию бесконечно много раз из-за одинаковых членов, таких как 1/2, 2/4. 4/8 и т. Д.. "

Это НЕ говорит, что выход равен 1/2, 2/4, 4/8. Он просто говорит, что любая конкретная дробь, например, 1/2, появляется на выходе бесконечно много раз. Ie 1/2 == 2/4 == 4/8 ==... и так далее.

  • 0
    Хорошо. Теперь это имеет смысл ... Спасибо!
4

i/j возвращает целочисленный результат (который затем вы бросаете в float).

+ Изменить

(float)(i/j)

в

((float)i)/j

Кроме того, в зависимости от диапазона типа int на вашей платформе, 100000000000000000, вероятно, будет слишком большим, чтобы соответствовать int.

  • 0
    Изменено, все еще не дает результат, указанный в моем вступительном тексте.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню