GO语言数组结合随机数小案例--------制作双色球随机选号程序

package main

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

func ifinballs(parma int, list [6]int) bool {
	for _, b := range list {
		if b == parma {
			return false
		}
	}
	return true
}
func getRedBall() {
	var redballs [6]int
	for i := 0; i < 6; i++ {
		for {
			rand.Seed(time.Now().UnixNano())
			num := rand.Intn(33) + 1
			if ifinballs(num, redballs) {
				redballs[i] = num
				break
			} else {
				continue
			}
		}
	}
	fmt.Print(redballs)
}

func main() {
	//num1 := rand.Int()
	//fmt.Println(num1)
	//
	//for i := 0; i < 10; i++ {
	//	num := rand.Intn(10)
	//	fmt.Println(num)
	//}
	//rand.Seed(1000000)
	//num2 := rand.Intn(10)
	//fmt.Println("a----->", num2)
	//

	/*
		只有种子不一样的时候我们才能获取到不同的随机数
		所以我们这儿使用一下时间戳来进行我们的一个种子的获取
		获取时间使用函数time.Now() 时间格式是 2020-03-05 11:38:28.0204254 +0800 CST m=+0.003990201
		这儿获取的时间是标准格式,我们需要取得时间戳,所以我们使用
		t1.Unix()指的是获取秒的时间戳
		t1.UnixNano()指的是获取纳秒的时间戳
	*/

	//t1 := time.Now()
	//fmt.Println(t1)
	//timeStamp1 := t1.Unix()
	//timeStamp2 := t1.UnixNano()
	//fmt.Println(timeStamp1)
	//fmt.Println(timeStamp2)
	//fmt.Printf("%T\n",t1)

	/*
		下面开始真正的获取随机数
		Step1:获取种子数,设置为时间戳
		Step2:调用生成随机数的函数
	*/

	//rand.Seed(time.Now().UnixNano())
	//for i:=0; i<10 ; i++  {
	//		//fmt.Println("------>",rand.Intn(200))
	//		/*
	//		Intn是指可以获取0-n之间的随机数
	//		我们可以通过加法来写某某到某某之间的随机数
	//		例如我们取得  15-32之间的随机数我们取17的随机加上15就好
	//		*/
	//		fmt.Println("------>",rand.Intn(18)+15)
	//		}

	/*

		到这儿咱们学习了取随机数,下面咱们实践一下,我们做一个彩票随机抽取的小程序
		首先我们写两个类   一个类抽取红球,一个类抽取蓝球
	*/
	rand.Seed(time.Now().UnixNano())
	var blueballs [1]int
	var nums int
	fmt.Println("请输入你需要机选几注")
	fmt.Scan(&nums)
	for i:=0; i<nums; i++ {
		num := rand.Intn(16) + 1
		blueballs[0] =num
		fmt.Print("红球号码是----》")
		getRedBall()
		fmt.Println("     蓝球号码是----》",blueballs)
	}

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值