随机生成字符串

Posted stupid_one

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机生成字符串相关的知识,希望对你有一定的参考价值。

技术分享
#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;

struct Node {
    double val;
    int ran;
    char ch;
    bool operator < (const Node & rhs) const {
        if (val != rhs.val) return val < rhs.val;
        else return ran > rhs.ran;
    }
    Node(double _val, int _ran, char _ch) {
        val = _val, ran = _ran, ch = _ch;
    }
};

priority_queue<Node> que;
const int maxn = RAND_MAX + 20;
bool vis[maxn];
map<unsigned long long int, bool> mp;
char str[22222];
const int seed = 131;

void show() {
    static int f = 0;
    if (f < 100) printf("f\n");
    else exit(-1);
    f++;
}

void work() {
    srand(time(NULL));
    for (int i = a; i <= z; ++i) {
        int ran = rand();
        while (vis[ran]) ran = rand();
        vis[ran] = true;
        que.push(Node(1e18, ran, i));
    }
    for (int i = 0; i <= 9; ++i) {
        int ran = rand();
        while (vis[ran]) ran = rand();
        vis[ran] = true;
        que.push(Node(1e18, ran, i));
    }
    int ansNum, ansLen;
    printf("please enter the number for Code : ");
    scanf("%d", &ansNum);
    printf("please enter the len for Code : ");
    scanf("%d", &ansLen);
    for (int i = 1; i <= ansNum; ++i) {
        unsigned long long int hashVal = 0;
        for (int j = 1; j <= ansLen; ++j) {
            Node t = que.top();
            que.pop();
            str[j] = t.ch;
            t.val /= 2;
            vis[t.ran] = false;
            int en = rand();
            while (vis[en] == true) {
//                show();
                en = rand();
//                printf("%d\n", en);
            }
            t.ran = en;
            que.push(t);
            hashVal = hashVal * seed + t.ch;
        }
        if (!mp[hashVal]) {
            mp[hashVal] = true;
            printf("%s\n", str + 1);
        } else {
            i--;
        }
    }
}

int main() {
    work();
    return 0;
}
View Code

 

以上是关于随机生成字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP 代码片段

C/C++ - 生成一个随机字符串覆盖以前的(见下面的代码)

如何使用 Twig 生成随机字符串?

php生成随机密码(php自定义函数)转自先锋教程网

Java随机生成字符串

JS一行代码,生成一个随机颜色,简单粗暴。