不重複的隨機數

2021-09-08 02:46:16 字數 1469 閱讀 8967

「大哥,看了你這篇博文我怎樣才能產生10個且每個有8位不相同的隨機數字?」

剛才有位網友在skype問及如上問題。

好的,insus.net也正想寫乙個儲存過程來應用上面這篇的sql語句,你可以參考如下的儲存過程,如果還問題請繼續討論。

create

procedure

[dbo

]. [

usp_randomnumber](

@len

int=

1,  

--隨機數字數

@rows

int=1--

隨機筆數

)

asbegin

declare

@tas

table(

[random number

]varchar(

max))    

declare

@lint

=1, 

@rint=

1while

@r<=

@rows

begin

declare

@rnvarchar(

max) 

=''while

@l<=

@len

--隨機產生每個隨數的位數  

begin

set@rn

=@rn

+char(

round(

rand() 

*9+48, 0))

set@l=@l

+1end--

如果產生相同的隨機數,將不會儲存

ifnot

exists(

select

[random number

]from

@twhere

[random number]=

@rn)

begin

insert

into

@tselect

@rn--

insert into @t ([random number])values (@rn)            

set@r=@r

+1--記錄總共產生了幾筆隨機數

set@l=1

--每產生完乙個隨機數之後,將隨機數的位數初始化為1        

endend

select

[random number

]from

@tend

當你把上面的儲存過程附加入資料庫之後,可以執行這個儲存過程:

execute

[dbo

]. [

usp_randomnumber]8,

10得到的結果(由於是隨機產生,每次execute獲得結果會不一樣)

不重複隨機數

1 不重複隨機數1 生產 lowerbound,upperbound 的隨機數,核心 int upperbound lowerbound 1 rnd lowerbound 示例 如下 sub rndnumnorepeat1 dimdic dim i set dic createobject scri...

例子 隨機數 不重複的隨機數

以隨機數是js數學物件的方法之一。math.random 0 1的隨機數這樣使用的範圍就比較小,所以如果想用這個api獲得其它範圍的隨機數的話,就需要使用下面這種 math.random b a 1 a 以上這種寫法是獲取a b的隨機數的寫法,比如想要50 100的隨機數,就應該是 math.ran...

不重複隨機數生成

直接上 生成 0,total 的隨機數 最大隨機數 ilist private static ilistgetrandomsequence int total random random new random for var i listbase.count 1 i 0 i return listo...