tur*_*oom 2 java math game-development
我有一个Java程序,它可以生成一个从0到无限的浮点值积极性.我需要做的是,浮动越高,程序触发函数attackPawn()的可能性就越高.
我已经发现我需要函数Math.random(),它给出一个介于0和1之间的随机值.如果Math.random()低于侵略性转换为0到1之间的浮点数,我调用函数attackPawn( ).
但是现在我被卡住了,我无法弄清楚如何将侵略性从0变为无限到从0到1的浮点数,1意味着"无限"的侵略性而0意味着没有愤怒.
任何想法或数学等式?先感谢您
pen*_*gon 12
你想要一个将[0 ... infinity]映射到[0..1]的单调函数.有很多选择:
y=Math.atan(x)/(Math.PI/2);
y=x/(1+x);
y=1-Math.exp(-x);
Run Code Online (Sandbox Code Playgroud)
还有更多.在给定正常数的情况下,每个函数都可以任意缩放k>0:
y=Math.atan(k*x)/(Math.PI/2);
y=x/(k+x);
y=1-Math.exp(-k*x);
Run Code Online (Sandbox Code Playgroud)
有无数的选择.只需选择一个适合您需求的产品.