我需要解决这个问题:
(n + a)^k < m^n
鉴于a
,k
,m
,我需要找到解决不等式的最低n
。
我唯一想到的是:
search :: Integer -> Integer -> Integer -> Integer
search a k m =
if (inf!!0+a)^k < m^inf!!0) then inf!!0
基本上我已经从[0..∞]
创建了一个列表,我尝试从0开始读取每个元素,但是我无法从第一个元素转到第二个元素。
我可以使用我想要的任何类型的额外方程,但search
签名不能改变。
答案 0 :(得分:4)
我只会使用列表推导和head
:
search :: Integer -> Integer -> Integer -> Integer
search a k m = head [ n | n <- [0..], (n + a)^k < m^n ]
列表理解只是
的语法糖search :: Integer -> Integer -> Integer -> Integer
search a k m = head filtered
where
filtered = filter pred [0..]
pred n = (n + a)^k < m^n
答案 1 :(得分:0)
如果您不想在@Zeta's solution中使用列表理解,则可以使用
git fetch origin
git checkout origin/whatever
:
dropWhile