본문 바로가기

분류 전체보기

(466)
[Euler Project 187] 인자가 두개인 합성수의 갯수 1억보다 작은, 소수 둘만의 곱인 합성수의 갯수를 구하라. 4나 9도 포함된다. 에라스토테네스의 체 방법으로 소수를 우선 싹 구하고 한다. 내가 가장 효율적이라고 생각했던 소수 구하는 방법은 전혀 효율적이지 않았다. #!/usr/bin/env python # http://projecteuler.net/index.php?section=problems&id=187 MAX=50000000 flags = [ 1 ] * MAX flags[0] = 0 flags[1] = 0 for n in range(2, MAX): if flags[n] == 1: m = 2*n while m < MAX: flags[m] = 0 m+=n n+=1 primes = [ ] for i in range(0, MAX): if flags[i]..
[Euler Project 091] 직각삼각형 갯수 구하기 50, 50 격자 안에서 한 꼭지점이 원점에 있고, 꼭지점이 격자점에 위치하는 직각삼각형의 갯수 구하기. 오일러 프로젝트 91번 문제이다. 직각이 원점에 있는 경우, 직각이 축에 위치하는 경우, 그리고 나머지 경우에 대해 나누어 갯수를 구했다. #!/usr/bin/env python # http://projecteuler.net/index.php?section=problems&id=91 def get_cnt_when_right_angle_is_O(max): ''' P is (0, [1 ... max]) and Q is ([1 ... max], 0)''' return max * max def get_cnt_when_right_angle_is_on_axis(max): ''' When P is (0, y), ..
[Py] 신이 보여준 정리 신이 보여준 정리를 보고 재미있을 것 같아서 짜봤다. 답을 대충 짐작하고 나서는 예쁘게 n + 1 = sqrt(1 + (n) sqrt(1 + (n+1) sqrt(..))) 이 n x (n + 1) = n x sqrt(1 + (n+1) sqrt(...)) 으로 정리되는 걸 알았다. #!/usr/bin/env python # _____________________________ # / ___________________ # / 1 + 2 / ___________ = ? # |/ |/ 1 + 3 |/ ..... # # import math def get_prev(x, n): return math.sqrt(1 + n*x) def eval_first(x0, n): #print "" #print "=========..
[Py] 중복된 숫자 집합을 주어진 합으로 분할하기 #!/usr/bin/env python def is_two_listlist_identical(lla, llb): #print "XXXXXXXXXXXXXXXXXXXXXXX" #print lla #print llb for i in range(len(lla)): la = lla[i] lb = llb[i] if len(la) != len(lb): return False else: if len(la) != 0: for j in range(len(la)): if la[j] != lb[j]: return False return True def is_already_in(lll, ll): la = [ le for le in ll ] for e_ll in lll: lb = [ le for le in e_ll ] if is..
[Py] 숫자 리스트와 합이 주어졌을 때, 리스트의 합이 주어진 합인 부분 리스트 찾기 #----------------------------------------------------- def is_in_list(lst, lstlst): lst.sort() bRet = False for e in lstlst: e.sort() if len(e) == len(lst): bRet = True for i in range(len(e)): if e[i] != lst[i]: bRet = False break return bRet #----------------------------------------------------- def find_combination(sum, list): # print "---------" # print "-----------", sum, list, "------------..
[IIS] 윈도우즈 XP 프로페셔널에서 여러 웹사이트 윈도우즈 XP 프로페셔널에서 여러 웹사이트 Multiple websites on Windows XP Professional (Kristofer Gafvert, March 6, 2005) 윈도우즈 XP 프로페셔널은 다수의 웹사이트를 지원하지 않는다. 윈도우즈 XP IIS 관리자로는 서버에디션에서처럼 새로운 웹사이트를 생성할 수 없다. 그러나 코드를 이용해서 XP에서 새 웹사이트를 만들 수 있으며, 이 제한은 GUI에 국한된 것이다. ADSI, WMI 를 이용하면 이 짓을 할 수 있다. 하지만, 동시에 XP에서 여러 웹사이트를 돌리는 것은 허용되지 않으며, 이미 다른 웹사이트가 운용중일 때, 두번째 웹사이트를 IIS 관리자로 시작하려고 하면, 다음과 같은 에러가 난다. Windows XP Profession..
[수학] 페르마 소정리 이해를 위한 장난 rsa를 주제로 한 오일러 프로젝트 문제를 풀다가, 페르마 소정리에 대해서 감이 잘 안 와서 엑셀로 계산을 시켜봤다. p = 3, q = 7 인 상당히 간단한 경우의 계산이다. 엑셀이 상당한 프로그래밍 시간을 줄여주기는 하는데, 내 입맛에 딱 맞춰 결과를 보기에는 아직 익숙하지가 않아서 좀 고달픈 구석이 있다.
[TIP] Vim 으로 여러 파일 수정 여러 파일들을 args 명령으로 선택한다. :args dir/*/* 선택한 파일들에 대해서 substitue 명령을 실행하고, 바뀐 파일은 저장한다. :argdo %s/MAX_TYPE/MAX_CMD_TYPE/ge | update 이렇게 해서 수십개의 소스 파일들에서 MAX_TYPE 이란 문자열을 MAX_CMD_TYPE 으로 일괄 변경했다. 검색해서 발견한 한 블로그 포스팅의 도움을 받았다.