무 작위 문자열
2. 고정 되 지 않 은 길이 의 무 작위 문자열 을 만 드 는 것 은 위 에 고정 되 어 있 는 길이 의 무 작위 문자열 을 만 드 는 토대 에서 무 작위 숫자 를 도입 하여 문자열 의 길 이 를 조절 하 는 것 입 니 다.
코드 는 다음 과 같 습 니 다:
//
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 10// 10
void main()
{
int flag,charLengt;
int i,j,k=0;
char ch[N+1]={NULL};
srand((unsigned)time(NULL));
for(i=0;i<10;i++)// 10 String
{
for(j=0;j<N;j++)
{
flag=rand()%2;
if(flag) ch[k++]='A'+rand()%26;
else ch[k++]='a'+rand()%26;
}
ch[k]='\0';
k=0;
printf("%s
",ch);
}
}
자료 2 출처:http://blog.csdn.net/wangchangshuai0010/article/details/17188417
// length
char* genRandomString(int length)
{
int flag, i;
char* string;
srand((unsigned) time(NULL ));
if ((string = (char*) myMalloc(length)) == NULL )
{
myLog("Malloc failed!flag:14
");
return NULL ;
}
for (i = 0; i < length - 1; i++)
{
flag = rand() % 3;
switch (flag)
{
case 0:
string[i] = 'A' + rand() % 26;
break;
case 1:
string[i] = 'a' + rand() % 26;
break;
case 2:
string[i] = '0' + rand() % 10;
break;
default:
string[i] = 'x';
break;
}
}
string[length - 1] = '\0';
return string;
}
strand (time (null) 에 대한 자료 출처:http://zhidao.baidu.com/link?url=83y2wU6uazUagHHieLfT2k568Qp_A4obFq4Uu18TbrCLT3HDslTWZJIkyvra4Bz-lU32Vl24LvteIo11lk8pJa
C 언어 에서 무 작위 수 를 가 져 오 는 함 수 는 rand () 입 니 다.
합 격 된 무 작위 수 치 는 가 져 온 값 으로 충분히 해시 되 어야 하 며, 값 이 예측 할 수 없 는 특성 이 있어 야 합 니 다. 그러나 어떠한 처리 도 하지 않 고 rand () 를 직접 호출 하면 얻 은 값 은 고정 되 어 있 습 니 다.다음은 하나의 예 이다.
#include <stdio.h>
#include <stdlib.h>
int main()
{
for(i = 0; i < 10; i ++)
printf("%d
", rand());// 10 。
return 0;
}
이 프로그램 을 실행 하 는 것 은 문제 가 없어 보 입 니 다. 얻 은 10 개의 숫자 가 모두 산열 되 어 있 기 때문에 무 작위 수의 느낌 이 듭 니 다.그러나 이 프로그램 을 반복 적 으로 실행 하면 매번 실행 할 때마다 얻 는 10 개의 수가 똑 같 고 이것 은 예측 할 수 없 는 특성 에 부합 되 지 않 는 다 는 것 을 알 수 있다.
그래서 C 언어의 난수 함수 rand () 는 위조 난수 라 고 불 린 다.
srand 함 수 를 통 해 이 가짜 랜 덤 수 를 '진짜' 로 만 들 수 있 습 니 다. 그 원 리 는 랜 덤 피 드 를 설정 한 다음 에 후속 적 인 랜 덤 수 는 피 드 값 에 의존 하 는 것 입 니 다.
#include <stdio.h>
#include <stdlib.h>
int main() {
for(i = 0; i < 100000; i += 10000)
{
srand(i);
printf("%d
", rand());// 10 。
}
return 0; }
이 프로그램 을 반복 적 으로 실행 하면 같은 랜 덤 피 드 가 가 져 온 랜 덤 수치 가 똑 같 음 을 알 수 있 습 니 다.이렇게 하면 이 무 작위 종자 수 치 는 고정 값 이 될 수 없 기 때문에 이 종자 수 치 를 변화 시 킬 방법 을 강구 해 야 한다.
이 값 을 변화 시 키 는 방법 은 여러 가지 가 있 습 니 다. 가장 많이 사용 되 는 것 은 시간 함수 time () 을 통 해 입 니 다.이 함 수 는 현재 시간 값 을 가 져 옵 니 다. 단 위 는 밀리초 입 니 다.일반적인 호출 방식 은
time(NULL);
이 값 으로 랜 덤 피 드 를 만 들 면 매번 호출 되 는 피 드 값 이 다 를 수 있 습 니 다. 똑 같은 효 과 를 얻 으 려 면 밀리초 단위 의 같은 시간 에 동시에 실행 해 야 하기 때문에 이 확률 은 너무 낮 습 니 다.그래서 time (NULL) 은 가장 자주 사용 하 는 랜 덤 피 드 가 되 었 다.
이상 은
srand(time(NULL));
난수 발 생전 에 랜 덤 으로 씨앗 을 세 는 이유 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.