▼スレッド
│
└◇801:Re[2]:ランスウについて [なず] 10/08 00:08
└◇802:Re[3]:ランスウについて [moon] 10/08 09:05
└◇808:Re[4]:ランスウについて [なず] 10/09 00:10<-last
> これらのことは複数探索のことですよね?(以前本家BBSで単数探索でもかたよりが出るというのがありましたが。)スレッド一覧
> 乱数的には変になりますが、単純に同じアイテムが連続して見付かりにくいようにするのには、
> $rnd = int(rand(100)) + 1;
> を、
> if($count & 1){
> # 2回に1回はこちらの処理
> $rnd = 100 - int(rand(100));
> }
> else{
> # 通常の処理
> $rnd = int(rand(100)) + 1;
> }
> $count++;
> とすると効果があるかもしれません。
言葉が足りなかったかもしれません(^^;
複数探索ではなく、単純な1度のみの探索です。(デフォルトと同じ状態)
探索決定>結果、探索決定>結果....の状態が同じものが出やすい、という事で質問しました。
やはりおかしい部分があるんでしょうか....(^^;
探索の仕方はデフォとおなじく1度きりの探索ですが、内部自体は色々手をいれているので、そのあたりでしくじっている可能性もあるかとおもいますが、アイテム数は多く設定しているので同じ物が何度も連続ででるのはふにおちなくて....(2回の探索で同じステラが2こ連続、というのがさらに....単純に偶然ならいいのですがどうやって確認したらよいものかと^^;)
> バックアップ対象を分けたbackupcgi.cgiを複数作成してそれぞれ実行すれば1回ごとの負荷は少なくなると思います。
> 例えば、test1/、test2/、test3/をバックアップするのであればそれらを1つずつ記述したbackupcgi.cgiを3つ用意してそれぞれ実行すると。(backupcgi.cgiの名前を変更しておけば同じディレクトリで同じ保存ディレクトリにバックアップが取れますし。)
>
> # そもそも動くかどうかが一番の懸念ですが。
なるほど、一気に処理させずに手動で分けるわけですね、メモしておきます(^ー^)b
> 複数探索ではなく、単純な1度のみの探索です。(デフォルトと同じ状態)スレッド一覧
> 探索決定>結果、探索決定>結果....の状態が同じものが出やすい、という事で質問しました。
> やはりおかしい部分があるんでしょうか....(^^;
それなら以前本家BBSで書いた方法で、
> 症状の改善を無視して、無理やりに1回ごとに見付かるアイテムのランダム性をアップさせるひとつのアイディアとして、
> $poison = int(rand(100)) + 1;
> $stellatio = int(rand(100)) + 1;
> $rnd = int(rand(100)) + 1;
> 上記オリジナルソースを、
> if(time & 1){
> $poison = int(rand(100)) + 1;
> $stellatio = int(rand(100)) + 1;
> $rnd = int(rand(100)) + 1;
> }
> else{
> $poison = 100 - int(rand(100));
> $stellatio = 100 - int(rand(100));
> $rnd = 100 - int(rand(100));
> }
> といった感じにするというのもある程度効き目があるのではないでしょうか。
>
> # 乱数の偏りを時間的に2つに分けただけですが。
をやってみれば少しは緩和するかと思います。
他にはsrandをやっている場合にその引数を適切な値に変えるということもやってみる価値はあります。(Webで探せばどういった値が良いのかヒントが見付かるかと思います。)
> 探索の仕方はデフォとおなじく1度きりの探索ですが、内部自体は色々手をいれているので、そのあたりでしくじっている可能性もあるかとおもいますが、アイテム数は多く設定しているので同じ物が何度も連続ででるのはふにおちなくて....(2回の探索で同じステラが2こ連続、というのがさらに....単純に偶然ならいいのですがどうやって確認したらよいものかと^^;)
$rndや$stellatioの値をpush(@msg, 〜)で出力して確認してみては。
同じ値またはかなり近い値が連続したらプログラムの不備も考えられるということで。
> それなら以前本家BBSで書いた方法で、スレッド一覧
> > 症状の改善を無視して、無理やりに1回ごとに見付かるアイテムのランダム性をアップさせるひとつのアイディアとして、
> > $poison = int(rand(100)) + 1;
> > $stellatio = int(rand(100)) + 1;
> > $rnd = int(rand(100)) + 1;
> > 上記オリジナルソースを、
> > if(time & 1){
> > $poison = int(rand(100)) + 1;
> > $stellatio = int(rand(100)) + 1;
> > $rnd = int(rand(100)) + 1;
> > }
> > else{
> > $poison = 100 - int(rand(100));
> > $stellatio = 100 - int(rand(100));
> > $rnd = 100 - int(rand(100));
> > }
> > といった感じにするというのもある程度効き目があるのではないでしょうか。
うはっ、本家で出てたんですね(^^;
ほとんど見る様にはしてるんですが、見落としてたようです。
> 他にはsrandをやっている場合にその引数を適切な値に変えるということもやってみる価値はあります。(Webで探せばどういった値が良いのかヒントが見付かるかと思います。)
これはこれから色々と調べて見たいと思います。
> $rndや$stellatioの値をpush(@msg, 〜)で出力して確認してみては。
> 同じ値またはかなり近い値が連続したらプログラムの不備も考えられるということで。
あ、、、これは大ボケでした。 確かに表示させてみる、は基礎中の基礎だというのに....(^^;
まずは試すって基本を多少慣れが出たせいか失念しておりましたぁ。
返答頂いた事を元に調査等してしばらく頑張ってみようとおもいます、拙い事にお答え頂いて有難うございました。
また何かで詰まった際にはおじゃまさせて頂きますのでよろしくお願いします〜。