Mathmatics/Algorithm2013. 4. 27. 01:08

오늘 저녁을 먹고 집으로 돌아오는 길에, 갑자기 불현듯이 뭔가가 떠올랐는데 큐브의 해법, 정확히는 큐브를 최소 회전으로 맞추는 해법을 찾아주는 알고리즘을 짜보는 게 어떨까? 하는 생각이 들었다. 일단 요즘 머리를 너무 안쓰면서 사는 것 같기도 하고(...) 요즘 의욕에 넘쳐서 무언갈 막 하고 싶은데, 막상 할 줄 아는 것도 별로 없고, 몇천줄짜리 코딩을 미친듯이 해보고 싶지만 마땅히 코딩할만한 소재도 없고 해서 재미없던 참이어서 갑자기 떠오른 저 생각이 반가웠다.


그래서 스스로 고민해서 해법을 찾아보자! 하고 집에 돌아오는 길에 고민을 해봤는데, 아무리 생각해도 너무 어려워서..ㅋㅋ


큐브가 뭔지는 다음의 링크에서 확인.


위키피디아 링크(큐브)


일단 일반적으로 많이 알려진 해법이 있는지 검색을 해보았다.

딱 눈에 띄던게 바로 God's Algorithm 이었다. 알고리즘이 어떤건진 다음의 링크를 참조하시길.


위키피디아 링크 (God's algorithm)


쨌든, 결론은 이거였다.


큐브의 해법을 찾는건 NP문제이고(...) 내가 고민해봤자 효율적인 알고리즘은 못짬(...)


아무튼 NP문제라면 일반적인 방식말고, 휴리스틱으로 접근해서 문제 해결을 해야할텐데 고민을 좀 해봐야겠다. God's algorithm 이라길래 구체적인 알고리즘이 있는 줄 알았는데, 결국 뒤숭숭하게 그냥 이야기 였음..;


어쨌든 덧붙여서 algorithm 카테고리가 mathematics 카테고리 아래에 있으니 수학적인 이야기도 하자면, 일반적인 n^3 크기의 큐브를 맞추는 데 필요한 최대 회전수는 n^2/log(n) 에 비례한다고 한다. 그리고 3x3x3 큐브에 한정해보면, 3x3x3 큐브의 모든 경우에 대해 20회전 이내의 회전으로 맞출 수 있다는 것이 2010년에 증명되었다고 한다.


세상엔 참 똑똑한 사람들이 많은 듯...

'Mathmatics > Algorithm' 카테고리의 다른 글

A* algorithm  (1) 2013.04.27
Posted by Tanto
Et cetera2013. 4. 25. 19:45

내가 쓰는 휴대폰은 삼성 갤럭시 S2 HD LTE 이다.


갑자기 젤리빈 업그레이드가 나온 게 생각나서 생각난 김에 휴대폰 SW 업그레이드를 했는데... 하;;


앱들을 편하게 관리하기 위해 앱스관리자 라는 앱을 사용한다. 폴더기능 비슷한 역할을 해주는 앱이다.


문제는 이 앱스 관리자가 문제인 게 아니고, 이번에 ICS -> 젤리빈 업그레이드에서 몇몇 앱들의 큰 변화가 있었다.


갤러리 앱이 바뀌었고 계산기도 바뀌었고, 할 일 앱이 사라졌다.


문제는 내 앱스관리자 폴더에 기존 갤러리 앱이 남아있었고, 갤러리를 누르니 실패했다는 메세지와 함께 갤러리를 볼 수가 없었다;;


폴더에 기존에 있던 갤러리 삭제하고, 새 갤러리를 추가하여 해결하긴 했는데 갤러리가 2개다. 계산기도 2개다. 계산기는 심지어 폴더에 넣는다거나 그런 짓도 안했다. 그냥 원래 있는대로 놔뒀는데 그냥 2개가 됨.(아이콘이 보이는건 1개인데, 앱스 관리자를 통해 목록을 뒤지면 2개가 나와요.)


뭐 어찌됐든 쟤네는 뭔가 흔적기관처럼 남아있을 뿐 평소에 볼 일도 없고 바뀐거 쓰면 되니까 그렇다 치자.


근데 방금 어마어마한 충격을 받게한 사건이 있었으니....



나는 기본 메모 어플에 메모를 많이 하는 편인데, 공개하기 싫은 메모를 잠금 해두기도 한다. 그래서 잠긴 메모가 꽤나 있었는데


내 메모 잠금 비밀번호는 기존 12자리.


젤리빈 업그레이드 후, 메모 잠금을 풀려고 메모를 누르니 비밀번호를 10자리까지 밖에 입력을 못한다???



저기... 제 메모는 어떻게 열라는 거죠..;



젤리빈 업그레이드 후 이것 저것 기능상 좋아진 부분도 있긴 하지만, 그래도 기본적인건 제대로 해야하지 않나...


아무튼 메모 때문에 너무 당황스럽다.

'Et cetera' 카테고리의 다른 글

Coursera 등록  (0) 2013.05.04
MS Word 사용시 한영 자동 변경  (0) 2013.04.30
넋두리  (0) 2013.04.24
영화  (0) 2013.04.22
Syntax Highlighter  (4) 2013.04.17
Posted by Tanto
Programming/Scheme2013. 4. 24. 22:29

Scheme이 어떤 언어인지는 아래 링크를 참조하자


위키피디아(한글)_스킴


scheme은 MIT에서 Computer Science 학부생 수업에서 사용했던 언어이다. 소위 마법사 책으로 불리는 SICP책을 교과서로 썼었는데, 현재 MIT는 scheme을 버리고(...) python으로 가르친다고 알고 있다.


어쨌든 scheme category를 만든 기념으로 글 하나를 남긴다.


왜 만들었냐면 영감이 가는 코드를 하나 짰기 때문이다.



그렇다 Syntax highlighter에는 scheme highlighting이 지원이 안되는 것이었다 ㅠㅠ


쨌든 list를 받아 permutation을 모두 만들어주는 함수이다.


이유는 모르겠지만 그냥 영감을 얻었다는 느낌을 받았다(?)


scheme이 functional language이기도 하고, C언어 같은 프로그래밍에만 익숙해진 사람이라면 한 번쯤 배워볼 만한 언어인 것 같다.


실제로 functional programming을 하지 않더라도, 생각하는 방식등을 배우는 것은 많은 도움이 되기에...


아무튼 그래도 나는 scheme을 별로 좋아하진 않아서 이 카테고리에 몇개의 글이 더 올라올지는 모르겠다;;

Posted by Tanto