• [ㅋ개ㅋ소ㅋ리] 간단한 수학계산을 고민하고 있네여2017.10.21 PM 12:54

게시물 주소 FONT글자 작게하기 글자 키우기

 

X,Y,Z 좌표가 각각 0부터 최대 999를 갖는다고 할 때,

이들 조합으로 나올수 있는 수는 999 * 999 * 999 = 997002999가 되는데요.

이를 0부터 997002999까지 순서를 지정하였을 때 각 좌표가 갖는 순서값이 나오는 수식을 만드려는데 도통 모르겠네요.

 

그러니까 예를들어 X999 Y0 Z999 좌표는 997002999 순서중 몇 번째다.

일일히 997002999 순서에 맞게 좌표를 하나씩 기입하는건 미친짓이고ㄷㄷ

분명 수식이 있을것 같은데 애매하네요.

 

유니티에 넣을 수식을 생각하고 있는데, 수알못이라 전혀 손도 못대겠고ㅋ

그냥 포기할까-_-;

댓글 : 10 개
0부터999까지면 1000개를 갖겠네요
3좌표니깐 1,000,000,000가 되겠고
1000000X+1000Y+Z일듯
오.. 듣고보니 그렇군요
그러고보니 0부터 시작하면 1000개네요
왜 9999개라 생각했지-_-;
효율적인 다른 방법이 있겠지만
제일 무식하고 쉬운방법은 999 * 999 * 999 모든 좌표를
for문같은 반복문을 돌려서 각각 좌표한번씩 훑을때마다 번호를 지정해주는겁니다.

그리고 몇번째인지 알고 싶으면 위에 지정한 번호 리스트에서 대조해서 출력해주면 되겠죠.
for로 구현하면 for 안에 for문이 여러개 들어가는 식이라 최대한 단순하게 구현하려고 했었는데 이게 꽤 어렵더라구여
일단 0부터 999까지 가진다면 하나의 좌표당 1000가지의 경우의 수가 있으니 999*999*999가 아니라 1000*1000*1000 입니다.

프로그래밍은 하나도 몰라서 수학적으로만 생각해보면

이건 어렵게 생각하지 말고 1000진법입니다.

예를들어 2진법을 10진법으로 바꾸면 그것이 2진법으로볼때 몇번째 수인걸 알수있듯이

1000진법을 10진법으로 바꾸면 됩니다.

x,y,z=0,0,0이 첫번째고
x,y,z=1,0,0이 두번째
x,y,z=2,0,0이 세번째
.
.
x,y,z=999,999,999가 마지막이라면
x가 첫번째 자리수 y가 두번째 z가 세번째니
2진법을 10진법으로 바꾸듯이 1000진법을 10진법으로 바꾸는 수식을 쓰면 됩니다.
(Z*1000^2)+(Y*1000^1)+(X*1000^0)=

근데 0,0,0이 첫번째니 1을 더해주셔야겠죠
그래서 정리하면

(Z*1000^2)+(Y*1000)+X+1 이 몇번째인지 나올겁니다.
우왕
첫번째는 0,0,0 마지막은 999,999,999라고 생각하고 있었는데,
구체적으로 어떻게 표현해야할지 몰라 난감했는데 감사합니다.
10진법이니 1000진법이니 이건 전혀 생각도 못했었네요ㄷㄷ
... 뭔 소린지 모르겠다 그냥 가만히 있어야겠다.
친구글 비밀글 댓글 쓰기