가짜 통계


27

가짜 뉴스를 만들려면 백업 할 데이터를 조작해야합니다. 선입견이 있어야하며 잘못된 논리의 논증을 강화하기위한 통계가 필요합니다. 이 도전은 당신을 도울 것입니다!

세 개의 입력 번호가 주어지면 :

  • N- 데이터 포인트 수
  • μ- 데이터 포인트의 평균
  • σ- 데이터 포인트의 표준 편차, 여기서 μσ 는 다음과 같습니다.

    여기에 이미지 설명을 입력하십시오

주어진 N , μσ를 생성 하는 순서없는 숫자 목록 𝑥 i를 출력합니다 .

I / O 형식에 대해서는 너무 까다로울 수 없지만 μ , σ 및 출력 데이터 포인트에 대해서는 일종의 소수가 필요 합니다. 최소한 3 개의 유효 숫자와 1,000,000 이상의 크기가 지원되어야합니다. IEEE float는 괜찮습니다.

  • N 은 항상 정수이며, 여기서 1 ≤ N ≤ 1,000
  • μ 는 임의의 실수 일 수 있습니다
  • σ 는 항상 ≥ 0입니다
  • 데이터 포인트는 임의의 실수 일 수 있습니다
  • 경우 N은 1이며, 다음 σ는 항상 0이됩니다.

대부분의 입력에는 가능한 많은 출력이 있습니다. 하나의 유효한 출력 만 제공하면됩니다. 출력은 결정적이거나 비 결정적 일 수 있습니다.

Input (N, μ, σ) -> Possible Output [list]

2, 0.5, 1.5 -> [1, 2]
5, 3, 1.414 -> [1, 2, 3, 4, 5]
3, 5, 2.160 -> [2, 6, 7]
3, 5, 2.160 -> [8, 4, 3]
1, 0, 0 -> [0]

6
p- 값에 대해 진실 / 거짓 입력을 추가 했으므로 상관 또는 상관되지 않은 데이터를 가짜 백업 또는 가짜 반증 ahaha로 만들어야합니다.
Magic Octopus Urn

1
무엇 +ve-ve의미합니까?
CG.

@ChelseaG. 긍정부정의 약자 . 명확히하기 위해 편집했습니다.
Digital Trauma

N = 1 인 경우, σ가 항상 0이됩니까?
xnor

1
실제로 Pedant는 수정 된 샘플 표준 편차를 사용하고 N = 1 인 입력에는 구현하지 않아야합니다.
Jonathan Allan

답변:


8

Pyth , 44 35 34 바이트

eA.DhQ2 + eQ * G, -eQJ * E @ hc1thQ2 + eQJ * G, -eQKE + eQK 
.N? eA.DN2+T*G+LT_B*Y@hc1tN2*G+LT_BY
.N? eA.DN2+T*G+LT_B*Y@cNtN2*G+LT_BY

온라인으로 사용해보십시오! (위의 코드는 함수를 정의합니다. 함수 :.*를 호출하기 위해 링크에 추가됩니다.)

수학

이것은 대칭 적으로 데이터를 구성합니다. 경우 N짝수, 데이터는 평균 + 또는 - 표준 편차입니다. 그러나 N홀수 인 경우 데이터가 대칭이되도록 평균이 존재해야하므로 변동에 특정 요인을 곱해야하기 때문에 웜 캔을 열었습니다.

만약 n짝수

  • 데이터의 절반은 μ+σ입니다.
  • 데이터의 절반은 μ-σ입니다.

경우는 n홀수

  • 하나의 기준은 μ입니다.
  • 데이터의 절반 미만이 μ+σ*sqrt(n/(n-1))입니다.
  • 데이터의 절반 미만이 μ-σ*sqrt(n/(n-1))입니다.

6

MATL , 22 바이트

수정 을 위해 @DigitalTrauma 에게 감사합니다 .

:t&1Zs/tYm-*+tZN?3G9L(

입력 순서는 다음과 같습니다 N, σ, μ.

온라인으로 사용해보십시오!

또는 생성 된 데이터의 평균 및 표준 편차를 확인하는 수정 된 버전 을 확인하십시오.

설명

코드는 네 부분으로 나뉩니다.

  1. :배열 생성 암시 입력으로 간주된다.[1 2 ... N]N

  2. t&1Zs/이 숫자를 경험적 표준 편차로 계산하고 (로 정규화 계산 N) tYm-결과 값의 경험적 평균을 뺍니다. 따라서 결과에 경험적 평균 0및 경험적 표준 편차가 1있습니다.

  3. *곱하여 σ+추가는 μ, 모두 내재 입력으로한다.

  4. tZN?x3G그 특별한 경우 처리 N = 1, σ = 0되는 출력되어야한다, μ. 이것이 사실 인 경우, 두 번째 단계에서 계산 된 경험적 표준 편차 0는 나눗셈이 주어 지고 세 번째 단계에서 inf곱한 것 σ입니다 NaN. 따라서 코드의 기능은 다음과 같습니다. 획득 한 배열이 모든 NaN값 (code tZN?)으로 구성되어 있으면이를 삭제 ( x)하고 세 번째 입력 ( 3G)을 푸시합니다 μ.


4

파이썬 , 50 바이트

lambda n,m,s:[m+s*(n-1)**.5]+[m-s/(n-1%n)**.5]*~-n

온라인으로 사용해보십시오!

nmean 0및 sdev 와 함께 다음 요소 분포를 사용합니다 1.

  • 확률로 1/n(즉, 1요소) 출력(n-1)**0.5
  • 확률 1-1/n(즉, n-1요소)로 출력-(n-1)**(-0.5)

이것은 을 변환 하여 평균 m과 sdev s로 조정됩니다 x->m+s*x. 성가 시게, n=1우리가 멀리 수행하여 해킹, 그래서 쓸모없는 값에 대한 제로 오류로 부서를 제공 /(n-1%n)**.5하여, 1%n제공 0에 대한 n==11달리.

(n-1)**.5단축 할 수 ~-n**.5있지만 지수가 먼저 발생 한다고 생각할 수 있습니다 .

A def는 1 바이트 더 깁니다.

def f(n,m,s):a=(n-1%n)**.5;print[m+s*a]+[m-s/a]*~-n

3

R, 83 62 53 바이트

function(n,m,s)`if`(n>1,scale(1:n)*s*sqrt(1-1/n)+m,m)

경우 n=1, 다음 반환 m(이후 scale반환 NA), 그렇지 않으면 데이터가 확장 [1,...,n]그것을 곱에 의해, 그래서 평균 0 (샘플) 표준 편차 1을 가지고 s*sqrt(1-1/n)올바른 모집단 표준 편차를 얻기 위해, 그리고 추가 m적절한 평균으로 이동 할 수 있습니다. 스케일 기능을 소개하고 해당 바이트를 삭제 한 Dason에게 감사드립니다!

온라인으로 사용해보십시오!


Try It Online 에서 몇 가지 테스트를 추가 하여 답변을 쉽게 확인할 수 있습니까?
디지털 외상

네! 2 분만 줘
주세페

아마도 4 바이트를 절약 하는 1:n대신 사용할 수 있습니다 rt(n,n). 그리고 그 scale기능은 아마도 유용 할 것입니다.
Dason

@Dason-감사합니다! 나는 scale큰 것이 무엇인지 알게되었습니다 .
Giuseppe

1

젤리 , 20 바이트

÷_Ḃ$©$*.;N$ṁ®;0ṁ⁸×⁵+

온라인으로 사용해보십시오!

n , μ , σ의 세 가지 명령 줄 인수를 사용하는 전체 프로그램 .

방법?

표준 편차가 정확하도록 n 이 홀수 인 경우 평균에서 등거리 인 바닥 (n / 2) 값과 평균의 값을 만듭니다 .

÷_Ḃ$©$*.;N$ṁ®;0ṁ⁸×⁵+ - Main link: n, μ (σ expected as third input, the 5th command argument)
   $                 - last two links as a monad:
 _                   -   n minus:
  Ḃ                  -     n mod 2            i.e. n-1 if n is odd, n if n is even
    ©                - copy value to register
÷                    - n divided by that
       .             - literal 0.5
      *              - exponentiate = (n / (n - (n mod 2))) ^ 0.5
                     -        i.e. 1 if n is even; or (n/(n-1))^0.5 if n is odd
         $           - last two links as a monad:
        N            -   negate
       ;             -   concatenate   i.e. [1,-1] or [(n/(n-1))^0.5,-(n/(n-1))^0.5]
            ®        - recall value from register
           ṁ         - mould the list like something of that length
             ;0      - concatenate a zero
                ⁸    - link's left argument, n
               ṁ     - mould the list like something of length n (removes the zero for even n)
                  ⁵  - fifth command argument, third program argument (σ)
                 ×   - multiply (vectorises)
                   + - add μ (vectorises)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.