다른 n개의 원소 중 r를 선택하는 방식



순열           -  순서(○) 중복(Ⅹ)


nPr=n!(nr)!



중복순열     -  순서(○) 중복() 


nΠr=nr



조합          -  순서() 중복(Ⅹ)


nCr=n!r!(nr)!



중복조합     -  순서() 중복()


nHr=n+r1Cr

반응형

'programming > 알고리즘' 카테고리의 다른 글

[펌] Radix Sort  (0) 2017.02.12
[펌] Counting Sort  (0) 2017.02.12
조합, 뤼카(Lucas) 정리  (0) 2016.12.29

 

□ Jupyter notebook 명령키 일람

 

Command Mode (press Esc to enable) Edit Mode (press Enter to enable)
Enter   enter edit mode Tab   code completion or indent
Shift-Enter   run cell, select below Shift-Tab   tooltip
Ctrl-Enter   run cell Ctrl-]   indent
Alt-Enter   run cell, insert below Ctrl-[   dedent
Y   to code Ctrl-A   select all
M   to markdown Ctrl-Z   undo
R   to raw Ctrl-Shift-Z   redo
1  to heading 1 Ctrl-Y   redo
2  to heading 2 Ctrl-Home   go to cell start
3  to heading 3 Ctrl-Up   go to cell start
4  to heading 4 Ctrl-End   go to cell end
5  to heading 5 Ctrl-Down   go to cell end
6  to heading 6 Ctrl-Left   go one word left
Up   select cell above Ctrl-Right   go one word right
K   select cell above Ctrl-Backspace   delete word before
Down   select cell below Ctrl-Delete   delete word after
J   select cell below Esc   command mode
A   insert cell above Ctrl-M   command mode
B   insert cell below Shift-Enter   run cell, select below
X   cut selected cell Ctrl-Enter   run cell
C   copy selected cell Alt-Enter   run cell, insert below
Shift-V   paste cell above Ctrl-Shift-Subtract   split cell
V   paste cell below Ctrl-Shift--   split cell
Z   undo last cell deletion Ctrl-S   Save and Checkpoint
D,D   delete selected cell Up   move cursor up or previous cell
Shift-M   merge cell below Down   move cursor down or next cell
S   Save and Checkpoint Shift   ignore
Ctrl-S   Save and Checkpoint
L   toggle line numbers
O   toggle output
Shift-O   toggle output scrolling
Esc   close pager
Q   close pager
H   show keyboard shortcut help
I,I   interrupt kernel
0,0   restart kernel
Space   scroll down
Shift-Space   scroll up
Shift   ignore

 

□ 기타 명령 모음

  - ipynb 파일 → py 파일 변환

    콘솔창에서 아래 명령 수행


    jupyter nbconvert --to script [파일명].ipynb



반응형

 

정리가 잘되어 있는 곳

 

원문내용 : nCr % m 계산

원문URL : http://blog.naver.com/rym/220833779518

 

 

 

반응형

'programming > 알고리즘' 카테고리의 다른 글

[펌] Radix Sort  (0) 2017.02.12
[펌] Counting Sort  (0) 2017.02.12
순열, 중복순열, 조합, 중복조합  (0) 2017.01.15

 

PHP 다운로드 : http://windows.php.net/download/

 

자신의 버전에 맞는 것을 선택하시면 됩니다. 다만, IIS서버에서 수행하지 않을 거라면,

Thread Safe 를  선택하세요.

 

Thread Safe와 Non Thread Safe 차이 : http://auctionpro.co.kr/?p=773

 

여기서는 64bit 환경이니 VC14 x64 Thread Safe 를 선택합니다.

zip파일을 받으시고 압축을 해제하시면 됩니다.

 

 

 

 

□ 환경설정 php.ini

압축 해제 후 가장 처음에 할 일은 php.ini 파일을 수정하는 일입니다.

php.ini 파일 위치 : {php 설치 디렉토리}

 

이 포스트에서는 "extension_dir = "C:/Tools/php-7.0.6-Win32-VC14-x64" 로 압축을 해제하였으므로 해당 디렉토리를 이용해서 설명합니다.

 

php 설치 디렉토리에 가면 php.ini 파일은 없고 대신 php.ini-development, php.ini-production 두 파일만 있습니다.

 

php.ini-development : 개발용 버전

php.ini-production    : 실사용( 배포용 ) 버전

 

보통 개발 단계나 학습 단계에서는 "php.ini-development : 개발용 버전"을 사용하는 것이 좋습니다.

 

디버그나 로그 등이 추가되어 production 보다 무겁지만, 개발하는 과정 상 필요한 기능을 추가 제공합니다.

여기서는 php.ini-development이름을 php.ini 로 변경해 줍니다.

php.ini-development → php.ini

 

1. extension_dir 변경

   php.ini 내용 중 ; extension_dir = "./" 을 extension_dir = "{php 설치 디렉토리\ext" 로 수정합니다.

   php.ini 에서 세미콜론은 주석으로 사용됩니다. 따라서, 반드시 제거합니다.

 

   ; extension_dir = "./" → extension_dir = "C:/Tools/php-7.0.6-Win32-VC14-x64"/ext"

 

   이때, 디렉토리 기호인 \도 가급적 /로 변경해 주세요.

 

2. 아파치 서버와 연동

 

   ( 참고, 아파치 서버 설치 방법 : http://driz2le.tistory.com/193 )

 

   아파치 서버와 연동을 위해서 아파치 서버의 httpd.conf 파일 수정이 필요합니다.

   {아파치 설치 디렉토리}\conf\httpd.conf 를 불러와서 맨 하단에 아래처럼 추가합니다.

 

   PHPIniDir "{php 설치디렉토리}"
   LoadModule php7_module "{php 설치디렉토리}/php7apache2_4.dll"
   AddType application/x-httpd-php .html .php

 

   저의 경우 아래와 같이 추가했습니다.

 

   PHPIniDir "C:/Tools/php-7.0.6-Win32-VC14-x64"
   LoadModule php7_module "C:/Tools/php-7.0.6-Win32-VC14-x64/php7apache2_4.dll"
   AddType application/x-httpd-php .html .php

 

   이때 LoadModule php7_module "C:/Tools/php-7.0.6-Win32-VC14-x64/php7apache2_4.dll" 에서

   버전에 따라 약간 수정이 필요합니다.

 

   php7 : php7_module "{php 설치디렉토리}/php7apache2_4.dll"

   php5 : php5_module "{php 설치디렉토리}/php5apache2_4.dll"

 

 

□ 실행 및 테스트

아파치 웹서버 document root인 htdocs에 파일 하나를 추가합니다.

 

파일 test.php

 <?php

    phpinfo();

 ?>

 

브라우저에서 호출할 때 아래와 같이 보이면 정상입니다.

 

 

 

 

 

 

 

 

 

반응형

'programming > Java' 카테고리의 다른 글

윈도우즈10 64비트 아파치 웹서버 설치  (0) 2016.05.22

윈도우즈 10 64비트 환경에서 아파치 웹서버 설치하는 방법입니다.

아파치는 아래 사이트에서 받을 수 있습니다.

 

아파치 웹서버 최신버전 : http://www.apachelounge.com/download/

 

 

압축을 푼다음 해야할 일

저의 경우는 아파치 설치 디렉토리가 C:\Tools\httpd-2.4.20-win64-VC14\Apache24\ 입니다.

해당 디렉토리로 설명합니다.

 

□ 환경 파일 수정( httpd.conf )

환경 파일 위치 : {아파치 설치 디렉토리}/conf

 

1. serverRoot 변경

    ServerRoot "c:/Apache24" → ServerRoot "C:/Tools/httpd-2.4.20-win64-VC14/Apache24"

 

    이때 디렉토리 기호인 \는 가급적 / 로 변경해 주세요. \는 경우에 따라 말을 안듣는 경우가 있습니다.

    또한, #ServerRoot 처럼 앞에 #이 붙어있는데 잘 아시다시피 주석이란 뜻입니다. #도 제거해 주세요.

 

2. Listen 포트 변경 (옵션)

   Listen 80 → Listen ####  ( 보통 네 자리 숫자 )

  

   Listen 포트는 필요에 따라 변경하세요. 저는 그냥 둡니다.

 

3. 컨텐츠 위치 변경

   DocumentRoot "c:/Apache24/htdocs"

   → DocumentRoot "C:/Tools/httpd-2.4.20-win64-VC14/Apache24/htdocs"

  

   아파치는 {아파치 설치 디렉토리"/htdocs 를 기본 Document root로 인식합니다.

   디폴트 설정을 설치된 디렉토리에 맞도록 수정해 줍니다.

   이때도 디렉토리 기호인 \를 / 로 변경해 줍니다.

 

3. 서버명( ServerName ) 변경

   ServerName www.example.com:80 → ServerName localhost:80

   또는

   ServerName www.example.com:80 → 127.0.0.1:80

 

   로 변경해 줍니다. 이래야 브라우저에서 http://localhost/ 를 입력해서 사용할 수 있습니다.

   ( ※ 주의! ) 이때, 뒤 80포트는 위에 Listen 포트를 변경하셨다면 반드시 일치시켜 주셔야 합니다.

 

4. document root 세부 설정 변경

   <Directory "c:/Apache24/htdocs">

      → <Directory "C:/Tools/httpd-2.4.20-win64-VC14/Apache24/htdocs">

 

   이 부분은 의외로 많이 놓치는 경우가 많습니다. 꼭 변경해 줍니다.

 

 

□ Install ( 아파치 서비스 등록 )

이제 처음으로 아파치 서버를 윈도우즈 환경에 등록하는 작업입니다.

반드시 1번은 해야 합니다. 하는 방법은 간단합니다.

 

 

{아파치 설치 디렉토리}/bin 디렉토리로 이동 후 명령 프롬프트( console ) 상에서

 

 

httpd.exe -k install

 

명령을 수행하시면 됩니다.

 

 

 

그런데 보통 이때 첫번 째 시련(?) 옵니다. 종종 아래와 유사한 메세지를 받을 수 있습니다.

 

 

 

 

윈도우즈 64비트용 아파치나 PHP를 설치할 경우 Visual C++ 재배포 가능 패키지가 필요합니다.

위 메세지는 재배포 가능 패키지를 설치해 주면 되는데요.

필요한 버전에 따라 필요한 dll 명칭이 조금씩 달라지므로 확인을 해야 합니다.

이를테면

CVRUNTIME140.dll → Visual Studio 2015 업데이트용

CVRUNTIME120.dll → Visual Studio 2012 업데이트용

 

상황에 맞도록 설치해 줍니다.

 

재배포 가능 패키지 다운로드

Visual Studio 2015 업데이트용 : https://www.microsoft.com/en-us/download/details.aspx?id=48145

Visual Studio 2012 업데이트용 : https://www.microsoft.com/ko-kr/download/details.aspx?id=30679

 

64비트 OS는 x64를 선택하고 32비트 OS는 x86을 선택합니다.

 

 

재배포 가능 패키지 설치가 끝나면 다시 콘솔 화면에서 httpd -k install 을 수행합니다.

그리고, 또한 이때 어김없이 두번 째 시련(?)이 종종 다가 옵니다.

 

 

아놔~~ 이건 멀까요. 관리자 권한( administrator )로 로그인 하지않으셨다면 해당 프로그램을 관리자 권한으로 수행할 수 없어 서비스 등록을 할 수 없다는 윈도우즈의 말씀입니다. 저는 종종 짜증이...

 

관리자 콘솔로 로그인 합니다. 관리자 콘솔인 것은 아래처럼 확인 가능합니다.

콘솔 창 상단에 관리자란 문구가 보이지요?

음, 관리자 콘솔을 어디서 실행하느냐?  아래 사이트를 방문해 보세요.

 

관리자 콘솔 띄우기 : http://slic.tistory.com/410

 

 

 

 

 관리자 콘솔에서 인스톨 명령(httpd -k install)을 다시 실행합니다.

 

 

 

서비스가 등록되었네요. 서비스 등록이 제대로 되었는 지 다시 한번 확인 합니다.

services.msc를 가만히 입력해 봤을 때 아래처럼 나오면 일단은 성공입니다.

 

 

 

 

□ 아파치 실행

두둥! 이제 실행  시켜 봅니다.

윈도우즈 콘솔 창에서 아래와 같이 입력해 봅니다.

단, 윈도우즈 10은 보안이 좀더 강합니다.

윈도우즈 10이라면 관리자 콘솔에서 수행하셔야 합니다.

 

httpd -k start

 

 

실행되면 위처럼 아무런 메세지도 나오지 않습니다. 실제 수행되었는 지 확인이 필요하다고요?

음, 의심병은 건강을 해치는 지름길입니다만,

services.msc를 실행해 보면 아래와 같이 Apache2.4 서비스가 "실행" 된 것으로 나오지요.

참고로, 서비스 창에서 아파치 실행 / 중지도 가능합니다.

  

 

이제 브라우저를 통해 테스트 해봅니다.

 

 

여기까지 왔다면 성공입니다. 이제 아파치 고고!! 하시기 바랍니다.

참고로, 아파치 종료는

 

httpd -k stop

 

입니다.

반응형

'programming > Java' 카테고리의 다른 글

윈도우즈10 64bit PHP 설치 및 아파치 연동  (0) 2016.05.22

FIFO ( First In First Out ) 방식 : 가장 먼저 입력된 데이터가 가장 먼저 출력되는 구조


#include <queue> 를 추가해야 사용할 수 있음

 

□ 메소드

 

 메소드

 내용 

 empty()

 큐가 비었는지 확인. 반환값 true : 비어있음, false : 비어있지 않음

 size()

 큐에 존재하는 원소 개수

 front()

 큐의 맨 처음 삽입( 맨 앞의 )된 원소 반환 ( 주의 : 삭제하지 않음 )

 back()

 큐의 맨 나중 삽입( 맨 뒤의 )된 원소 반환

 puch( element )

 큐의 맨 뒤에 새로운 원소 추가

 pop()

 큐의 맨 앞에 위치한 원소 삭제 ( 주의 : 반환값 void, 즉, 삭제한 원소를 반환하지 않음 )

 

queue의 경우 pop 연산이 개체 반환없이 삭제를 하므로 사용전 front 연산을 통해 개체를 참조해야 함

반응형

'programming > C&C++' 카테고리의 다른 글

STL stack  (0) 2015.06.18
MSDN Stack  (0) 2015.06.18
error C4996: 'GetVersionExA': was declared deprecated  (0) 2015.05.17

LIFO ( Last In First Out ) 방식 : 나중에 입력된 데이터가 나중에 출력되는 구조


#include <stack> 를 추가해야 사용할 수 있음



□ Method

 Method

 내용 

 empty

 stack이 비었으면 true 반환 

 size

 stack에 담긴 개체(원소) 개수 반환

 top

 stack의 맨 마지막 개체를 제거하지 않고 반환 

 push

 stack의 맨 마지막에 개체 추가

 pop

 stack의 맨 마지막 개체를 삭제. 단, 반환하지 않음


stack의 경우 pop연산이 개체 반환없이 삭제를 하므로 사용전 top연산을 통해 개체를 참조해야 함


반응형

'programming > C&C++' 카테고리의 다른 글

STL queue  (0) 2015.07.27
MSDN Stack  (0) 2015.06.18
error C4996: 'GetVersionExA': was declared deprecated  (0) 2015.05.17



□ MSDN의 Stack

  - MSDN의 stack은 표준 C++ STL 라이브러리의 stack과 다름에 유의


관련사이트 : MSDN stack


□ Method

 이름

 설명 

 Clear

 모든 개체를 제거

 Clone

 복사본 생성 

 Contains

 해당 요소가 Stack 내에 존재하는지 확인 

 CopyTo

 지정한 배열 인덱스에서 시작하여 기존 1차원 Array에 복사

 Equals

 서로 동일한 개체인지 확인 ( Object에서 상속 ) 

 Finalize

 리소스를 해제 ( Object에서 상속 )

 GetEnumerator

 IEnumerator 반환 

 GetHashCode

 기본 해시 함수로 작동 ( Object에서 상속 ) 

 GetType

 현재 인스턴스의 Type을 반환 ( Object에서 상속 )

 MemberwiseClone

 현재 Object의 단순 복사본 생성 ( Object에서 상속 ) 

 Peek

 Stack의 맨 마지막 개체를 제거하지 않고 반환 

 Pop

 Stack의 맨 마지막 개체를 제거하고 반환 

 Push

 Stack의 맨 마지막에 개체를 추가 

 Synchronized

 동기화되어 스레드로부터 안전하게 보호

 ToArray

 Stack을 새 배열( Array )에 복사 

 ToString 

 Stack을 나타내는 문자열 반환 ( Object에서 상속 )



반응형

'programming > C&C++' 카테고리의 다른 글

STL queue  (0) 2015.07.27
STL stack  (0) 2015.06.18
error C4996: 'GetVersionExA': was declared deprecated  (0) 2015.05.17

error C4996: 'GetVersionExA': was declared deprecated
error C4996
: 'GetVersionExW' was declared deprecated

 

 

1. This is because SDL check, try to disable SDL checks:

  Project Properties > Configuration Properties > C/C++ > General > SDL checks [set to No]

 

2. #pragma warning(disable: 4996)

 

 

반응형

'programming > C&C++' 카테고리의 다른 글

STL queue  (0) 2015.07.27
STL stack  (0) 2015.06.18
MSDN Stack  (0) 2015.06.18

+ Recent posts