Куча говна / Говнокод #12119 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
right_triangles = [ (a, b, c a b) | b <- [1..], a <- [1..b], isRight a b ]
	where
		rc a b = sqrt $ fromIntegral (a^2 + b^2)
		c a b = round $ rc a b
		isRight a b = (rc a b) == fromIntegral (c a b)

Запостил: Fai Fai, (Updated )

Комментарии (8) RSS

  • А где говнокод? Ну кроме того, что это тупой брутфорс по целым числам.
    Ответить
    • Везде говнокод - isRight - говно, (rc, c) - говно и ещё много.
      Ответить
  • >isRight a b = (rc a b) == fromIntegral (c a b)
    Это ты флоаты что-ли на == сравниваешь?
    Ответить
  • right_triangles = [(3*i,4*i,5*i) | i<-[1..]]

    Хотя результат будет не эквивалентен.
    Ответить
    • Это только одно соотношение. А вообще есть и такие тройки:
      (14634,65040,66666)
      Ответить
    • Любая пара натуральных взаимно простых чисел m > n задаёт примитивную пифагорову тройку (m²-n², 2mn, m²+n²). Остальные можно получить из них домножением на то самое i.

      m=2, n=1 => (3, 4, 5)
      m=3, m=2 => (5, 12, 13)
      Ответить
      • Т.е. нужно взять массив кортежей, перебрав m, n и дополнительный множитель?
        Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8