스크립팅 언어를 사용하여 Zipf와 유사한 샘플을 생성하는 방법

스크립팅 언어를 사용하여 Zipf와 유사한 샘플을 생성하는 방법

python또는 와 같은 스크립팅 언어 기능이 있습니까 bash?zipf와 같은 배포, 은 인덱스입니다 0<a<=1.

추신: 거기에 있다는 걸 알아요멍청한 함수zipf 샘플을 생성할 수 있지만 a >1.

답변1

기본 방정식에 따르면 어떻게:

#!/usr/bin/python
import sys
k = float(sys.argv[1])
s = float(sys.argv[2])
N = int(sys.argv[3])
def zipf(k, s, N):
    return (1/k**s) / sum(1/n**s for n in range(1, N+1))
print zipf(k, s, N)

언어에 내장된 기본 루틴만 사용하세요. 거의 모든 다른 언어로 변환할 수 있습니다 perl. ruby버전은 다음과 같습니다 awk.

#!/bin/awk -f
BEGIN {
    for (n=1; n<=N; n++) {
        den=den+1/n^s;
    }
    print (1/(k^s))/den;
}

스크립트 awk에는 입력 파일이 필요하지 않지만 명령줄에서 변수를 할당해야 합니다.

$ /tmp/zipf.awk -vk=10 -vs=4 -vN=10
9.24183e-05

답변2

파이썬이 아닌가요?외부변수의 분포, 올바른 람다 값을 사용하세요. 알겠죠?

관련 정보