发布于 2017-03-09 21:35:46 | 146 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的GO语言教程,程序狗速度看过来!

Go语言

Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。Go是谷歌2009年发布的第二款编程语言。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用的一种BASIC语言。


这篇文章主要介绍了Golang编程实现生成n个从a到b不重复随机数的方法,结合实例形式分析了Go语言字符串操作及随机数生成的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Golang编程实现生成n个从a到b不重复随机数的方法。分享给大家供大家参考,具体如下:

代码很简单:

package test

import (

    "fmt"

    "math/rand"

    "time"

)

//生成若干个不重复的随机数

func RandomTestBase() {

    //测试5次

    for i := 0; i < 5; i++ {

        nums := generateRandomNumber(10, 30, 10)

        fmt.Println(nums)

    }

}

//生成count个[start,end)结束的不重复的随机数

func generateRandomNumber(start int, end int, count int) []int {

    //范围检查

    if end < start || (end-start) < count {

        return nil

    }

    //存放结果的slice

    nums := make([]int, 0)

    //随机数生成器,加入时间戳保证每次生成的随机数不一样

    r := rand.New(rand.NewSource(time.Now().UnixNano()))

    for len(nums) < count {

        //生成随机数

        num := r.Intn((end - start)) + start

        //查重

        exist := false

        for _, v := range nums {

            if v == num {

                exist = true

                break

            }

        }

        if !exist {

            nums = append(nums, num)

        }

    }

    return nums

}

输出结果:


[12 20 18 19 21 28 15 13 11 10]
[28 15 12 10 20 18 16 24 27 17]
[25 28 29 19 21 12 16 13 11 15]
[27 20 19 23 18 13 21 24 12 26]
[19 10 27 18 28 12 22 14 16 26]

希望本文所述对大家Go语言程序设计有所帮助。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务