c 如何隨機抽取問題

發布 教育 2024-06-27
10個回答
  1. 匿名使用者2024-01-30

    抽 6 張牌,總共 4 6 4096 種可能性。

    讓我們來看看有多少機會中彩票。

    如果中了彩票,那麼四張牌的模式只能是:

    對於每種模式,我們還將數字分為 4 張牌。

    第一種模式有 4 個!/(3!有 4 種分配方式,每種方式有 6 種!/(3!120種獲勝可能性。

    第二種模式有4個!/(2!*2!有 6 種分配方式,每種方式有 6 種!/(2!*2!180種獲勝可能性。

    所以總共有4*120+6*180 1560種中獎可能性。

    所以獲勝的概率大約是:1560 4096。

    P.S. C++模擬程式,結果非常接近!

    int main()

    int n = 1000000; //test countint c = 0;

    for ( int i = 0; i < n; i++int a[4] = ;

    for ( int k = 0; k < 6; k++a[rand() 4]++

    bool good = true;

    for ( int k = 0; k < 4; k++if ( a[k] == 0 )

    good = false;

    break;

    if ( good )

    c++;cout <

  2. 匿名使用者2024-01-29

    生成作用域內的隨機數。 使用 if 語句輸出具有不同隨機數或隨機數範圍的相應問題。

  3. 匿名使用者2024-01-28

    例如,現在有 100 個問題,必須抽出 10 個問題。

    首先,建立乙個問題的索引陣列,idxarr =

    然後使用隨機數生成函式 rand() 生成乙個從 0 到 99 的隨機數,並將索引陣列中索引的值與陣列中的最後乙個值交換,例如,如果生成的隨機數為 2,則將索引陣列更改為 idxarr=

    然後生成乙個從 0 到 98 的隨機數,並將索引陣列中索引的值與陣列中的倒數第二個值交換,例如,這次生成的隨機數為 4,然後將索引陣列修改為 idxarr=

    等等。 執行 10 次,最終索引陣列中的最後 10 個值是抽取問題的索引號。

    如果有什麼不明白的地方,可以再問我。

  4. 匿名使用者2024-01-27

    源程式**和演算法解釋如下

    生成 1-10 個隨機數程式:

    #include

    #include

    using namespace std;

    int main()

    定義要儲存的隨機數陣列。

    srand((unsigned)time(null));初始化隨機函式。

    number[0] = rand() n;第乙個隨機數不需要比較。

    cout

    if (j == (i - 1)) 如果遍歷完成,則彈出。

    break;

    j++;cout

    程式結果如下:

  5. 匿名使用者2024-01-26

    C 語言有自己的隨機數函式 rand()。

    原型是: int rand();

    該函式是獲取乙個隨機整數。

    標頭檔案是。

    可以編寫乙個提取 10 個隨機數並輸出它們的程式。

    #include

    #include

    int main()

    在應用程式中,所需的隨機數通常是乙個範圍,例如,當您要隨機生成一組有效的整數分數時,實際上需要生成一組 [0,100] 隨機整數。 這可以通過取餘數(模除法)來實現。

    對於 a%b 的值,結果範圍介於 [0,b-1] 之間。 根據這個原理,如果想得到乙個[a,b]範圍內的隨機整數,可以先找到[0,b-a]範圍內的隨機數,然後在結果中加a。

    即 rand()%b-a+1) +a

    因此,在前面**的基礎上,可以編寫提取10個隨機數的程式,其值在[0,100]範圍內。

    #include

    #include

    int main()

    值得注意的是,C提供的蘭德函式是乙個偽隨機數,如果不做其他事情,則每次執行程式時得到的隨機數序列。 為了解決這個問題,C 語言還定義了 srand 庫函式,用於為隨機數提供種子以獲得不確定的隨機初始值。

    srand 需要乙個 int 引數,該引數更常用於 time(null) 來獲取當前的微秒數。

    所以有乙個完整的操作來設定隨機數種子。

    srand(time(null));

    需要引入時間函式來宣告。

    srand 函式需要在第一次呼叫 rand 之前呼叫,以便最終將 [0,100] 之間的 10 個隨機整數輸出的程式修改為。

    #include

    #include

    include 新增 time 函式的標頭檔案。

    int main()

  6. 匿名使用者2024-01-25

    這可以通過標準 C 來實現。

    標頭檔案中包含了兩個需要使用的函式,分別是 void rand ( unsigned int seed ); 設定隨機化種子。

    int rand ( void );生成乙個介於 0 和 rand max 之間的隨機數,其中 rand max 是定義的數字。

    事實上,這兩個函式的實現都會產生假的隨機數,所以隨機性的真實實現也需要使用函式 time()。

    生成乙個介於 0-9 之間的隨機數。

    #include

    #include

    #include

    int random()

  7. 匿名使用者2024-01-24

    這是乙個**,你看。

    int x,y,i,t;

    int a[100];

    for(i=0;i<100;i++)

    a[i]=i+1;

    for(i=0;i<100;我++)這裡的子交易所越多,A就越混亂。

    while(x!=y);

    t=a[x];交換下標 A xy 對應的資料。

    a[x]=a[y];

    a[y]=t;

    最後,刪除與 a[0] 和 a[9] 對應的問題。

    其餘的應該不難。

  8. 匿名使用者2024-01-23

    使用 int rand() 函式生成乙個隨機數,然後根據隨機數讀取問題編號。

  9. 匿名使用者2024-01-22

    int c;

    c=rand()%90+10;

    rand() 是介於 0 和 32767 之間的隨機數。

    90 將隨機生成數字 0-89,+10 將變為 10-99。

  10. 匿名使用者2024-01-21

    檔案--- 建立乙個新的---專案---選擇要建立工程文件的專案,然後建立乙個工作專案。

相關回答
5個回答2024-06-27

簡單地說,使用 srand(unsigned int

該函式設定種子,然後使用 rand() 返回乙個隨機數。 c C++ 中的隨機數不是真隨機數,而是偽隨機數。 >>>More

11個回答2024-06-27

模組 1 中的主題是隨機選擇的。

科目 1 考試。 >>>More

8個回答2024-06-27

如果你不重複,我會給你乙個更經典的**。

int a[35]; >>>More

14個回答2024-06-27

1.隨機類的下乙個方法,在兩個整數之間生成乙個隨機數。 語法格式為: >>>More

15個回答2024-06-27

我也是學生,我很懶,還沒有學會如何編寫匯入的聲音,但這裡是前三個功能。 >>>More