要求:随机生成1万个整数,包含8000个0
package main
import (
"fmt"
"math/rand"
"os"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano()) // 设置随机种子
n := 10000
zeroNum := 8000
data := make([]int, n) // 创建长度为n的int数组
for i := 0; i < zeroNum; i++ {
data[i] = 0 // 前8000个元素赋值为0
}
for i := zeroNum; i < n; i++ {
data[i] = rand.Intn(100) + 1 // 后2000个元素随机生成1-100的整数
}
rand.Shuffle(n, func(i, j int) {
data[i], data[j] = data[j], data[i] // 随机打乱数组中的元素
})
file, err := os.Create("output.txt") // 创建并打开一个名为"output.txt"的文件
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
for _, d := range data {
fmt.Fprintf(file, "%d\n", d) // 将每个元素写入文件,每行一个
}
//fmt.Println(data) //直接输出
fmt.Println("Done")
}
输出被保存在与程序同一目录下的output.txt中