본문 바로가기

[번역] 프린트 서브시스템의 기본개념 Fundamental concepts of the print subsystem 프린트 서브시스템의 기본개념 Posted Tuesday, February 28, 2006 9:54 AM by ashwinn 번역 2008년 2월 27일 DwYoon After having posted details on bitmap drivers and port monitors, I realised that I should probably cover the fundamentals first. So my next few posts will be on the fundamentals of the print subsystem, overview of the print driver model etc. 비트맵 드라이버와 포트모니터에 대해 ..
비트맵 드라이버 만들기 How to write a bitmap driver 비트맵 드라이버 만들기 Posted Tuesday, February 21, 2006 5:44 PM by ashwinn 번역 2008년 2월 22일 by DwYoon It didn't take much for me to come up with the topic for my first blog post. If I only had a penny for the number of times I have seen questions on writing bitmap drivers. So here goes... 첫 블로그 포스트를 뭘로 할지 결정하는 건 쉬웠다. 비트맵 드라이버를 어떻게 만드냐는 질문을 자주 봤다. 자, 이제 그 답변이다. The best approac..
[EP 023] 두 과잉수의 합으로 나타낼 수 없는 모든 수의 합 완전수는 자신보다 작은 약수의 합이 자신과 같은 수이다. 예로는 6, 28 등이 있다. 과잉수는 이 합이 자신보다 큰 것을 말한다. 두 과잉수의 합으로 나타낼 수 없는 모든 양의 정수의 합은? 자신을 포함하는 모든 약수의 합, 즉 약수함수가 곱셈적이라는 성질 때문에 재귀함수를 만들거나 캐시리스트를 만드는 방식으로 "쪼개서" 문제를 해결하는 전략을 쓸 수 있다. 아래코드는 s 라는 리스트에 약수함수값을 저장하여 n의 약수함수값을 s[n] 으로 가져올 수 있고, n = p q 일 때에, 가장 작은 소수인수를 만나면, s(n) = s[p] s[q] 라는 성질을 이용하여, 차례대로 s 리스트를 채우는 방식으로 문제를 풀어본 것이다. # PROJECT EULER # PROBLEM 23 def s_f(n): """..
pip install 시 Visual C++ is required 메시지와 함께 설치에러가 발생하는 이유 파이썬 패키지들은 소스로 제공될 경우도 있고, 미리빌드된 휠(prebuilt wheel)로 제공될 경우도 있습니다. 미리빌드된 휠은 소스를 각 플랫폼 (리눅스, 윈도우, 맥, 32비트, 64비트 등등) 에 맞게 누군가가 미리 빌드하여 제공하는 것이기 때문에, "현재" 가장 대중적인 플랫폼에 대해 우선적으로 제공됩니다. 2020년 현재는 32비트 파이썬은, 64비트 버전에 비해 덜 대중적입니다. 따라서 32비트 파이썬을 설치한 경우에는 pip 설치시에 이러한 에러를 만날 확률이 큽니다. (마찬가지로 파이썬 2.7 버전, 또는 나온지 오래된 3.4, 3.5 등등, 그리고 이제 막 새롭게 버전이 출시되었을 때에도) 물론 적절한 컴파일 환경 ( vc 컴파일환경 등 ) 을 설정한 경우에는 소스를 컴파일하여 잘 설..
[번역] ROP코드만 보고 해석하기 http://groups.google.com/group/microsoft.public.development.device.drivers/msg/67e084bd105c0eb6?dmode=source From: "Maxim S. Shatskih" References: Subject: Re: raster operation codes Date: Sun, 28 Nov 2004 00:14:21 +0300 Lines: 55 Organization: StorageCraft X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.0..
[EP 092] T(n) = n의 각 자리수의 제곱의 합. T(T(T(..(n)...))) = n 이 되는 n은 1과 89 # http://projecteuler.net # Problem 92 # 2 2 2 2 2 # 89 -> 8 + 9 = 145 -> 1 + 4 + 5 = 42 -> 20 -> 16 -> 37 -> 58 -> 89 -> ... -> 89 # 1 -> 1 -> 1 from functools import lru_cache import time from tqdm import tqdm BIGN = 10 ** 7 sol_dict = dict() sol_dict[0] = 0 sol_dict[1] = 1 sol_dict[89] = 89 digit_sq = [i * i for i in range(10)] @lru_cache def arrives_at_89_recur(n: int): if n == 0 or n == 1 o..
[EP 005] least common multiple for a list of numbers #################################################### # http://projecteuler.net # # Problem 5 # # 2520 is the smallest number that can be divided # by each of the numbers from 1 to 10 without any # remainder. # # What is the smallest number that is evenly # divisible by all of the numbers from 1 to 20? #################################################### # Author : DwYoon # Date : 2007 04 12 N = ..
구에서 좌표사이의 거리 구하기 직교좌표계에서 내적을 구하는 건 매우 간단하다. 내적은 단위원 위의 두 벡터에 대해서는 두 벡터 사이의 사이각의 코사인. 최단거리이기 때문에 180도 이상인지 이하인지는 중요하지 않다. 그래서 내적의 역코사인에 구의 반지름을 곱하면 답. void GetCartesian(double Lat, double Long, double *x, double *y, double *z) { /* 유사구면좌표계를 직교좌표계로 변환. http://ko.wikipedia.org/wiki/%EA%B5%AC%EB%A9%B4_%EC%A2%8C%ED%91%9C%EA%B3%84 */ *x = cos(Lat)*cos(Long); *y = cos(Lat)*sin(Long); *z = sin(Lat); } double Calc1(doubl..