입력을 받아서 인쇄하는 프로그램 인 고양이 프로그램을 만듭니다.
… 단, 프로그램은 입력에서 임의로 문자를 가져 와서 대신 인쇄합니다.
입력의 각 문자는 일반적으로 프로그램과 함께 제거 될 확률이 같아야하지만 각 문자의 확률은 최대 10 %까지 달라질 수 있습니다.
프로그램은 입력을받은 다음 입력에서 문자를 무작위로 제거한 다음 해당 버전을 다시 인쇄해야합니다. 언어에서 줄 바꿈을 인쇄해야 할 경우 후행 줄 바꿈 또는 다른 문자로 인쇄 할 수 있습니다.
입력이 BOOOWL
인 경우 모든 기회를 동일한 확률로 모든 Os를 제거해서는 안됩니다. 각 문자 (고유하지 않음)를 고려해야하므로 모든 O가 1/5 확률 (예 :)을 갖는 대신 각 O는 1을 가져야합니다 / 5 기회, 그래서 대신에 거기의 1/5 기회 BWL
의 1/5 기회가 있어야한다, BOWL
, BOOWL
.
입력이 STDIN 또는 가장 근접한 것으로 제한됩니다.
각 캐릭터 는 최소 10 %, 최대 30 %의 확률로 제거해야합니다.
각 캐릭터의 확률은 개별적으로 계산되어야합니다.
임의의 동작을 지원하는 언어의 모든 구성 요소를 사용할 수 있습니다 (기능 또는 다른 것).
출력은 STDOUT 또는 가장 가까운 값을 통해 이루어져야합니다. 언어에 STDOUT이 있으면 다른 방법으로 출력하지 마십시오. 언어에서 문자열을 텍스트로 출력 할 수없는 경우 가장 가까운 것을 사용하십시오 (여기서 C의 문자 배열 출력은 OK 임).
이것은 코드 골프입니다. 최단 프로그램이 이깁니다.
답변
Japt -f
, 2 바이트
5ö
-f
플래그 “는 truthy 값을 반환 것들의 배열을 출력하는 제 입력의 각 요소에 프로그램을 실행합니다.” 5ö
0 (포함)과 5 (제외) 사이의 난수를 반환합니다. JavaScript와 마찬가지로 Japt에서는 0이 잘못되었습니다.
답변
파이썬 3 , 63 바이트
from random import*
for c in input():print(end=c[random()<.2:])
파이썬 2 , 67 65 바이트
from random import*
print''.join(c for c in input()if.8>random())
각 캐릭터는 20 % 확률로 꿀벌을 떨어 뜨립니다.
다른 접근 방식, 동일한 길이 :
from random import*
print''.join(c[random()<.2:]for c in input())
답변
숯 , 4 바이트
ΦS‽⁵
온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 설명:
S Input a string
Φ Filter where nonzero
‽⁵ Random number 0..4
Implicitly print
당신은에서 어떤 번호를 사용할 수 있습니다 4
에 10
의 기회를 얻을 수 25%
에 10%
각각있다.
답변
Befunge-98 (PyFunge) , 11 바이트
>#@~3j4???,
각 캐릭터는 25 % 확률로 제거됩니다. 이 결정은 세 가지 ?
지침 에서 이루어집니다 .
?
프로그램 카운터를 동일한 확률로 네 방향 중 하나로 설정합니다. 이 경우 위와 아래로 같은 명령으로 다시 돌아가므로 옵션으로 무시할 수 있습니다.
?
s 의 숲 에는 오른쪽 (출력)과 왼쪽 (출력 없음)의 두 가지 방법이 있습니다 . 이러한 상황 때문에, 중간에서 시작하는 경우, 대칭 ?
하는가
출력 기회. 오른쪽부터 출력하는 경우의 확률 ?
이고
. 따라서 문자를 읽은 후 가장 오른쪽으로 ?
이동하여 출력 여부를 결정합니다.
답변
옥타브 , 23 바이트
입력과 같은 크기의 배열을 생성하고 (옥타브의 문자열은 문자 배열 임) 각 난수보다 큰지 여부를 0.2
확인한 다음 논리 색인을 사용하여 해당 위치에서 문자를 추출합니다.
@(s)s(rand(size(s))>.2)
답변
젤리 , 9 5 바이트
5X’µƇ
젤리 문자열을 인수로 받아서 처리 된 젤리 문자열을 반환하는 모나드. 전체 프로그램으로 사용될 경우 출력을 내재적으로 인쇄합니다. 각 캐릭터는 20 % 확률로 제거됩니다.
설명
µƇ | Filter using the following as a monad for each character:
5X | - Random number between 1 and 5
’ | - Decreased by 1