본문 바로가기

프로그래밍

(357)
pow(a, n) for n is large def pow(a, n):k = 1a_pow_k = aa_pow_n = 1while n:if k & n:a_pow_n *= a_pow_kn -= ka_pow_k = a_pow_k ** 2k *= 2return a_pow_n an = aklmno = ak0000 al000 am00 an0 ao 위 식에서 klmno 는 n의 2진수 표현. 즉, a2k 들의 곱만으로 an 을 쪼갤 수 있고,a2k 는 a2k-1의 제곱이므로, 위 함수와 같이 빠르게 an 을 구할 수 있다. 위 함수는 변형하여 an의 나머지 연산 값을 구할 때 유용할 수 있겠다.
[Tensorfow] 초간단 회귀모형 변형 Sung Kim 교수의 모두의 딥러닝 강의 중 간단한 선형회귀모델을 텐서플로우 코드로 구하는 예제를 따라해 보고, hypothesis 모델의 식을 예제의 1차식 (직선) 에서 2차 다항식으로 바꾸어 돌려봄. 트레이닝에 사용하는 데이터도 y = x*x 에 가까운 값을 주어 보았음. 잘 구해짐. 하지만, 트레이닝 데이터를 얼토당토않은 랜덤한 값을 주면, 트레이닝 하면서 쉽게 발산해 버리는 듯 하다. 3차 다항식 모델도 역시 잘 발산하는 듯 하다. import tensorflow as tf x = tf.placeholder(tf.float32, shape=[None]) y = tf.placeholder(tf.float32, shape=[None]) w2 = tf.Variable(tf.random_uniform..
[TENSORFLOW] 절대값 import tensorflow as tf x = tf.placeholder(tf.float32)y = tf.cond(x
웹해킹 샘플 해커가 웹편집기를 통해 jpeg 파일을 올렸다. 이 파일은 웹페이지가 호스팅되는 서버의 한 디렉토리에 저장된다. 그러나 마지막 줄을 보면, jpeg 파일의 바이너리 마지막 부분에 php 코드가 숨겨져 있다. php 코드는 http request 의 zxz 인자로 전달되는 php 명령을 eval 을 이용하여 실행하는 코드이다. php 의 취약점을 이용하는 php 코드만 실어서 request 를 날리면 야금야금 웹이 해커의 손아귀에 넘어갈 수 있다.위 jpeg 파일은 마지막에 php 코드가 들어 있지만, 이미지 내용이 잘 보이는 파일이다.
[CEF] CEF Chromium Embedded Framework 빌드하기 CEF Chromium Embedded Framework 빌드하기 https://bitbucket.org/chromiumembedded/cef-project 의 Build 섹션의 지시를 따라 윈도우 비주얼 스튜디어 2015 빌드 솔루션을 생성하면서 어려웠던 부분을 기록. Setup : cmake 를 설치한다. 비주얼 스튜디오 2013 이상, 운영체제는 윈도우 7이 필요하다. git 으로 소스코드를 다운받으라고 하는데, 일단은 필요 없었다. Build : http://opensource.spotify.com/cefbuilds/index.html 에서 윈도우 32/64비트용 tar 파일을 받는다. tar 파일을 풀어 놓고. 폴더에 mkdir build 로 빌드 폴더를 만들고, build 폴더에서 cmake ..
8진수 16진수 2진수 변환 [VS2015] nuget package 오프라인 설치시 문제점. 인터넷이 연결되지 않은 개발환경에 nuget package 를 깔아서 테스트해 보는 상황이 발생. 인터넷 등을 참조하여 필요한 nupkg 를 다운로드 받고, 비주얼 스튜디오 누겟 패키지 관리자 콘솔에서 install-package 명령을 실행하였으나, 에러가 발생했다. PM> Install-Package cef.redist.x86 -Source nugetpackages'native,Version=v0.0'을(를) 대상으로 하는 'clr_cefbrowser' 프로젝트에 대한 'cef.redist.x86.3.2987.1597' 패키지의 종속성 정보를 수집하려는 중Install-Package : 'https://api.nuget.org/v3/index.json' 원본을 추가할 때 'System.Aggregat..
재귀 시험지 분배 비유 재귀에 대한 비유가 생각나서 써 봄. 학교 다녀 본 사람은 시험시간에 시험지를 나누는 두가지 방법이 있는 것을 안다.1. 선생님이 돌아다니면서, 모든 사람에게 하나씩 시험지를 나누어 준다.2. 매 줄마다 학생수만큼 시험지를 맨 앞사람에게만 주고, 시험지 더미을 받은 사람은 자신이 하나를 갖고, 시험지 더미를 뒷사람에게 준다. 즉, 대략 def 시험지나눠주기(시험지더미, 학생들):# 학생들 = [ 학생1, 학생2, 학생3, ..., 학생n ]for 학생 in 학생들:시험지하나주기(학생)시험지더미-=1 def 시험지나눠주기뒤로넘기기(시험지더미, 학생들):# 학생들 = [ 학생1, 학생2, 학생3, ... 학생n ]학생들[0].시험지하나갖기() # 학생들[0] 은 시험지를 받은 학생들 리스트의 첫번째 학생시험..