用python語言隨機生成一萬個一到一百萬的整數,並且儲存十進位制和二進位制檔案,最後採用快速排序排序
#!d:/workplace/python
# -*- coding: utf-8 -*-
# @file : homework1.py
# @author: wangye
# @date : 2018/3/20
# @software: pycharm
# 大資料第一次作業
import os #作業系統
import struct #二進位制
import random #匯入隨機數包
os.chdir('c:\\users\\wy\\desktop')
def wf1():
unc= #存數已經出現的隨機數的列表
fb = open('bin.bin', 'w')#讀取二進位制檔案
f = open('test1.txt', 'w')#讀取檔案
xij=10000 #迴圈次數
#for i in range(1,xij): #迴圈一萬次
while(xij):
n = random.randint(1,1000000) #數字取值範圍
if (n in unc):
#xij=xij+1 #如果存在,跳出,迴圈次數不減
#xij=xij+1
continue
else:
bin = struct.pack('i', n) # 轉換二進位制
fb.write(str(bin)) # 寫入二進位制
f.write(str(n) + ',') # 寫入檔案
xij = xij - 1 #迴圈次數減一
f.close()
def wf2():
f = open('test1.txt', 'r')
x =
for filenum in f.readlines():
filenum=filenum.replace(","," ") #將,改為空格
filenum=filenum.split()#分詞
res=
for i in range(len(filenum)):
m=int(filenum[i]) #將剛讀出的lines中每個數字(str型的int)轉換為int,
res1=quick_sort(res,0,99)#快速排序
#res1=sorted(res)
f1 = open(('test2.txt'), 'w')
for i in range(0,len(res1)):
f1.write(str(res1[i]) + ',')#寫入新檔案
f.close()
def quick_sort(lists, left, right):
# 快速排序
if left >= right:
return lists
key = lists[left]
low = left
high = right
while left < right:
while left < right and lists[right] >= key:
right -= 1
lists[left] = lists[right]
while left < right and lists[left] <= key:
left += 1
lists[right] = lists[left]
lists[right] = key
quick_sort(lists, low, left - 1)
quick_sort(lists, left + 1, high)
return lists
wf1()
wf2()
執行結果截圖:
隨機數生成截圖:
排序之後截圖:
到此結束~
不重複隨機數生成
直接上 生成 0,total 的隨機數 最大隨機數 ilist private static ilistgetrandomsequence int total random random new random for var i listbase.count 1 i 0 i return listo...
python隨機數生成
python中的random模組用於生成隨機數。下面介紹一下random模組中最常用的幾個函式。random.random random.random 用於生成乙個0到1的隨機符點數 0 n 1.0 random.uniform random.uniform的函式原型為 random.uniform...
Python生成隨機數
import random import string 隨機整數 print random.randint 1,50 隨機選取0到100間的偶數 print random.randrange 0,101,2 隨機浮點數 print random.random print random.uniform...