我正在尝试在我的Java程序中实现随机数生成器。我正在使用[Requesting token]-> -X POST https://auth.example.com/oauth2/token -u ${CLIENT_ID}:${CLIENT_SECRET} -d 'grant_type=client_credentials'
[Response token]<- Status 200 - {"token_type":"bearer","access_token":"AAsdsAdggT5c0EkLng4yBEwght3bfDGf47hbSk3","expires_in":3456543}
[Requesting home-reports]-> https://api.example.com/myapi/home-reports -H "Authorization: Bearer ${ACCESS_TOKEN}"
[Response home-reports]<- Status 200 - {"sales":53434.53,"purchases":12984.04}
[Requesting messages]-> https://api.example.com/myapi/messages -H "Authorization: Bearer ${ACCESS_TOKEN}"
[Response messages]<- Status 200 - {"messages":[]}
,但似乎效果不佳。然后我尝试使用SecureRandom,但这对我的游戏来说花了太长时间。但是,我遇到了这个发生器,即MersenneTwisterRNG随机数发生器。这似乎是我想要的;快,但仍然是随机的。
但是,我没有用Java编写很长时间,只用了2个月,而且我无法做出API的头脑和尾巴。如果有人可以帮我解释如何在我的代码中使用它,我们将不胜感激。或者,如果您碰巧知道一个更简单但相似的随机数生成器,我也会对此感兴趣。 API为here。
答案 0 :(得分:1)
如何使用MersenneTwisterRNG API:
import java.util.Random;
import org.uncommons.maths.random.MersenneTwisterRNG;
这使您可以使用短名称访问类。
Random rand = new MersenneTwisterRNG();
这会创建一个新的MersenneTwisterRNG。我们把它放入一个Random类型的变量中,这样我们就可以在需要时轻松将它换成另一个RNG。
double x = rand.nextDouble();
此行为与Math.random()相同,并返回介于0.0和1.0之间的双精度浮点数。
int n = rand.nextInt(10);
这产生0(包括)和9(包括)之间的随机数,即0 <= n <0。 10.这对很多整数算法很有用。