所以我正在欧拉计画中尝试problem 68。我想出了一个简单的算法。但是,我提交的内容有误。请注意,该算法在3种情况下均能正常工作。请帮助我了解我在做什么错。我已经坚持了一段时间了。
; https://projecteuler.net/problem=68
(ns eul
(:require [clojure.math.combinatorics :as combo]))
; Try the 3-case first to see if correct.
; a
; \
; b
; / \
; e - c - d
; /
; f
(->> (combo/permutations (range 1 7))
(filter (fn [[a b c d e f]] (and (= (+ a b c) (+ d c e) (+ f e b))
(< a d)
(< a f))))
(map (fn [[a b c d e f]] (->> [a b c d c e f e b]
(map str)
(apply str))))
(map #(Integer/parseInt %))
(sort >)
(first))
; a
; |
; b -- e - d
; | \
; | g
; | / \
; j - c -- i f
; /
; h
(->> (combo/permutations (range 1 11))
(filter (fn [[a b c d e f g h i j]] (and (= (+ a b c) (+ d e b) (+ f g e) (+ h i g) (+ j c i))
(< a d) (< a f) (< a h) (< a j))))
(map (fn [[a b c d e f g h i j]] (->> [a b c d e b f g e h i g j c i]
(map str)
(apply str))))
(filter #(= (.length %) 16))
(map biginteger)
(sort >)
(first))
答案 0 :(得分:0)
事实证明,在第二种情况下,var的排列是错误的。问题陈述不匹配。