티스토리 뷰
로또 프로그램을 짜봤습니다. 6개 숫자를 입력으로 넣으면 난수 6개를 생성해서 몇개나 맞췄는지 출력해줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
function n = lotto(mypick)
mypick = sort(mypick);
if sum(diff(mypick)==0)>0
warning('너는 첫판부터 장난질이냐?')
n = -1;
return
end
theirpick = sort(randperm(45,6));
fprintf('Your picks are: ');
fprintf('%d\t', mypick);
fprintf(newline)
fprintf('They picked as: ');
fprintf('%d\t',theirpick);
fprintf(newline)
m = sort([mypick, theirpick]);
n = sum(diff(m)==0);
if n>=3
fprintf('Congratulations! You''ve matched %d numbers!',n);
fprintf(newline)
else
fprintf('Aw~ too bad. Better luck next time~!!');
fprintf(newline)
end
|
cs |
포인트는 두 벡터에서 같은 숫자가 몇개인지를 찾는 부분인데요. (17-18번줄) 각 벡터에는 중복되는 숫자가 없다는 보장이 이미 있으므로, 두 벡터를 합쳐 sort 한 후 diff가 0인 개수가 결국 두 벡터의 같은 숫자 개수가 됩니다. 아래의 예를 보면 무슨 말인지 이해가 될 겁니다.
테스트로 돌려봤는데... 3개 맞추기가 참 어렵군요. 로또는 아주 심심할 때만 심심풀이로 합시다.
- 게으른 맽랩
'matlab' 카테고리의 다른 글
for문을 이해하는 새로운 방식 (2) | 2020.06.28 |
---|---|
실수로 에디터 창을 닫았나요? 당황하지 않으셔도 됩니다. (2) | 2020.06.17 |
관련 m파일들을 모아서 압축파일을 만들어주는 depfuns2zip (2) | 2020.06.14 |
colormap을 string으로 가져올 수 있습니다. (0) | 2019.12.22 |
figure dock, undock (0) | 2019.12.02 |
댓글