如何在Clojure的20%时间内用字符串替换整数
我需要在clojure中用字符串替换一个整数,但只替换输出整数的20%如何在Clojure的20%时间内用字符串替换整数,clojure,integer,lisp,Clojure,Integer,Lisp,我需要在clojure中用字符串替换一个整数,但只替换输出整数的20% (defn factor5 [x] (if (= (mod x 3) (mod x 5) 0) "BuzzFizz" (if (= (mod x 5) 0) "buzz" (if (= (mod x 3) 0) "fizz" x)))) 这里我有一个fizzbuzz程序,如果数字是3的倍数,它会打印出“fizz”,如果是5的倍数,它会打印出“buzz”,如果是两者的倍数,则会打印出“BuzzFizz”。如果整数
(defn factor5 [x]
(if (= (mod x 3) (mod x 5) 0) "BuzzFizz"
(if (= (mod x 5) 0) "buzz"
(if (= (mod x 3) 0) "fizz" x))))
这里我有一个fizzbuzz程序,如果数字是3的倍数,它会打印出“fizz”,如果是5的倍数,它会打印出“buzz”,如果是两者的倍数,则会打印出“BuzzFizz”。如果整数不是上述两个数的乘积,则打印该整数。我需要的是打印“Boom”而不是整数,但只打印20%的整数
一些伪代码
if(x == int){
print out Boom instead of x only for 20% }
else{
print out x}
我在clojure方面的经验非常有限,因为我的伪代码是基于java的请参阅完整的函数列表
您需要的是rand
,以及类似以下的测试:
(if (< (rand) 0.2) ....)
(如果(<(兰德)0.2)…)
有关函数的全面列表,请参阅
您需要的是rand
,以及类似以下的测试:
(if (< (rand) 0.2) ....)
(如果(<(兰德)0.2)…)
如果你想随机做出决定,你可以在if语句中使用一个rand语句,如下所示:
user> (defn x20% [x]
(if (rand-nth [true false false false false])
"Boom"
x))
#'user/x20%
user> (x20% 5)
5
user> (x20% 5)
5
user> (x20% 5)
"Boom"
user> (x20% 5)
5
还有rand
和rand int
。您所使用的功能在某种程度上取决于您的风格和具体功能:
user> (> 2 (rand-int 10))
true
user> (> 2 (rand-int 10))
true
user> (> 2 (rand-int 10))
false
user> (> 0.2 (rand))
true
user> (> 0.2 (rand))
如果您想随机做出决定,可以在if语句中使用一个rand runction,如下所示:
user> (defn x20% [x]
(if (rand-nth [true false false false false])
"Boom"
x))
#'user/x20%
user> (x20% 5)
5
user> (x20% 5)
5
user> (x20% 5)
"Boom"
user> (x20% 5)
5
还有rand
和rand int
。您所使用的功能在某种程度上取决于您的风格和具体功能:
user> (> 2 (rand-int 10))
true
user> (> 2 (rand-int 10))
true
user> (> 2 (rand-int 10))
false
user> (> 0.2 (rand))
true
user> (> 0.2 (rand))
- 这将返回所需的值,而不是打印它
- 它测试它的参数是否为数字,如果是,则测试它是否为数字
整数值,可以是
,byte
,short
李>int
从(rand int 5)
0、1、。。。4
- 这将返回所需的值,而不是打印它
- 它测试它的参数是否为数字,如果是,则测试它是否为数字
整数值,可以是
,byte
,short
李>int
从(rand int 5)
0、1、。。。4
是的,完全相反,谢谢你让我诚实!我想你的是的,完全是倒退,谢谢你让我保持诚实!谢谢各位,我没有15岁的声望,所以我不能提高投票率,但非常感谢。谢谢各位,我没有15岁的声望,所以我不能提高投票率,但非常感谢。