それでは完全確率ではないのですがいかがでしょう?
Printable View
失礼しました。
乱数のロジックではなくわたしが完全確率という言葉で言いたかったのは
②を行ってしまうと最後の1回は出る数が特定されます。この②を行わないことを完全確率と表現しました。
例えば50回の試行回数において、50以上の数値が大幅に出てしまった場合どうしますか?
4人PTでロットした場合、仮にプレイヤーAが96回既にダイスを回していて残りが25、50、75だったとすると、残りのPTメンバーでこの数字を採用することができません。
万が一全員が98回回していて、2人以上で残っている数字が同じだったらどうしますか?
どちらにしても恣意的にダイスの目をコントロールすることではなく、常時1/96~1/99の確率(ロットシステム上4人PTで最後に押すと1/96)で出る前提を崩しても問題がないと言えますか?
PCの乱数の作り方で有名どころと言えばこいつでしょうかね。
メルセンヌ・ツイスタ
下線部のみに回答します。
以下すこし、数学っぽさのないところで、考えました。
"ラッキー"は、運営が発表するのだけでなくていいと私は思うんです。
・うわさ
・ジンクス
・ゲン担ぎ
上に書いたものは、特定のコンテンツに対して、既に誰かが自慢しているかもしれないし、身近に欲しいアイテムもってる人がいれば、自分で行動して誰がどうやって集めたか、自分もできるか考えられるものです。
他人のいうことが信じられないならそうかもしれません。
ただ、私が緩和前にアートマでないと言っていた時を例にすると、あのF.A.T.E.やればでるよというジンクスを頼りにしたこともあると思います。
それで出たときもあると思います。
一方で、乱数であれば、0.001に立つ人は必ずいるのは確かです。
そこで、私は逆疑問を抱きます。
乱数は嘘なのではないか?
プレイヤーのこと考えていて0.001に立つケースがあると数学的に正しいなら、無視できる問題点ではないと思いますし、なぜならそれって面白くないに直結する可能性があります。
装備に限ってはBIND属性とEX属性があるから、おこぼれをもらうケースが少ないんです。
だから、現在バトルコンテンツは装備ありきの点(IL入場制限のあるインスタンスダンジョンがあるという意味で)もあるので面白くないと思う可能性は高いと考えられます。
考えたことはここまでです。
妄想の域を出ませんが、少なからずジンクスの中の1つくらい実装しているのではと思いをはせてみるのもいいんじゃないかなぁ。
であればその考え方で得られる結果は、
各プレイヤーが1-99の数字がかかれた99枚のカードをシャッフルしてから順に切っていくというものと同じです。
そして、たしかにその99回の中では重複はしませんが、偏らないわけではないです。
そしてこの仕様が明らかになれば、プレイヤーは自分が切ったカード履歴の傾向をみて、弱いカードが既にたくさん出ているなら次に強いカードがでる可能性が高いと考え、よりリターンの高い賭場(ロット機会)へ行くでしょう。
逆もまたしかりで勝負を降りる指針となり、どうせ勝てないからIDへ行かないとなるでしょう。
これはそもそもFenesisさんがコメントをつけるきっかけとなった、パターンを利用するということにあたると思いますよ。
次に何が来るか予想がつかないから乱数なのであって、重複しないということはそれ自体が利用可能です。
たとえばこんな仕様
・1日1回、各プレイヤーに1~13の数字が書かれたカードが配布される
・アイテムロット時に、プレイヤーは手持ちのカードを場に出す
・1番大きい数字のカードを出したプレイヤーがアイテム獲得
・同じカードが場に出た場合、再度別のカードを出す
・1度出したカードは、その日は使えない
とかって方が幸せなのかなぁ~?
(1~13は、単純化するためにトランプに倣いました。)
確率や乱数だと、どうしても部分的には偏りが出ると思うので
それを無くすなら、こんな方法なんじゃないかな?とw
結果が操作される方が異常。
外的要因に一切影響されない今の仕様が一番公平で健全です。
毎回1桁しかでない?
素晴らしく運がないな、君は。
同じ運勝負のシステムでも、当たりの箱を選ぶとか、あみだくじとかじゃんけんという、「自分で選ぶ」システムだと、しょうがないと受け入れられ易いかもね。
運営にあなたのロット数字は◯◯ですと与えられるから騙された感を持ってしまうわけで。
今の仕様でもあまり不満はないかも、たまに60台の数字でも勝てるし。
ただ、ダイスで1〜10出した時はドロップとは別に何かご褒美欲しいとは思うw
アラグ貨幣詰め合わせとか、10個集めるとちょっといいものと交換できるトークンとか。
収束周期(収束するよう設定した回数)で割った余り期間については起きますが、PCの乱数以下の偏りであることが期待されます。
処理ルーチンを追加すれば対応できます。
「カードシャッフル」については、うれしい限りです。例示を追加せよといわれたら、カードシャッフルの話をするところでした。
「偏らないわけではないです。」については、PCの乱数以下の偏りであることが期待されます。
「コメントをつけるきっかけ」については、指している部分が分かりませんでした。
「利用可能です。」については、収束周期を長くする対応が考えられます。
例示は、「乱数で出現する値毎に採用する回数に上限をつけることによって収束周期を操作しようとするもの」です。周期を長くすればするほど、本来のPCの乱数に近づいていきます。また、周期は、ダイスの面数のn倍です。つまり、100面ダイスの場合であれば、300回でも、30,000回でも、100の倍数で任意に設定可能です。(nは1から始まる自然数)
こういう要望は、具体的方向性やアイデアがあれば、プログラム自体は、プログラマーが可能かどうか判断したり技術的に解決してくれると思っています。プログラミング教室ではなく、複数のアイデアが提案される場を期待しています。
新しいアイデアの肩書きを貰おうと思ってコメントしている訳でも、擬似乱数より精度の高い乱数を作り上げようとしているわけでもありません。また、行きつく先も擬似乱数の精度以外の話になる可能性も大いにあります。実際、精度の話はでずに、プログラムのルーチンの処理についての質問が多く驚いているところです。おかげで、乱数の関数の使い方の説明でもしようかと一時本気で悩みました。「そうやって利用されないように調整をかけていくという対応が出てくる時点で」というのはちょっと意味がわかりません。調整しないほうが良いということでしょうか。
しかし、「認識に差がありますね。」とのコメントを読んで、もしかしたら、新しいアイデアや、オリジナルな到達地点をお持ちになっているのかと期待に胸が膨らみました。
もし、それをお持ちでしたら、是非、ご披露いただけると幸いです。
#3でコメントしてる通り、(乱数の結果をルーチンでばらけさせようなどというのは無意味で、)解決するなら根本的にまったく別の報酬決定システム導入でいいと思っておりますよ。
直近で他の方から出ていた、ロット弱者にフォローを入れるや、そもそも乱数に頼らず自分でナンバーを切る、なども悪くないと思っています。
ですが、そういった改善が今このゲームに必要とは思っていません。スレ主さんのような憤りがありませんので。
しかしFenesisさん、
「新しいアイデアの肩書きを貰おうと思ってコメントしている訳でも、擬似乱数より精度の高い乱数を作り上げようとしているわけでもありません」
とのことですが、であればこのスレッドで何をどうしたいと考えているのか教えてもらえませんか?
こちらの理解が及ばず申し訳ないですが、#7からの流れが何を目指してのものか意図がいまひとつ見えないんですよね。
ダイスの数字がバラけたとしても、ロットに勝てる訳ではない
偏りが無くなったら無くなったで、「いっつも他の人よりも数字が低いんだけど?」となるだけなんじゃ?w
運を天に任す以上、数字が偏ろうがバラけようが、負け続ける時は負け続けるモノだし、勝ち続ける事もあるでしょう・・・w
わざと数字をバラけさせたところで、根源にある
「わたし いつも勝てないんだけど? なんで?」
ってのは、まったく変わらないと思う・・・w
ドゥドゥのことを知ってるかどうかわからないような赤の他人に対して無闇に使うのは控えましょう(汗)。
用法・用量を守って、正しく使いましょう。
またきたまえ!
とりあえず、もはや確率云々の話とは全く関係なくなってきてるんので、ダイスの偏り云々ではなく、ロット勝負システムやめろって要望出す方がよほど現実的かと思われます。
ただし、最上位コンテンツの週ロット制限からして、運営側のスタンスとしては、誰にでも取らせるつもりは皆無、むしろ限られた一部にだけしか取らせるつもりがない、という意図は明白でしょうし、それが覆ることも無いと思いますので、そうしたスタンスを把握した上でこのゲームとの付き合い方を考え直してみるのも良いかもしれません。
まー私も昔他のネトゲの同じような要素にムキになってた頃があるので気持ちはわからんでもないですが、いい加減もう付き合いきれませんからねぇ。
もっとも、ロットシステムが改善される(例えば一定回数負けたら無条件で入手できる)とかなら歓迎しますが。別にくじ引きやりたくてこのゲームやってるわけではないので。
いっそのこと、人数に応じて変動するようになれば、わかりやすくていいと思いますけど、勝つか負けるかのどきどき感が無くなってしまいますので、よくないのかな?
例)
4人パーティー:1~4
8人パーティー:1~8
24人アライアンス:1~24
わたしは、#25で書いたように、『偏り(感)を解消できれる方法を考えたい』と思ったり、偏りをなくせたらいいなと思ったりしたのが、スレ参加のがきっかけです。そして、#7でこういう方法もあるんじゃないですかとコメントしました。一番最初に言っているわけですが、そもそも乱数にはこだわっていません。
また、上の引用の質問の原因らしい、わたしが「新しいアイデアの(略)」は、その前でnikryさんがコメントしてくださった「そうやって利用されないように調整をかけていくという対応が出てくる時点で、行きつく先は擬似乱数の精度の話にしかならず、新しいアイデアにはなっていかないと思います。」にストレートに対応したものす。
答えたついでにnikryさんと同じ質問をしますが、nikryさんは、このスレッドで何をどうしたいと考えているのか教えてもらえませんか?
お答えをいただきありがとうございます。
まず、「べき」なんて考えは恐れ多くて持てません。それから、「乱数を操作すること」については、必要な調整ならいいんじゃないかなと思います。
それから、「全員に平等になる乱数によるロット」については、いろいろ悩みます。乱数によるロットが各プレイヤーに、次に出るダイスの数値が全員予測できない。という点だけ見れば平等といわれればそう思いますが、結果が平等かどうかを考えてしまうとどうにも悩みます。
短期間だけで見れば偏るでしょうし、試行回数が増えれば理論上平等になっていくというのも理解できます。ただし、実際に、FFXIVをプレイしていて、理論上平等になる試行回数って何回だろうって考えを巡らしてしまいます。もしかして、億や兆の単位の試行回数を要するものだとしたら、数年や長くて10数年?のプレイ期間でどれだけ平等に近づけるのだろう。そういう悩みです。この悩みを解消するために、たとえば、自分のロットででダイスの数字の統計をとって、どれくらい偏っているか若しくはばらけているか見られたらいいのになって思います。
追記
ふと気まぐれで、乱数調整なんて言葉で検索したら、うーんとうなるようなものが出てきました。あと、パチスロの当たりの調整方法なんかについても、へぇーという感じです。いろいろ調整と予想の双方で苦労していそうです。
また、某プログラム関数では、乱数を使う前に乱数を初期化する作業をします。この初期化するときに種をあたえて初期化します。この種が同じだと、出力される乱数列は同じになってしまいまうので要注意です。Wikipediaの擬似乱数についての予測可能かどうかについての部分についてもなるほどとうなずけます。
数学的な話でなくなってきたので戻ってきました……。
システムには初期値をあたえて、初期応答を別として、発散するもの・収束するもの・その他があります。
システムってむずかしいものじゃなくて、コタツを使ってる人ならだれでもしっています。
コタツは電源入れてから初期応答で、だんだん人間に居心地のいい温度に収束していくシステムですね。
疑似乱数もシステムなのであれば、それと同じかなと思いますので、対外の疑似乱数システムには初期値がないとおかしいと思います。
しかし、私はゲームではそのような【対外の】システムを使っていない可能性が高いと思いますので、そこに変更してほしいという要望を出すのはいらないかなぁと思ってしまいます。
ダイスの数字のもとにプレイヤーは平等なのに、それが別のいい方法があるので変えましたって、その方法が公式発表されて不安になるのは私だけなのでしょうか?
いや、全否定ではなくて、数学的にもっといい平等があったらいいなとは私も思いますよ……。
お帰りなさい。うちのコタツは、nanakamadoさんの言うコタツと違う・・・・もっと危険なものです。・・・は、置いといて・・・。
nanakamadoさんのコメントを読んでわたしも、疑問がでました。
たしかに、わたしを含め、このスレッドの参加者の殆どの方は、「現在のロットのダイスが調整されていない乱数であるという前提」でお話ししてきたと思いますが、この前提が真実かどうかは、もしかして判明して・・・・いない?
いえ、運営の○○さんがどこそこで明言されていますよ。なんてご指摘があれば即座に心を入れ替える疑問です。
あと、乱数システムは、誰が1位になるか分からないという点で平等である。しかし、これは、乱数以外のシステムをつかうと平等でなくなるという証明にはならなかったなぁ~って思いました。
最後に、平等のことを考えていたら、「ある会社では社員にダイスを振らせ一番大きな数を出した者に対して給与を支払う。これは社員全員が等しく給与を得る可能性があるという点で平等である。」なんてブラックなジョークを考えてしまいました。
スレッド上がってるのに気づきませんでした。返答ありがとうございます。
誤解させてすいませんがそれだけが質問の原因じゃないですね。
質問の原因はFenesisさんの#7からの書き込みを通して眺めてみた結果抱いた疑問ですので。
なるほど、ありがとうございます。それを踏まえてもう一度読み直してみるとしましょう。
さて、特別このスレに限った話といわれてもあまりないですが、他と同じく
賛同できる書き込みにいいねをつけ、自分から出せるものがあれば書き込み、違和感を感じる書き込みに気分がのればレスをつけてるだけです。
強いて言えばFenesisさんの書き込みが、自分からみてよく言えば興味を惹かれる、失礼ながら悪くいえば不思議に思える点があったので伺ってみたというところです。
特定の期間の中で偏らない乱数なんてありえないのでスレ主さんの#1にはあまり興味はないです。いいとこ義理が#3ですね。
では、また。
普通に考えてもっかい取得しなおしてるだけだとおもいますけどね。
考え方としては1-99の札が入った箱からメンバーが1枚ずつ引いてるだけ。
まさかこれを操作と呼ばないでしょう。
公平ロット or 平等ロット って話ですよねこのテの話題って
http://up.gc-img.net/post_img/2014/1...9IGth_320.jpeg
いっそ選挙でもしてみるとか?
これは操作の内容次第だとわたしは考えます。その操作内容によって運以外の戦略的要素において、誰かが利益を得る、若しくは不利益を被る可能性がどれだけでるかでしょうか。
なので具体的な操作内容がわからないとなんともいえないですけど、おおざっぱに言えばなるべく操作をしないほうがいい、しても必要最小限にとどめるべきだと思います。
操作をした結果、戦略的要素によって取得率が変わってしまう場合、今度はその戦略の上手下手などの理由で不平等になってしまいそちらでスレが立つだけかなと。
どの点を平等にするかです。ダイスの値の抽出に関しては平等であるべきですが、ダイスの値の大小―――要はアイテムの取得においてですが、ここを平等にしようと思うのであれば
そもそもこのロット方式では平等になり得ません。極論を言えば全てのアイテムの出現率を4人IDなら1/4、8人IDなら1/8にした上でトークン排出にしてトークンによる取得をさせるしか解がないに近いです。
つまり運要素の排除です。
試行回数は誰も担保できません。乱数というものはそういうものです。リアルの運も実際そうですよね?
ご回答ありがとうございます。
プログラムの中でカードシャッフルをする、又は、同点をなくすには、それなりの処理ルーチンを作る必要があります。たとえば、いま思いつくのが次のような感じ。確率が操作されるかについては今回は触れません。それともプログラム言語の中にシャッフル関数とあるのかなぁ。
(方法1)
① 乱数を発生させる関数(以下「乱数関数」)で1~99のいずれかの数値を発生させ、仮採用する。
② ①の数値が既出のときは①に戻る。既出でなければ、正式に採用する。
スクリプトが簡単に思いつく、実際に簡単。
(方法2)
① プログラム上配列などで、値が1~99のカードに相当するものを用意する。
② 上のカード(配列など)を、シャッフルする。(シャッフルプログラムは必要だけど、今回の説明には不要なので略)
③ プレイヤーにカードを順番に引かせる。(②でシャッフル済みなので、引くのは1枚目からで良いです。)
きれいにまとまるような気がする。
(方法3)
① 1人目:乱数関数で1~99のいずれかの数値を発生させ採用する。
② 2人目:乱数関数で1~98のいずれかの数値を発生させ採用する。ただし、既出の数値以上のものについては、既出の数値に+1したものを採用する。
③ 3人目:乱数関数で1~97のいずれかの数値を発生させ採用する。ただし、既出の数値に対する対応を②と同様に行う。ただし、大きな既出の数値から処理を行う。
理屈では考えたけど自主的には組みたくない。
(番外)
① FFXIVのサーバーの中の人がカードをシャッフルして待機する。
② クライアントプログラムからの要請にしたがって、カードの値を順に送信する。
蛇足・・・だけど、たぶんこれが、「真の乱数」の生成法。。。
iniaさんって
全部だとか、最近はとか、スレッド立ててはどっかに行ってませんか?
スレ立てるだけで放置はどうかと思いました。
念のため全部だとか、最近はとか関係なく、
このスレッドでそうしてること事態、
他でも同じようなスレッド立てては放置してるんではないでしょうかと疑ってしまいます。
積極的ではあるけど、問題の根本が甘いので、会話が合わないように感じませんか?
あなたは見る人ではなさそうです。
見る人に見ていただけたるのはひとつの運で、ご指摘など頂けるのならさらに幸運だと思っております。あと、(番外)の件ですが、誤読されているように思います。書き方のせいだとか、誤読でないといわれる可能性もありますが、誤読と推定して補足します。簡単に言えば、これは手法の1つであると同時に、ブラックジなエッセンスを含むジョークでもあります。見る人が見れば「ニヤッ」と笑いそうです。明らかにジョークと判断可能と思って書きましたが、ジョークと分からなかったという指摘がでるようでしたら、次回は改善したいと思います。
(番外)当初のもの
① FFXIVのサーバーの中の人がカードをシャッフルして待機する。
② クライアントプログラムからの要請にしたがって、カードの値を順に送信する。
補足
「サーバーの中の人」・・・リアルな人間のスタッフのこと、サーバー室と通信可能な場所で複数名が常時待機
「カードをシャッフル」・・・・1~99の数字が記された物質的な99枚のカード
※プレイヤーは、ロットででるダイスの数を決めるのはプログラムによる「擬似乱数」だと思っているが、実は、スタッフが生成する「物理乱数」である。
スレ参加のモチベが減ってしまいそうです。
ドロップの段階で・・・。っていうのは、ありそうですね。
(方法4)
① 十分長い乱数列を作ってしまう。(つくるタイミングはサーバー起動か、アイテムドロップ時とか・・・)
② 先頭から順に値をひっぱってきて使用する。
③ 同点でもかまわなければそのまま使用する。同点不可のものについては、同点以外がでるまでひっぱってくるポイントを1ずらす。
Harunyaさんの言いたいことはそういうことではないと思いますよ。
わたしは雑談だととらえて書いていますけど、乱数生成ロジックそのものは既に確立しているポピュラーな方法を用いていることは間違いないと言ってもいいでしょう。
というわけで乱数ロジックに興味がおありで、議論を続けるのであればまずは実際の乱数生成ロジックをある程度理解する必要があるのではないでしょうか。
(かみ砕いた文章でざっくりとしたものであればこちらもどうぞ。)
乱数生成のアルゴリズムは、有名どころも含めて複数ある状況ですが、忘れてはならないのは、実際の乱数の利用の際には、乱数生成するアルゴリズムとあわせてそれを利用するルーチンなりアルゴリズムが存在するということです。例えば、この2つを区別できない方などが混同して話をするとややこしい事になります。
まさかと思い補足(お分かりと思いますので、NegitoroMaguroさんに向けてのものではありません。)しますが、(方法1~4)は、乱数生成アルゴリズム自体についてのものではありません。乱数生成アルゴリズムは、既存のものやプログラマが設置したものを利用した上で、それが発生する乱数をどのように利用するかのお話です。
同意いたします。
「○○みたいなものを希望」というお話は別にして、乱数について細かくルーチンやアルゴリズムの部分に触れるのであれば、乱数ロジックをある程度理解したうえで話したほうが齟齬はおきにくいと思います。あと、乱数生成アルゴリズムについて話をしているのか、それを利用するルーチンについて、話しているのか自覚が必要と思います。
まさにこういうことです。
ロットなどの乱数について議論されるべきは、
・アルゴリズムとして何を採用するのか(線形合同法、 MT、etc...精度・周期・速度を考慮して適切なものを採用)
・乱数のスコープはどうするか(サーバー単位、システム単位、インスタンス単位、etc...)
・シード値として何を採用するのか
ということであり、既にこれらは適切に実装されていると開発から説明されています。
変数ガーとか配列ガーとかフローチャートやシーケンス図程度で表せる内容なんて、すでに広く知られている定石ともいえる方法があり議論に値しません。
開発者ならサーバーやプログラム上のインスタンスに対して「この人がこれを持ってるから~」とか「この人がこの人にこれを渡して~」などというと思います。
まさか本当の人間のことを言っていたとは。
これなんて完全に定石そのものであり、これが案としてでてきちゃうあたりお察しということです。
その充分に長い乱数列をどうやって作るんですか?各種言語のライブラリにあるrandomを使うわけですよね。
MTなら2^19937-1の長さの欄数列をつくれますよ。
もしこれらを超える精度、周期、速度の乱数生成方法をお持ちでしたら、それはものすごい大発見ですので、ここで議論せず○○学会みたいなところで発表するべきです。