[4. 기본자료형] 4.10 임의의 숫자를 균등한 확률로 생성하기
Q 4.10 임의의 숫자를 균등한 확률로 생성하기0혹은 1을 같은 확률로 생성해 내는 임의의 숫자 생성기가 주어졌을 때, a와 b사이의 임의의 자연수 i를 생성하려면 어떻게 해야 할까?단, 여기서 [a,b] 사이의 모든 값은 같은 확률로 생성되어야 한다.임의의 숫자 생성기가 2번 호출되면 [00, 01, 10, 11] 중의 한가지의 결과값을 생성하고,=>3번 호출되면 [000, 001, 010, 011, 100, 101, 110, 111] 중 한가지의 결과값을 생성한다.이때 1~6사이의 숫자를 호출하고 싶으면 그 결과가 000~ 101 사이의 값 + 1 일때로 설정하고,110 111 일때는 숫자호출기를 다시 3번 호출하는 방법을 사용하면 된다.이때 숫자를 다시 생성할 확률은 2/8 이며, 두번 다시 생성..
2025. 1. 8.
[4. 기본자료형] 4.9 회문 확인하기
Q 4.9 회문 확인하기회문이란 앞으로 읽는것과 뒤로 읽는것 모두 동일한 문자열을 말한다.Ex) 회문O : 1, 7 ,11 ,121, 333, 2147447412회문X : -1, 12, 100, 2147483647이때 주어진 10진수 숫자가 회문인지 아닌지 확인하는 프로그램을 작성하시오.음수는 회문이 될수없다.최상위 숫자와 최하위 숫자를 만날때까지 자릿수를 비교하는 방법을 사용하면 시간복잡도 O(n), 공간복잡도 O(n) 이 된다.공간복잡도를 줄이기 위해 다음과 같은 방법을 사용할까 한다.최상위 숫자와 최하위 숫자가 서로 같은지를 확인하고 같으면 서로 삭제,다르면 false를 return 하는 방법을 사용하려고 한다.ex) 157751 이라면 1 == 1 이므로 서로 삭제하고 5775 의 숫자를 확인한다..
2024. 12. 26.