第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在圍棋中多次洗牌

在圍棋中多次洗牌

Go
冉冉說 2022-07-25 11:27:21
我是新手,我正在嘗試通過練習(xí)來學(xué)習(xí),包括構(gòu)建一些卡片功能。我有一個(gè)洗牌的功能。如何編寫一個(gè)函數(shù),以便我可以將同一副牌洗牌n次數(shù)?我必須使用指針嗎?謝謝。package mainimport (    "math/rand"    "time")type Suit struct {    label string    value int}type Rank struct {    label string    value int}type Card struct {    Suit    Rank}type Deck []Cardfunc getPerm(n int) []int {    r := rand.New(rand.NewSource(time.Now().Unix()))    return r.Perm(n)}func (d Deck) shuffle() Deck {    finalDeck := Deck{}    perm := getPerm(len(d))    for _, j := range perm {        finalDeck = append(finalDeck, d[j])    }    return finalDeck}
查看完整描述

2 回答

?
尚方寶劍之說

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊

假設(shè)您想在適當(dāng)?shù)奈恢孟磁疲梢岳脴?biāo)準(zhǔn)庫rand Shuffle。


為此,您需要提供牌組的長度以及交換功能,以便洗牌功能能夠真正洗牌。


我們還可以添加一個(gè) for 循環(huán)來添加任意次數(shù)的隨機(jī)播放功能。


這可以通過這個(gè)來完成


func (d *Deck) shuffleN(n int) {

    for k := 0; k < n; k++ {

        rand.Shuffle(len(d), func(i, j int) {

            d[i], d[j] = d[j], d[i]

        })

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-07-25
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

在 Go 中,方法只能更改結(jié)構(gòu)的值,只有當(dāng)它們將其作為指針接收時(shí)才會(huì)調(diào)用它們。請(qǐng)參閱示例:方法。


如果您將接收者shuffle()設(shè)為(d *Deck)(指向甲板的指針),則該方法可以改變(洗牌)甲板本身,而不是返回一個(gè)新的 shuffled Deck。然后,在方法主體中,您需要將您的分配finalDeck給d而不是返回它(或在d沒有輔助甲板的情況下就地工作)。每次你打電話時(shí)anyDeck.shuffle(),它都會(huì)改變anyDeck,所以你會(huì)做n幾次。


注意:如果您打算使shuffle()外部main包(公共)可用,則需要以 capital 開頭S。我將在下面的“偽代碼”中使用它:


func (d *Deck) Shuffle() {

   // shuffle d here (and it will change the deck .Shuffle() was called on)

}


// somewhere else in code

...

deck := Deck{}

deck.Shuffle()

從那里您可以擴(kuò)展func Shuffle(n int)以n在函數(shù)體中進(jìn)行洗牌次數(shù)和嵌入輪次(或者您可以將func ShuffleN(n int)其調(diào)用原始Shuffle() n時(shí)間。


查看完整回答
反對(duì) 回復(fù) 2022-07-25
  • 2 回答
  • 0 關(guān)注
  • 115 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)