Page 8 of 12 FirstFirst ... 6 7 8 9 10 ... LastLast
Results 71 to 80 of 118
  1. #71
    Player
    NegitoroMaguro's Avatar
    Join Date
    Aug 2013
    Posts
    1,517
    Character
    Mag Ro
    World
    Tiamat
    Main Class
    Scholar Lv 90
    Quote Originally Posted by Fenesis View Post
    それから、「乱数を操作すること」については、必要な調整ならいいんじゃないかなと思います。
    これは操作の内容次第だとわたしは考えます。その操作内容によって運以外の戦略的要素において、誰かが利益を得る、若しくは不利益を被る可能性がどれだけでるかでしょうか。
    なので具体的な操作内容がわからないとなんともいえないですけど、おおざっぱに言えばなるべく操作をしないほうがいい、しても必要最小限にとどめるべきだと思います。
    操作をした結果、戦略的要素によって取得率が変わってしまう場合、今度はその戦略の上手下手などの理由で不平等になってしまいそちらでスレが立つだけかなと。


    Quote Originally Posted by Fenesis View Post
    それから、「全員に平等になる乱数によるロット」については、いろいろ悩みます。乱数によるロットが各プレイヤーに、次に出るダイスの数値が全員予測できない。という点だけ見れば平等といわれればそう思いますが、結果が平等かどうかを考えてしまうとどうにも悩みます。
    どの点を平等にするかです。ダイスの値の抽出に関しては平等であるべきですが、ダイスの値の大小―――要はアイテムの取得においてですが、ここを平等にしようと思うのであれば
    そもそもこのロット方式では平等になり得ません。極論を言えば全てのアイテムの出現率を4人IDなら1/4、8人IDなら1/8にした上でトークン排出にしてトークンによる取得をさせるしか解がないに近いです。
    つまり運要素の排除です。


    Quote Originally Posted by Fenesis View Post
    短期間だけで見れば偏るでしょうし、試行回数が増えれば理論上平等になっていくというのも理解できます。ただし、実際に、FFXIVをプレイしていて、理論上平等になる試行回数って何回だろうって考えを巡らしてしまいます。もしかして、億や兆の単位の試行回数を要するものだとしたら、数年や長くて10数年?のプレイ期間でどれだけ平等に近づけるのだろう。そういう悩みです。
    試行回数は誰も担保できません。乱数というものはそういうものです。リアルの運も実際そうですよね?
    (3)

  2. #72
    Player
    Fenesis's Avatar
    Join Date
    Sep 2014
    Posts
    128
    Character
    Fafani Fani
    World
    Fenrir
    Main Class
    Lv 0
    Quote Originally Posted by nikry View Post
    (略)
    では、また。
    ご回答ありがとうございます。

    Quote Originally Posted by nikry View Post
    普通に考えてもっかい取得しなおしてるだけだとおもいますけどね。

    考え方としては1-99の札が入った箱からメンバーが1枚ずつ引いてるだけ。

    まさかこれを操作と呼ばないでしょう。
    プログラムの中でカードシャッフルをする、又は、同点をなくすには、それなりの処理ルーチンを作る必要があります。たとえば、いま思いつくのが次のような感じ。確率が操作されるかについては今回は触れません。それともプログラム言語の中にシャッフル関数とあるのかなぁ。

    (方法1)
     ① 乱数を発生させる関数(以下「乱数関数」)で1~99のいずれかの数値を発生させ、仮採用する。
     ② ①の数値が既出のときは①に戻る。既出でなければ、正式に採用する。

     スクリプトが簡単に思いつく、実際に簡単。

    (方法2)
     ① プログラム上配列などで、値が1~99のカードに相当するものを用意する。
     ② 上のカード(配列など)を、シャッフルする。(シャッフルプログラムは必要だけど、今回の説明には不要なので略)
     ③ プレイヤーにカードを順番に引かせる。(②でシャッフル済みなので、引くのは1枚目からで良いです。)

     きれいにまとまるような気がする。

    (方法3)
     ① 1人目:乱数関数で1~99のいずれかの数値を発生させ採用する。
     ② 2人目:乱数関数で1~98のいずれかの数値を発生させ採用する。ただし、既出の数値以上のものについては、既出の数値に+1したものを採用する。
     ③ 3人目:乱数関数で1~97のいずれかの数値を発生させ採用する。ただし、既出の数値に対する対応を②と同様に行う。ただし、大きな既出の数値から処理を行う。

     理屈では考えたけど自主的には組みたくない。


    (番外)
     ① FFXIVのサーバーの中の人がカードをシャッフルして待機する。
     ② クライアントプログラムからの要請にしたがって、カードの値を順に送信する。

     蛇足・・・だけど、たぶんこれが、「真の乱数」の生成法。。。
    (0)

  3. #73
    Player
    Harunya's Avatar
    Join Date
    Jun 2014
    Posts
    176
    Character
    M'osaru Haru
    World
    Garuda
    Main Class
    Alchemist Lv 100
    Quote Originally Posted by Fenesis View Post
    プログラムの中でカードシャッフルをする、又は、同点をなくすには、それなりの処理ルーチンを作る必要があります。たとえば、いま思いつくのが次のような感じ。確率が操作されるかについては今回は触れません。それともプログラム言語の中にシャッフル関数とあるのかなぁ。
    見る人がみたら恥ずかしくなるような内容なのでそろそろやめておいた方がいいですよ。
    そしておそらく[番外「真の乱数」の生成法]と書いてあるのが今のFF14でのロット実装です。ただしカードはものすごく大量にありますが。
    (4)

  4. #74
    Player
    nanakamado's Avatar
    Join Date
    May 2014
    Posts
    943
    Character
    Suama Silktree
    World
    Belias
    Main Class
    Warrior Lv 90
    iniaさんって
    全部だとか、最近はとか、スレッド立ててはどっかに行ってませんか?
    スレ立てるだけで放置はどうかと思いました。

    念のため全部だとか、最近はとか関係なく、
    このスレッドでそうしてること事態、
    他でも同じようなスレッド立てては放置してるんではないでしょうかと疑ってしまいます。

    積極的ではあるけど、問題の根本が甘いので、会話が合わないように感じませんか?
    (0)

  5. #75
    Player
    Sor's Avatar
    Join Date
    Feb 2014
    Posts
    317
    Character
    Blitz Skybeans
    World
    Garuda
    Main Class
    Goldsmith Lv 100
    Quote Originally Posted by idlewild View Post
    「現在のロットのダイスが調整されていない乱数である」

    というのを見てふと思ったのですがFF14のロットで「同じ値」が出た場合はどうなるのでしょう?
    サービス開始からプレイしていて同じ値が出たのを見たことがないので疑問に思いました。
    単にアイテムがドロップした段階で、乱数に従い、全員に数字が割り当てられてるだけかと思います。
    それにNEED、GREEDした場合は数字を公開、PASSの場合は数字未公開のまま破棄する。

    他方、同値の場合においてサイコロをいちいち振りなおす実装だと、
    「シルクスのマメットでは全員がNEEDした場合、同値判定を23回、同値だった場合またサイコロ振り直しを行わないといけない」等
    色々とめんどくさい場合もあるので。
    (1)
    Last edited by Sor; 12-27-2014 at 05:20 PM. Reason: なんか日本語変だった

  6. 12-28-2014 05:04 AM

  7. #76
    Player
    Fenesis's Avatar
    Join Date
    Sep 2014
    Posts
    128
    Character
    Fafani Fani
    World
    Fenrir
    Main Class
    Lv 0
    Quote Originally Posted by Harunya View Post
    見る人がみたら恥ずかしくなるような内容なのでそろそろやめておいた方がいいですよ。
    そしておそらく[番外「真の乱数」の生成法]と書いてあるのが今のFF14でのロット実装です。ただしカードはものすごく大量にありますが。
    あなたは見る人ではなさそうです。

    見る人に見ていただけたるのはひとつの運で、ご指摘など頂けるのならさらに幸運だと思っております。あと、(番外)の件ですが、誤読されているように思います。書き方のせいだとか、誤読でないといわれる可能性もありますが、誤読と推定して補足します。簡単に言えば、これは手法の1つであると同時に、ブラックジなエッセンスを含むジョークでもあります。見る人が見れば「ニヤッ」と笑いそうです。明らかにジョークと判断可能と思って書きましたが、ジョークと分からなかったという指摘がでるようでしたら、次回は改善したいと思います。

    (番外)当初のもの
     ① FFXIVのサーバーの中の人がカードをシャッフルして待機する。
     ② クライアントプログラムからの要請にしたがって、カードの値を順に送信する。

     補足
      「サーバーの中の人」・・・リアルな人間のスタッフのこと、サーバー室と通信可能な場所で複数名が常時待機
      「カードをシャッフル」・・・・1~99の数字が記された物質的な99枚のカード

       ※プレイヤーは、ロットででるダイスの数を決めるのはプログラムによる「擬似乱数」だと思っているが、実は、スタッフが生成する「物理乱数」である。

    Quote Originally Posted by nanakamado View Post
    iniaさんって
    全部だとか、最近はとか、スレッド立ててはどっかに行ってませんか?
    (略)
    スレ参加のモチベが減ってしまいそうです。

    Quote Originally Posted by Sor View Post
    単にアイテムがドロップした段階で、乱数に従い、全員に数字が割り当てられてるだけかと思います。
    (略)
    ドロップの段階で・・・。っていうのは、ありそうですね。
    (0)
    Last edited by Fenesis; 12-28-2014 at 11:18 AM. Reason: 推測→推定、追記を追記、追記を削除、最終行()文削除

  8. #77
    Player
    Fenesis's Avatar
    Join Date
    Sep 2014
    Posts
    128
    Character
    Fafani Fani
    World
    Fenrir
    Main Class
    Lv 0
    (方法4)
     ① 十分長い乱数列を作ってしまう。(つくるタイミングはサーバー起動か、アイテムドロップ時とか・・・)
     ② 先頭から順に値をひっぱってきて使用する。
     ③ 同点でもかまわなければそのまま使用する。同点不可のものについては、同点以外がでるまでひっぱってくるポイントを1ずらす。
    (0)
    Last edited by Fenesis; 12-28-2014 at 11:15 AM. Reason: ポイント→ひっぱってくるポイント

  9. #78
    Player
    NegitoroMaguro's Avatar
    Join Date
    Aug 2013
    Posts
    1,517
    Character
    Mag Ro
    World
    Tiamat
    Main Class
    Scholar Lv 90
    Quote Originally Posted by Harunya View Post
    見る人がみたら恥ずかしくなるような内容なのでそろそろやめておいた方がいいですよ。
    Quote Originally Posted by Fenesis View Post
    あなたは見る人ではなさそうです。
    Harunyaさんの言いたいことはそういうことではないと思いますよ。
    わたしは雑談だととらえて書いていますけど、乱数生成ロジックそのものは既に確立しているポピュラーな方法を用いていることは間違いないと言ってもいいでしょう。
    Quote Originally Posted by Hiroshi_Minagawa View Post
    メインプログラマのK氏に確認した所、
    XIVでは、有名な乱数アルゴリズムから3種を、用途によって使い分けているそうです。
    当然、全てサーバ側で処理をしていますし、シード(乱数の種)は起動ごとに異なります。
    Quote Originally Posted by Hiroshi_Minagawa View Post
    XIVに限らず 昨今のゲームで使われる乱数アルゴリズム(正しくは擬似乱数)は、
    数学者やコンピュータサイエンスの凄い人が考案し、
    様々な分野で検証され、実用されている鉄板のアルゴリズムを使っています。
    一例として、メルセンヌ・ツイスタという乱数アルゴリズムの周期性の説明を抜粋します。
    「周期が2^19937-1で、623次元超立方体の中に 均等に分布することが証明されています」
    Quote Originally Posted by TheStoneLike View Post
    PCの乱数の作り方で有名どころと言えばこいつでしょうかね。
    メルセンヌ・ツイスタ
    というわけで乱数ロジックに興味がおありで、議論を続けるのであればまずは実際の乱数生成ロジックをある程度理解する必要があるのではないでしょうか。
    (かみ砕いた文章でざっくりとしたものであればこちらもどうぞ。)
    (0)

  10. #79
    Player
    Fenesis's Avatar
    Join Date
    Sep 2014
    Posts
    128
    Character
    Fafani Fani
    World
    Fenrir
    Main Class
    Lv 0
    Quote Originally Posted by NegitoroMaguro View Post
    乱数生成ロジックそのものは既に確立しているポピュラーな方法を用いていることは間違いないと言ってもいいでしょう。
    こちらもどうぞ。)
    乱数生成のアルゴリズムは、有名どころも含めて複数ある状況ですが、忘れてはならないのは、実際の乱数の利用の際には、乱数生成するアルゴリズムとあわせてそれを利用するルーチンなりアルゴリズムが存在するということです。例えば、この2つを区別できない方などが混同して話をするとややこしい事になります。

    まさかと思い補足(お分かりと思いますので、NegitoroMaguroさんに向けてのものではありません。)しますが、(方法1~4)は、乱数生成アルゴリズム自体についてのものではありません。乱数生成アルゴリズムは、既存のものやプログラマが設置したものを利用した上で、それが発生する乱数をどのように利用するかのお話です。

    Quote Originally Posted by NegitoroMaguro View Post
    というわけで乱数ロジックに興味がおありで、議論を続けるのであればまずは実際の乱数生成ロジックをある程度理解する必要があるのではないでしょうか。
    (かみ砕いた文章でざっくりとしたものであればこちらもどうぞ。)
    同意いたします。

    「○○みたいなものを希望」というお話は別にして、乱数について細かくルーチンやアルゴリズムの部分に触れるのであれば、乱数ロジックをある程度理解したうえで話したほうが齟齬はおきにくいと思います。あと、乱数生成アルゴリズムについて話をしているのか、それを利用するルーチンについて、話しているのか自覚が必要と思います。
    (0)
    Last edited by Fenesis; 12-28-2014 at 01:21 PM.

  11. #80
    Player
    Harunya's Avatar
    Join Date
    Jun 2014
    Posts
    176
    Character
    M'osaru Haru
    World
    Garuda
    Main Class
    Alchemist Lv 100
    Quote Originally Posted by NegitoroMaguro View Post
    Harunyaさんの言いたいことはそういうことではないと思いますよ。
    わたしは雑談だととらえて書いていますけど、乱数生成ロジックそのものは既に確立しているポピュラーな方法を用いていることは間違いないと言ってもいいでしょう。

    というわけで乱数ロジックに興味がおありで、議論を続けるのであればまずは実際の乱数生成ロジックをある程度理解する必要があるのではないでしょうか。
    (かみ砕いた文章でざっくりとしたものであればこちらもどうぞ。)
    まさにこういうことです。
    ロットなどの乱数について議論されるべきは、
    ・アルゴリズムとして何を採用するのか(線形合同法、 MT、etc...精度・周期・速度を考慮して適切なものを採用)
    ・乱数のスコープはどうするか(サーバー単位、システム単位、インスタンス単位、etc...)
    ・シード値として何を採用するのか

    ということであり、既にこれらは適切に実装されていると開発から説明されています。
    変数ガーとか配列ガーとかフローチャートやシーケンス図程度で表せる内容なんて、すでに広く知られている定石ともいえる方法があり議論に値しません。


    Quote Originally Posted by Fenesis View Post
     補足
      「サーバーの中の人」
    開発者ならサーバーやプログラム上のインスタンスに対して「この人がこれを持ってるから~」とか「この人がこの人にこれを渡して~」などというと思います。
    まさか本当の人間のことを言っていたとは。


    Quote Originally Posted by Fenesis View Post
    (方法4)
    これなんて完全に定石そのものであり、これが案としてでてきちゃうあたりお察しということです。
    その充分に長い乱数列をどうやって作るんですか?各種言語のライブラリにあるrandomを使うわけですよね。
    MTなら2^19937-1の長さの欄数列をつくれますよ。
    もしこれらを超える精度、周期、速度の乱数生成方法をお持ちでしたら、それはものすごい大発見ですので、ここで議論せず○○学会みたいなところで発表するべきです。
    (6)

Page 8 of 12 FirstFirst ... 6 7 8 9 10 ... LastLast