最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt實(shí)現(xiàn)生成指定范圍內(nèi)隨機(jī)數(shù)與隨機(jī)字符串

 更新時(shí)間:2023年07月21日 08:22:01   作者:戀戀西風(fēng)  
這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)生成指定范圍內(nèi)隨機(jī)數(shù)與隨機(jī)字符串,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以自己動(dòng)手嘗試一下

1.生成隨機(jī)數(shù)

生成隨機(jī)數(shù)主要用到了函數(shù)qsrand和qrand,這兩個(gè)函數(shù)在#include <QtGlobal>中,

qsrand用來(lái)設(shè)置一個(gè)種子,該種子為qrand生成隨機(jī)數(shù)的起始值。比如說(shuō)qsrand(10),設(shè)置10為種子,那么qrand生成的隨機(jī)數(shù)就在[10,32767]之間。而如果在qrand()前沒(méi)有調(diào)用過(guò)qsrand(),那么qrand()就會(huì)自動(dòng)調(diào)用qsrand(1),即系統(tǒng)默認(rèn)將1作為隨機(jī)數(shù)的起始值。使用相同的種子生成的隨機(jī)數(shù)一樣。

下列代碼生成了[0,255]之間的3個(gè)隨機(jī)數(shù)。用于生成不同顏色

#include <QTime> 
void generateRandomNumber()
{
    qsrand(QTime(0,0,0).msecsTo(QTime::currentTime()));
    for(int i=0; i<3; i++)
    {
        int test =qrand()%256;
        QTest::qSleep(1);
        qDebug()<<test;
    }
}

注意:

這里我用的 是 msecsTo,并且加了 QTest::qSleep(1);防止連續(xù)可能會(huì)生成相同的隨機(jī)數(shù);

2.生成指定范圍隨機(jī)數(shù)

int generateRandomNumber(int min,int max)
{
    qsrand(QTime(0,0,0).msecsTo(QTime::currentTime()));
    int num = qrand()%(max-min)+min;
    qDebug()<<num;
    return num;
}

3.生成不重復(fù)的隨機(jī)數(shù)組

將產(chǎn)生的隨機(jī)數(shù)存放到數(shù)組中,在每次產(chǎn)生新的隨機(jī)數(shù)的同時(shí),在隨機(jī)數(shù)列表中檢查是否包含該數(shù)

如果包含則重新生成,直到生成新的隨機(jī)數(shù)為止。

int getRandom(int min,int max)
{
    QList<int> list;
    int i,j;
    bool res = true;
    qsrand(QTime(0, 0, 0).msecsTo(QTime::currentTime()));
    for (int i=0; i<10; i++) {
        int num = qrand()%(max-min)+min;
        list.append(num);
        while(res)
        {
            for(j=0;j<i;j++)
            {
                if(list[i]==list[j])
                    break;
            }
            if(j<i)
            {
                list[i] = qrand()%(max-min)+min;
            }
            if(j==i)
                res=!res;
        }
    }
}

4.產(chǎn)生隨機(jī)字符串

QString getRandomString(int length)
{
    qsrand(QDateTime::currentMSecsSinceEpoch());
    const char ch[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int size = sizeof(ch);
    char* str = new char[length + 1];
    int num = 0;
    for (int i = 0; i < length; ++i)
    {
        num = rand() % (size - 1);
        str[i] = ch[num];
    }
    QString res(str);
    return res;
}

到此這篇關(guān)于Qt實(shí)現(xiàn)生成指定范圍內(nèi)隨機(jī)數(shù)與隨機(jī)字符串的文章就介紹到這了,更多相關(guān)Qt隨機(jī)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言實(shí)戰(zhàn)之紙牌游戲

    C語(yǔ)言實(shí)戰(zhàn)之紙牌游戲

    這篇文章主要為大家介紹了通過(guò)C語(yǔ)言實(shí)現(xiàn)的紙牌游戲的示例代碼,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語(yǔ)言有一定的幫助,感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2021-12-12
  • Qt 使用Poppler實(shí)現(xiàn)pdf閱讀器的示例代碼

    Qt 使用Poppler實(shí)現(xiàn)pdf閱讀器的示例代碼

    下面小編就為大家分享一篇Qt 使用Poppler實(shí)現(xiàn)pdf閱讀器的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 一文帶你探索C++中類型轉(zhuǎn)換的奧秘

    一文帶你探索C++中類型轉(zhuǎn)換的奧秘

    C++?提供了四種類型轉(zhuǎn)換方式,幫助我們?cè)诓煌瑪?shù)據(jù)類型之間進(jìn)行有效的數(shù)據(jù)傳遞和操作,這些類型轉(zhuǎn)換方式在不同的場(chǎng)景下有各自的優(yōu)勢(shì)和適用性,下面我們就來(lái)深入了解一下吧
    2023-10-10
  • VisualStudio2022下配置 OpenMP多線程編程環(huán)境與運(yùn)行

    VisualStudio2022下配置 OpenMP多線程編程環(huán)境與運(yùn)行

    本文主要介紹了VisualStudio2022下配置 OpenMP多線程編程環(huán)境與運(yùn)行,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • C++Vector容器常用函數(shù)接口詳解

    C++Vector容器常用函數(shù)接口詳解

    最近我學(xué)習(xí)了C++中的STL庫(kù)中的vector容器,對(duì)于常用容器,我們不僅要會(huì)使用其常用的函數(shù)接口,我們還有明白這些接口在其底層是如何實(shí)現(xiàn)的。所以特意整理出來(lái)一篇博客供我們學(xué)習(xí)
    2022-08-08
  • OpenCV實(shí)現(xiàn)透視變換矯正

    OpenCV實(shí)現(xiàn)透視變換矯正

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)透視變換矯正,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++中獲取字符串長(zhǎng)度的函數(shù)sizeof()、strlen()、length()、size()詳解和區(qū)別(推薦)

    C++中獲取字符串長(zhǎng)度的函數(shù)sizeof()、strlen()、length()、size()詳解和區(qū)別(推薦)

    在C++中計(jì)算長(zhǎng)度的函數(shù)有四種,它們分別是sizeof()?,size(),strlen(),str.length(),這篇文章主要介紹了C++中獲取字符串長(zhǎng)度的函數(shù)sizeof()、strlen()、length()、size()詳解和區(qū)別,需要的朋友可以參考下
    2023-02-02
  • 簡(jiǎn)述c++ 發(fā)展史

    簡(jiǎn)述c++ 發(fā)展史

    這篇文章主要介紹了c++ 發(fā)展的過(guò)程,幫助大家更好的了解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-08-08
  • 詳解C語(yǔ)言正確使用extern關(guān)鍵字

    詳解C語(yǔ)言正確使用extern關(guān)鍵字

    這篇文章主要介紹了C語(yǔ)言正確使用extern關(guān)鍵字,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C語(yǔ)言實(shí)現(xiàn)會(huì)員管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)會(huì)員管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)會(huì)員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論

克拉玛依市| 凤城市| 大渡口区| 晋城| 登封市| 饶河县| 长海县| 武平县| 桐城市| 正镶白旗| 宜黄县| 通化市| 云林县| 军事| 兴业县| 旬阳县| 永城市| 新绛县| 三穗县| 东辽县| 黄陵县| 小金县| 阳原县| 阿拉尔市| 中西区| 综艺| 南昌市| 辽源市| 陆良县| 昌江| 景泰县| 定安县| 芜湖市| 岳普湖县| 淮南市| 梅州市| 清水河县| 辰溪县| 西畴县| 新绛县| 锡林浩特市|