Size: a a a

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

2020 January 08

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
The message is not supported on your version of Telegram Web. Update the app to view: web.telegram.org.
источник

B

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

B

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
надо будет знать, сколкьо раз возводить нужное число
ты можешь сразу подготовить мапу
{\0 0 \1 1 ...} и вопрос с переводом символов в цифры решён — можно работать с исходной строкой
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Bogdan
Сорян у меня мак с тачбаром первые пару дней а я привык в vim режиме работать
эскейп на капслок решает проблему
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
или еще лучше внешняя клавиатура
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
ты можешь сразу подготовить мапу
{\0 0 \1 1 ...} и вопрос с переводом символов в цифры решён — можно работать с исходной строкой
вынимаешь символ из потока, редуцируешь
можешь работать с «бесконечным» вводом
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
сделал так
(loop [num 153
      numlist nil]
 (if (pos? num)
   (recur
    (quot num 10)
    (conj numlist (rem num 10))) numlist))
умаялся
источник

СС

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

ST

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

(defn armstrong
 [x n]
 (transduce (map (exponents n)) + (str x)))

(armstrong 21897142587612075, 17)
=> 21897142587612075N

(criterium/quick-bench
   (armstrong 21897142587612075, 17))
Evaluation count : 86448 in 6 samples of 14408 calls.
            Execution time mean : 6,979043 µs
   Execution time std-deviation : 40,947527 ns
  Execution time lower quantile : 6,939905 µs ( 2,5%)
  Execution time upper quantile : 7,046189 µs (97,5%)
                  Overhead used : 1,800560 ns

Found 1 outliers in 6 samples (16,6667 %)
 low-severe   1 (16,6667 %)
Variance from outliers : 13,8889 % Variance is moderately inflated by outliers
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
(exponents 17)
=>
{\0 0,
\1 1,
\2 131072,
\3 129140163,
\4 17179869184,
\5 762939453125,
\6 16926659444736,
\7 232630513987207,
\8 2251799813685248,
\9 16677181699666569}
источник

СС

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

СС

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

СС

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
я не могу переписывать под это тесты.
ерунду какую-то сказал 😊
источник

СС

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

ST

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

(defn armstrong
 [x n]
 (transduce (map (exponents n)) + (str x)))

(armstrong 21897142587612075, 17)
=> 21897142587612075N

(criterium/quick-bench
   (armstrong 21897142587612075, 17))
Evaluation count : 86448 in 6 samples of 14408 calls.
            Execution time mean : 6,979043 µs
   Execution time std-deviation : 40,947527 ns
  Execution time lower quantile : 6,939905 µs ( 2,5%)
  Execution time upper quantile : 7,046189 µs (97,5%)
                  Overhead used : 1,800560 ns

Found 1 outliers in 6 samples (16,6667 %)
 low-severe   1 (16,6667 %)
Variance from outliers : 13,8889 % Variance is moderately inflated by outliers
вариант с reduce в 1.5 раза медленнее
(defn armstrong2
 [x n]
 (reduce + (map (exponents n) (str x))))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
основной метод принимает один аргумент
покажи, я тебе напишу как надо
источник

СС

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

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
я написал так
(defn armstrong? [num]
 (let [numlist (map #(Character/digit % 10) (str num))
       exp (count (str num))]
   (= num (reduce + (map #(.pow (biginteger %) exp) numlist)))))
источник