C++【生成16個不重複字母】(生成不重複隨機數)
常規做法:生成一個隨機數,存在陣列中。往後每次生成一個隨機數,都需要遍歷前面的陣列,如果相同則需要重新生成一個隨機數,再重新比較一遍,這樣非常麻煩!
改進版做法:先得到一個26個字母組成的陣列,再用隨機數把陣列打亂(兩兩交換即可實現)
#include<iostream>
using namespace std;
int main
{
const int N = 16;//不重複字母陣列的長度
srand((unsigned int)time(0));//生成隨機數
char arr[26];
for (int i = 0; i < 26; i++) arr[i] = 'a' + i;//生成一個26個字母的陣列(順序)
for (int i = 0; i < N; i++)//將字母陣列打亂順序
{
int p = rand() % 26, q = rand() % 26;
int temp = arr[p];
arr[p] = arr[q];
arr[q] = temp;
}
//輸出結果:
//取該陣列的前16為就是我們需要的陣列了
for (int i = 0; i < N; i++)
{
cout << arr[i]<<" ";
}
}
相關文章
- 巧用物件,生成不重複隨機數物件隨機
- 如何生成隨機不重複的11位數字隨機
- python怎麼生成隨機不重複陣列Python隨機陣列
- C語言程式生成指定範圍的不重複的隨機數C語言隨機
- JavaScript 陣列隨機不重複元素JavaScript陣列隨機
- JavaScript陣列中隨機取出不重複項JavaScript陣列隨機
- 提取不重複的整數
- 匹配指定長度不重複字母正規表示式
- 匹配指定位數不重複數字
- 一百個不重複隨機數(無聊的時候看見一個app想到的)隨機APP
- 如何優雅地在Django專案裡生成不重複的ID?Django
- C++生成隨機數C++隨機
- mongodb怎麼統計不重複數量?MongoDB
- Excel 透視表如何不重複計數Excel
- 字元流中第一個不重複的字元字元
- Java入門三:學生序列排序完善練習:生成3個不重複的1000以內正整Java排序
- Java之生成一個隨機驗證碼(數字+大小寫字母)Java隨機
- 寫一個方法找出指定一維陣列所有不重複的元素和個數陣列
- 劍指Offer 字元流中第一個不重複的字元字元
- golang 計算最長不重複字串長度Golang字串
- HashSet 如何保證元素不重複——hash碼
- C#迴圈中使用Random生成隨機數有重複問題C#random隨機
- JavaScript 生成隨機數JavaScript隨機
- python生成隨機數、隨機字串Python隨機字串
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- Linux系統自動隨機生成複雜密碼方法Linux隨機密碼
- 生成某個範圍的隨機數隨機
- Rabbitmq消費者冪等性(不重複消費)MQ
- 標籤列印軟體如何匯入TXT文字批次製作(不重複的)可變隨機碼隨機
- matlab 生成隨機數序列Matlab隨機
- 隨機數生成器隨機
- java隨機數生成原理Java隨機
- 前端技術分享:不重複的組成4位數求平均值前端
- Linux Shell 生成隨機數和隨機字串Linux隨機字串
- 輸出一個百位數,1-5之間所有組合型別,數字不重複型別
- 幾種生成隨機數方法隨機
- Python中如何生成隨機數?Python隨機
- 使用Math類生成隨機數隨機