2013-08-13 13 views
13

私は少しのものを作成しようとしています。私は乱数を生成する方法を探しています。しかし、どこで私のコードをテストしても、結果は非乱数になります。ここに私が書いた例があります。ルアmath.randomが動作しません

私がコードをテストしても、私は同じ結果を得ます。例えば、私がコードをここでテストすると、http://www.lua.org/cgi-bin/demoは常に "Ion Thruster Machine Gun Blaster"で終わってしまい、ランダム化しません。単純にその問題については、

random = math.random (10) 
print(random) 

私には9がありますが、私には何かがありますか?

答えて

23

あなたはこのように、math.random()を使用する前に、一度math.randomseed()を実行する必要があります。

math.randomseed(os.time()) 

一つの可能​​性のある問題は、最初の数はいくつかのプラットフォームでそう「無作為化」ではないかもしれないということです。だから、より良い解決策は本物のためにそれらを使用する前に、いくつかのランダムな番号をポップすることです:

math.randomseed(os.time()) 
math.random(); math.random(); math.random() 

参考:Lua Math Library

+0

は、その行に私のコードの更新バージョンを実行しているが、ここで、このLUAコードのデモにトリックを行うようですhttp://www.lua.org/cgi-bin/demoしかし、私のlua eclipse ideで同じコードを実行すると、私が持っていたのと同じ元の問題が生じます。それはランダム化されていないようです私のIDEで? – user2677006

+1

@ user2677006 'math.random()'を 'math.randomseed()'の直後に1回呼び出すと、修正されているかどうか確認してください。 –

+0

これは問題を解決するように思われましたが、どうして私は確かに分かりませんが、どうもありがとうございました。 – user2677006

関連する問題