我正在尝试为费马的小定理编写一个clojure函数。
我正在解决问题并尝试逐步完成。
我想写的第一件事是回答这部分问题的代码:
给定数字n,选择一个小于n的随机数a。计算^ n模数n的剩余部分。
以下是我到目前为止编写的代码:
(defn exp [a n]
(reduce * (repeat n a)))
(mod (exp 3 5) 5)
这似乎工作正常,可以测试素数。但是我现在想把它放在一个函数中并随机选择一个。是否有一种简单的方法可以在clojure中获取随机整数?
任何帮助都非常感激。
答案 0 :(得分:2)
您可能需要rand-int
功能:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="mainApp">
<div ng-controller="mainCtrl">
<table ng-repeat="l1 in list1">
<tr>
<td>
{{l1.name}}
</td>
</tr>
<tr ng-repeat="l2 in list2">
<td>name: {{l2.name}},</td>
<td>price: {{l2.price}},</td>
<td>quantity wanted: <input ng-model="quantity[l2.uniqueId]"><button ng-click="inc(l2.uniqueId)" type="button">+</button></td>
</tr>
</table>
{{quantity}}<!-- sum of all quantities * prices -->
</div>
<div>
答案 1 :(得分:0)
您可以创建一个函数,该函数随机选择一个数字,使用exp
函数计算答案,并将两个值作为向量返回:
(defn rand-mod [n]
(let [a (rand-int n)]
[a (mod (exp a n) n)]))