隨機數為陣列的下標,可有下標相同情況怎麼解決

2022-12-13 11:26:04 字數 2650 閱讀 2294

1樓:匿名使用者

解決方法:分兩步。

第一:定義一個陣列。sub[n],用來存放已經選出的隨機數下標。

第二:在如每個隨機數產生後,在sub[n]中判斷一下,是否已經有相同的了。

如果有相同的,則再產生一次。直到沒有相同的。

如果沒有相同的,就可以使用了。記得將使用過的數放在陣列sub[n]中。

int a=rand()%10;

<<<<<<<<<<<***************===在這裡加一個判斷。

cout<

2樓:匿名使用者

應該說下面這個方法比你自己的方法要好點:)基本思想:假設陣列為a[10]

1.產生兩個10(根據你的原始陣列而定)以內的隨機數rand1,rand2.

2.判斷rand1是否等於rand2.如果等於回到第1步,否則到第三步.

3.交換a[rand1]和a[rand2].

4.重複上述步驟若干次即可實現你的要求(次數由你自己決定).

具體實現就不寫出來了,都是些很簡單的**.

產生10以內的隨機數

srand((unsigned int)time(null));

int rand1 = rand() % 10;

int rand2 = rand() % 10;

3樓:匿名使用者

將陣列放入一個環形連結串列,隨便從一個位置數起,數隨機次,取出選中的並把它從連結串列中刪除,直至為空

4樓:

解決重複問題並指出你另外的演算法問題

因為rand()函式 返回一個 0到10000的隨機數,所以rand()%10返回0的概率大過其他的。

我的**如下:

bool mark[10];

for(int i = 0; i < 10; i++) mark[i] = true;

int n = 10;

int r = 0;

while(n > 0)}}

5樓:匿名使用者

我想有兩個解決方向

1.實現產生不同的隨機數(網上搜一下)

2.允許產生相同的隨機數,判斷新產生的隨機數,如果發生重複,則重新產生,直到新產生的隨機數是前邊沒出現過的

另外,產生隨機數用rand()還不行,還要加上srand((unsigned)time(null));(需要標頭檔案time.h)

j**a獲得一個隨機數,把這個隨機數當做陣列下標,並且不能重複

6樓:匿名使用者

static arraylistindexs = new arraylist<>();

public static void main(string args) ;

int n = name.length;

int i = 0;

while (i < n)

}for (int index : indexs)}

可以通過陣列下標越界的方法產生隨機數嗎?

7樓:函安白

不可以。這個方法是在記憶體區域中隨意取數,雖然這種數看起來似乎沒什麼規律,但由於系統動作本身就帶有規律性,很可能程式多執行幾次都會有類似的結果,達不到隨機的目的。

另外隨機數的產生有一套嚴格的要求,比如數值要均勻的發生在一段區間內,避免總是集中在某些數字;數值週期要夠長,不能多呼叫幾次就出現重複,等等。

在記憶體在隨意取數的方法可以用於確定隨機數的初始值的輔助手段,不宜完全依賴這種方法。

j**a中如何由陣列元素得到下標,有沒有不用去一個個迴圈的方法?

8樓:

你好,這個不可以的,而且陣列裡的元素可以相同啊,所以得出來的有可能是不止一個下標哦

陣列下標可以是字母嗎

9樓:龍的傳人之凱聖

從陣列的定義上講陣列的下標為字母完全是可以滴,因為字母也為字元常量嘛,所以字母滿足為陣列定義時下標為常量表示式的條件;

所以說完全可以;

在定義陣列定用時用數值表示下標陣列的長度(int a[5]),而其她情況如用迴圈引用陣列

#include<stdio.h>

main

10樓:匿名使用者

不可以,陣列在定義之後可以用變數做下標,定義陣列一定得用陣列,或者define

11樓:匿名使用者

可以的,不過你需要連續的字母吧,看看ascii碼

程式設計,把20個隨機數存入一個陣列,然後輸出該陣列中的最小值,並輸出最小值的下標

定義一個整型陣列,將100個隨機整數從下標1開始放入該陣列中,求出該陣列中具有偶數值的偶數下標元素之和

12樓:匿名使用者

dim a(1 to 100) as integerfor i = 1 to 100

a(i)=int(rnd*100)

if i mod 2 =0 and a(i) mod 2=0 then s=s + a(i)

next

msgbox "和:" & s

VB隨機數問題,VB隨機數的問題。

private sub command1 click randomize text3.text int rnd val text2.text val text1.text 0.5 val text1.text 隨機 上線 下線 下線 如果不用 0.5 就永遠不會產生上限值,因為 rnd永遠 0 1 ...

建立整型陣列a,使用java中的隨機數函式給陣列

你好,你定義的陣列長度為20怎麼可以給a 100 賦值呢。如果是給a 20 的數內組賦值 int a new int 20 random random new random for int i 0 i果滿意,請採納容,謝謝。public class liti401 system.out.print ...

EXCL中限定範圍的隨機數之和為固定值

比如,我想得到五個隨機資料,限定他們的和為100,用excel怎麼實現。4工具 資料分析 隨機數發生器,在對話方塊中,變數個數,1,表示產生一列資料 public function randc r count as long,sum i as long as string r count為隨機數個數...