HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0420
いわいわrnd(4)のバグ?の報告(htmlへの変換後)2解決


いわいわ

リンク

2015/4/20(Mon) 16:45:39|NO.68668

rnd(4)を用いたプログラムを
hspdishでhtmlに変換してブラウザで実行しますと
乱数が正しく発生しません。

rnd(10)など他の時は正しく発生してくれているみたいです。
4の倍数の時におかしくなる、のかな?

発生条件が分かったので今は大丈夫ですが、
分かる前は難儀したので一応報告しておきます。
(というか、私の報告に何か問題があれば教えてください)

#include "hsp3dish.as" ; rnd(4) サンプルプログラム

#module
#global
randomize

dim aaa , 5

for i , 0 , 400
r=rnd(4)
for k , 0 , 4
if r=k { aaa(k) = aaa(k) + 1 }
next
next

redraw 0
for k , 0 , 4
mes "rnd=" + k + ": " + aaa(k) + "回"
next
redraw 1



この記事に返信する


zakki

リンク

2015/4/20(Mon) 21:32:12|NO.68674

EmscriptenとHSPの乱数の実装の組み合わせで下位ビットにランダムさがなくて引数が2^nのrndであからさまに周期性がある結果になってた問題でrev669で修正したつもりです。
3.5 beta1 でどうでしょうか?



いわいわ

リンク

2015/4/21(Tue) 20:33:52|NO.68689

hspを使わせてもらいながら、開発に関わる方々にはいつも感謝しております。

さて、助言の通りに3.5b1を使いますと
乱数が偏る不具合は発生しませんでした。

rnd(10)を用いてrnd(4)で出る以外の数が出た時には
再びrnd(10)を行う方法で対処しましたが、
これからは3.5b1を使わせてもらう事にします。

どうもありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.