Size: a a a

Clojure — русскоговорящее сообщество

2020 January 08

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
что показывать?
(defn armstrong? [num] )
и вперед
ответ булевский?
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
да. сравнивает аргумент и результат
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
да. сравнивает аргумент и результат
а это точно правильно exp (count (str num))?
непонятно, из чего это вытекает
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
надо знать в какую степень возводить
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
в данной задаче степень равна длине числа
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
12345 = 5
источник
2020 January 09

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
153 = 3
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
надо знать в какую степень возводить
ну, а почему именно число цифр?
по условию задачи так?
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
нет
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
я определил степень числа так)
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
а есть варианты?)
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
но на это как ни странно не ругались)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
а есть варианты?)
конечно
из вики
число 242423 для степени 5
число 243 для степени 6
не вижу связи между степенью и числом цифр
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
сорри, это была база
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
конечно
из вики
число 242423 для степени 5
число 243 для степени 6
не вижу связи между степенью и числом цифр
я понял, недочитал определение на вики
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
можно и список потом count
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
но этому не придали значения
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
основной метод принимает один аргумент
(defn exponents
 [n]
 (into {}
   (map (juxt (comp first str) #(.pow (biginteger %) n)))
   (range 10)))

(defn armstrong?
 [x]
 (let [s (str x)
       n (count s)
       x' (transduce (map (exponents n)) + s)]
   (= x x')))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
(armstrong? 115132219018763992565095597973971522401)
=> true

(criterium/quick-bench
   (armstrong? 115132219018763992565095597973971522401))
Evaluation count : 46902 in 6 samples of 7817 calls.
            Execution time mean : 13,132000 µs
   Execution time std-deviation : 410,042927 ns
  Execution time lower quantile : 12,702894 µs ( 2,5%)
  Execution time upper quantile : 13,668062 µs (97,5%)
                  Overhead used : 1,800560 ns
=> nil
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
варинт со строками будет жрать больше?)
источник