LoginSignup
0
0

More than 3 years have passed since last update.

[Golang] 当番を乱数で決定するプログラム

Posted at

はじめに

名簿一覧からx人組作って欲しいという要望があったので折角だしgo言語で書いてみました。

package main

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

)

func main() {
    list := [...]string{"mano", "hiori", "meguru",
        "kogane", "mmm", "mitsumine", "sakuya", "kiriko",
        "kaho", "choko", "jyuri", "rinze", "natsuha",
        "amana", "tenka", "chiyuki",
        "asahi", "huyu", "mei",
        "toru", "higuchi", "pya", "hinana"}

    // 何等分するか
    parse := 5
    // 出現した乱数を保持するスライス
    var slice []int
    rand.Seed(time.Now().UnixNano())

    for i := 1; i < len(list)+1; i++ {

        var r int
        // 乱数生成
        for {
            r = rand.Intn(len(list))
            if !contains(slice, r) {
                slice = append(slice, r)
                break
            }
        }

        fmt.Printf("%v ", list[r])

        if i%parse == 0 {
            fmt.Println("")
        }
    }

}

func contains(s []int, e int) bool {
    for _, v := range s {
        if e == v {
            return true
        }
    }
    return false
}

出力結果 例

huyu amana kaho asahi toru
kogane kiriko mano rinze meguru
hiori mitsumine sakuya higuchi jyuri
natsuha tenka chiyuki pya choko
mei mmm hinana

https://gawawa124.hatenablog.com/entry/2015/04/08/193237

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0