目次
问题内容
解决方法
ホームページ バックエンド開発 Golang 一様分布と単純なシャッフル?

一様分布と単純なシャッフル?

Feb 09, 2024 am 08:30 AM
配置

一様分布と単純なシャッフル?

php小编小新将为大家揭秘"均匀分布与天真的洗牌"之间的关系。在计算机科学中,洗牌是一种重要的操作,常用于随机化数据或集合。而均匀分布是指在一定范围内的随机数分布是平均的。那么,洗牌是否能保证均匀分布呢?答案并不简单,让我们一起来探讨这个问题。

问题内容

我正在对一个 3 int 数组进行 600 万次洗牌。我在地图中记录数组的每个排列。下面是使用 go 的代码。

package main

import (
    "fmt"
    "math/rand"
    "time"
)

func randrange(min, max int) int {
    return rand.intn(max-min+1) + min
}

func naiveshuffle(arr *[3]int) {
    for i := 0; i < 3; i++ {
        e := randrange(0, 2)
        arr[e], arr[i] = arr[i], arr[e]
    }
}

func main() {
    rand.seed(time.now().unixnano())
    m := make(map[[3]int]int, 6)
    arr := [3]int{-6,10,184}

    for i := 1; i <= 6000000; i++ {
        a := arr
        naiveshuffle(&arr)
        m[a]++
    }

    for k, v := range m {
        fmt.println(k, ":", v)
    }

}
ログイン後にコピー

由于我正在进行简单的洗牌,我的理解是它不应该产生均匀分布的排列。但这就是我得到的:

[184 -6 10] : 1000074
[184 10 -6] : 1000764
[-6 10 184] : 1000766
[10 184 -6] : 998090
[-6 184 10] : 1000479
[10 -6 184] : 999827
ログイン後にコピー

这表明 6 种可能的排列中的每一种都发生大约 100 万次。为什么我得到的分布看起来是均匀的?

编辑:将代码更改为仅种子一次。我现在得到:

[-6 184 10] : 999507
[184 -6 10] : 1000401
[10 -6 184] : 1002163
[10 184 -6] : 999236
[-6 10 184] : 999016
[184 10 -6] : 999677
ログイン後にコピー

编辑2:感谢霍布斯,我意识到我犯了一个愚蠢的错误。我应该洗牌 a,而不是 arr。我现在得到:

[10 -6 184] : 1111056
[-6 10 184] : 888442
[184 -6 10] : 888576
[10 184 -6] : 1109896
[-6 184 10] : 1113148
[184 10 -6] : 888882
ログイン後にコピー

解决方法

您对 arr 进行了超过 600 万次洗牌,而没有在两次洗牌之间将其恢复到其原始状态 - 换句话说,您的 600 万次试验并不是独立的。尽管每次洗牌的排列分布不均匀,但将这些排列相互叠加 600 万次会产生非常接近均匀的分布。

以上が一様分布と単純なシャッフル?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

世界のトップ10の仮想通貨取引プラットフォームのトップ10のランキングは何ですか? 世界のトップ10の仮想通貨取引プラットフォームのトップ10のランキングは何ですか? Feb 20, 2025 pm 02:15 PM

暗号通貨の人気により、仮想通貨取引プラットフォームが登場しています。世界の上位10の仮想通貨取引プラットフォームは、トランザクションの量と市場シェアに従って次のようにランク付けされています:Binance、Coinbase、FTX、Kucoin、Crypto.com、Kraken、Huobi、Gate.io、Bitfinex、Gemini。これらのプラットフォームは、幅広い暗号通貨の選択から、さまざまなレベルのトレーダーに適したデリバティブ取引に至るまで、幅広いサービスを提供しています。

中国通貨圏のトップ10の取引所 中国通貨圏のトップ10の取引所 Jul 23, 2024 pm 06:25 PM

中国の上位 10 位の仮想通貨取引所は次のとおりです。 .JEX; 10.Lバンク。これらの取引所は、幅広い取引ペア、低額の取引手数料、特定のユーザーのニーズに合わせた専門的なサービスを提供します。

ゴマのオープンエクスチェンジを中国語に調整する方法 ゴマのオープンエクスチェンジを中国語に調整する方法 Mar 04, 2025 pm 11:51 PM

ゴマのオープンエクスチェンジを中国語に調整する方法は?このチュートリアルでは、コンピューターとAndroidの携帯電話の詳細な手順、予備的な準備から運用プロセスまで、そして一般的な問題を解決するために、セサミのオープン交換インターフェイスを中国に簡単に切り替え、取引プラットフォームをすばやく開始するのに役立ちます。

トップ10の暗号通貨取引プラットフォーム、トップ10の推奨される通貨取引プラットフォームアプリ トップ10の暗号通貨取引プラットフォーム、トップ10の推奨される通貨取引プラットフォームアプリ Mar 17, 2025 pm 06:03 PM

上位10の暗号通貨取引プラットフォームには、1。Okx、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

安全で信頼できるデジタル通貨プラットフォームは何ですか? 安全で信頼できるデジタル通貨プラットフォームは何ですか? Mar 17, 2025 pm 05:42 PM

安全で信頼できるデジタル通貨プラットフォーム:1。OKX、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

トップ10仮想通貨取引プラットフォーム2025暗号通貨取引アプリランキングトップ10 トップ10仮想通貨取引プラットフォーム2025暗号通貨取引アプリランキングトップ10 Mar 17, 2025 pm 05:54 PM

トップ10仮想通貨取引プラットフォーム2025:1。OKX、2。BINANCE、3。GATE.IO、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

トップ10の仮想通貨トレーディングアプリのうち、トップ10の仮想通貨取引アプリのどれが最も信頼できますか? トップ10の仮想通貨トレーディングアプリのうち、トップ10の仮想通貨取引アプリのどれが最も信頼できますか? Mar 19, 2025 pm 05:00 PM

トップ10仮想通貨取引アプリのランキング:1。OKX、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

推奨される安全な仮想通貨ソフトウェアアプリトップ10デジタル通貨取引アプリ2025ランキング 推奨される安全な仮想通貨ソフトウェアアプリトップ10デジタル通貨取引アプリ2025ランキング Mar 17, 2025 pm 05:48 PM

推奨される安全な仮想通貨ソフトウェアアプリ:1。Okx、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

See all articles