random

Java :: Stream으로 Random 수 생성
난수를 생성하는데 사용하는 Random 클래스 에는 아래 인스턴스 메소드들이 포함되어 있다. 이 메소드들은 해당 타입의 난수들로 이루어진 스트림을 반환한다. IntStream ints() LongStream longs() DoubleStream doubles() 이 메소드들이 반환하는 스트림은 크기가 정해지지 않은 무한 스트림 이므로 limit() 도 같이 사용해서 스트림의 크기를 제한해주어야 한다. limit() 은 스트림의 개수를 지정하는데 사용되고 무한 스트림을 유한 스트림으로 만들어준다. IntStream intStream = new Random().ints(); //무한 스트림 intStream.limit(5).forEach(System.out::println); //5개의 요소만 출력 매개변수..

Pwnable.kr :: Toddler's Bottle - random write up
random 문제를 풀어보자. 첫 번째 fd 문제와 동일하게 1pt 짜리 문제이다. 실제로도 크게 어렵지 않은 문제였다. 문제를 살펴보자. 역시나 세 개의 파일이 존재한다. 소스코드를 보자. rand() 함수를 이용해 랜덤값을 만들어 random 변수에 저장하고 scanf() 로 입력받은 값과 xor 연산을 해서 연산 결과가 0xdeadbeef 이면 flag 를 출력한다. 이 문제를 풀 때 알아야 할 것이 하나 있는데, rand() 함수는 프로그램이 실행될 때 값이 정해진다. 즉 프로그램을 여러번 실행시켜도 동일한 값이 나온다는 것이다. 프로그램 실행 시 매번 다른 난수를 얻고 싶다면 srand() 함수를 사용해야 한다. 그럼 우리는 rand() 함수를 실행시킨 뒤 해당 값을 알아내기만 하면 끝이다. 역..