gpt4 book ai didi

可以生成一个随机字符串,其中字符的频率是固定的吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:31 25 4
gpt4 key购买 nike

我正在尝试生成随机字符串,每个字符的出现次数是固定的。例如- G(字符串中的一个字符),不能出现超过 4 次,S,不超过 2 次等等。我的代码能够生成字符串,但没有字符频率的问题。

有什么办法可以解决这个问题吗?任何帮助将不胜感激。

我目前的代码如下:

    #include<stdio.h>
#include<stdlib.h>

//The basic function here is like (rand() % range)+ Lower_bound
int rand_int(int a,int b)
{
if (a > b)

return((rand() % (a-b+1)) + b);
else if (b > a)
return((rand() % (b-a+1)) + a);
else
return a;
}
int main()
{

FILE *fptr;
fptr=fopen("C:\\Users\\Desktop\\dataset.txt","w");
int a,b,r,i,j,k;
char res;
a = 65;
b = 90;
k = 0;
char str[] = "ITLDGGCSSHLPLRCSVDSGCPGLRAGSVSCLPHGSIREGMECSRRHGVGIMGDRRDGSRDS"; //working string
char str_all[] = "ITLDGGCSSHLPLRCSVDSGCPGLRAGSVSCLPHGSIREGMECSRRHGVGIMGDRRDGSRDS";
char subs[] = "ACDEGHILMPRSTV"; //
fprintf(fptr,"%s",str);
fprintf(fptr,"%s","\n");

// value of j represents the number of strings to be displayed
for(j=0 ; j<10000 ; j++)
{
// getting all the sequence strings
// for changing the string at all positions
for(i=0 ; i<62 ; i++)
{
r = rand_int(a,b);
res = (char)r;
str_all[i] = res;
}

// substituting all the not required characters with required ones
for(i=0 ; i<62 ; i++)
{
if(str_all[i] == 'B' || str_all[i] == 'F' || str_all[i] == 'J' || str_all[i] == 'K' || str_all[i] == 'N' || str_all[i] == 'O' || str_all[i] == 'Q' || str_all[i] == 'U' || str_all[i] == 'W' || str_all[i] == 'X' || str_all[i] == 'Y' || str_all[i] == 'Z')
{
str_all[i] = subs[k++];
}
if(k>13)
k=0;
}
//printf("\nModified String for all string positions \n%s",str_all);
fprintf(fptr,"%s",str_all);
fprintf(fptr,"%s","\n");
}
fclose(fptr);
return 0;
}

最佳答案

您可以简单地创建一个包含可用字符的固定(常量)字符串,然后在每次需要随机字符串时打乱它的副本。有关如何在 C 中打乱数组,请参见此处:Shuffle array in C

关于可以生成一个随机字符串,其中字符的频率是固定的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32564655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com