2017-11-07 1 views
-4

私はコインフリップ・システムを使ってウェブサイトを作成しようとしています(私の自由時間にやっている小さなプロジェクトです)。私はPHPでそれを作る必要があるので(バックエンドで)、私は公平に証明できるようにする必要があります(私はそれが正当であることを証明することができます)。私が知ったのは、sh256のようなものを使う必要があるということですが、かなり古くなっていて簡単に割れてしまうということも聞きました。また、それは重要なのは蒸気ログインシステムのサイトなので、私は1V1のメンバーと一緒に他の人と一緒に座っている人だけでなく、私に何かを知らせる人だけでなく、1つのボタンだけでなく、coinflipをPHPで作成する(プロヴァンス・フェア)

編集:私はそれをgoogledし、何かを知っていれば私が知っている人などに尋ねてみましたが、何も良いことはありませんでした。事前に

おかげ

-Eiríkur

+0

あなたが必要あなたが書いたコードを表示するか、少なくとも問題を解決するための試みを表示します。 – DrCord

+0

ようこそStackOverflowへ!これまでに何か試しましたか? StackOverflowは無料のコード作成サービスではなく、あなた自身が最初にあなたの問題を解決しようとしています**(http://meta.stackoverflow.com/questions/261592)。 **あなたが直面している**具体的な**問題を、**最小で完全で検証可能な例**で紹介して、あなたがすでに試したことを示すためにあなたの質問を更新してください(http://stackoverflow.com/help/mcve )。詳細については、[**よくある質問をする方法**](http://stackoverflow.com/help/how-to-ask)を参照して、[**サイトのツアー**](http ://stackoverflow.com/tour)。 –

+0

http://php.net/manual/en/function.mt-rand.php – AbraCadaver

答えて

2

これはランダムコイントスの結果を取得する簡単な方法です:

$result = array("heads", "tails")[random_int(0,1)]; 

まず、我々は我々の選択肢になる配列を作ります。 array("heads, "tails")は、これら2つの結果のうちの1つを常に取得することを意味します。次に、同じ行で、前に行った配列から変数$resultに実際に割り当てる単一の要素を選択することができます。その番号を生成するのにrandom_int(min, max)を使うことができます。

注:random_int()は、このような は、ポーカーゲームのためのカードのデッキをシャッフルするときのように公平な結果が重要なの使用に適している 暗号整数の乱数を生成します。 http://php.net/manual/en/function.random-int.php

はボーナスとして、あなたはこの配列に要素を追加することができ、その後、ちょうどrandom_int()max値を増加させ、それが動作します。あなたはこのようにそれを行うことによって、AS-もこれをより動的にすることができます:あなたが好きな

上記のコードでは
$choices = ["heads", "tails", "Coin flew off the table"]; 
$result = $choices[random_int(0, count($choices)-1]; 

は、あなたに多くの選択肢を持つことができます!


テスト

私はこのコードを50,000回を走り、これらは私の結果でした。

Array 
(
    [heads] => 24923 
    [tails] => 25077 
) 

そして、私はこれらが私の結果だった、このコードに10万回を走った:

Array 
(
    [tails] => 49960 
    [heads] => 50040 
) 

あなたは結果をチェックアウトし、ここでこので遊ぶことができます。

https://eval.in/894945

+0

'count($ choices) - 1'または1で配列を開始してください。 – AbraCadaver

+0

ありがとう! ) –

+0

ありがとうございました:)これは私が必要としていたものです。私はそれをもっと複雑にしていたと思います。P –

関連する問題