C ++에서 srand (time (0)) 함수는 무엇을합니까?


최상의 답변

컴퓨터가

의사 난수 숫자는 프로그래머가 설계 한 일부 공식을 기반으로하기 때문에 실제로 무작위가 아닙니다. 그리고 그 공식을 기반으로 컴퓨터는 우리가 기대하는 난수 세트를 생성합니다. 이에 대해 생각하는 한 가지 방법은 컴퓨터가 모든 페이지에 숫자가있는 책을 읽기 시작한다고 가정하는 것입니다. 이 책을 읽으면 컴퓨터가 일련의 난수를 생성하는 것처럼 보일 수 있습니다.

하지만 문제가 있습니다. 컴퓨터가 처음부터 책을 읽기 시작합니다. 이 때문에 컴퓨터는 프로그램에서 항상 동일한 “무작위”숫자 집합을 생성합니다. 이 프로그램을 어딘가에서 사용하는 경우 주사위 굴리기 게임은 항상 동일한 결과를 생성하고 원하지 않을 것입니다.

이 문제에 대한 해결책은 컴퓨터가 임의의 장소에서 읽기를 시작하는 경우입니다. 처음부터가 아니라 책에서. 이를 “ 시드 “라고합니다. 시간 인수를 함수 srand 함수에 전달하여 기본적으로 임의의 숫자를 생성합니다. 프로그램을 시작할 때마다 다른 무작위로 나타나는 현재 날짜와 시간을 기반으로하며 이는 신뢰할 수 없지만 대부분의 시간 동안 작동합니다.

이 코드를 사용했다면 정상이 아닌 경우 < cstdlib 에 파일을 포함했습니다. 이 파일은 난수 생성에 대한 함수의 정의를 포함합니다.

Answer

C ++에서 “return 주 함수에 1 “이 있습니까?

return 1; 문이 실제로 실행되면 프로그램이 종료되고 상태 1이 반환됩니다. 호출 환경에. (호출 함수에 값 1을 반환 할 수 있지만 C ++에서는 main 호출을 허용하지 않습니다.)

이 의미는 환경에 따라 다릅니다. 언어는 반환 값 1에 어떤 의미도 할당하지 않습니다. 반환 0이 필요합니다. 성공을 나타내는 상태를 반환합니다. exit() 함수를 선언하는 헤더 는 매크로 EXIT\_SUCCESS

는 해당 값이 main에서 반환되는 경우 명백한 의미를가집니다. (main에서 값을 반환하는 것은 본질적으로 동일한 값으로 exit()를 호출하는 것과 같습니다.)

많은 시스템에서 Linux, 기타 UNIX 계열 시스템 및 Windows를 포함하여 반환 0은 성공을 나타내고 1을 반환하면 실패를 나타냅니다. 그러나 다른 시스템에는 다른 규칙이 있습니다. (특히 OpenVMS는 짝수 값을 사용하여 실패를 나타내고 홀수 값을 사용하여 성공을 나타내므로 return 1;는 성공을 나타냅니다. C 런타임에는 는 이상, 즉 성공, 상태를 반환합니다.)

Linux / UNIX / POSIX 시스템에서만 작동하는 코드를 작성하는 경우 return 1;를 사용하여 프로그램이 실패했음을 나타낼 수 있지만 return EXIT\_FAILURE;는 이식성이 더 높습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다