좋은 오후 골퍼,
오늘 우리의 도전은 XKCD 만화 356 과 370에서 영감을 얻었습니다 . 우리는 저항 그룹의 저항을 계산하는 프로그램을 작성할 것입니다. 이것이 코드 문제라는 것을 보증하기에 충분히 어렵다는 것을 미리 경고하지만, 골프 형식으로 약간 더 복잡한 프로그램을 작성하는 데 특정 기술이 있다고 생각합니다. 가장 적은 양의 캐릭터가 승리합니다.
저항 계산은 다음 두 공식에 의존합니다.
- 저항이 직렬 인 경우 저항은 각 저항의 저항의 합입니다.
- 저항이 병렬 인 경우 저항은 각 저항의 저항의 역의 합의 역수입니다
예를 들어 :
가능한 최소한의 문자로 최대 64 개의 저항 그룹의 저항을 계산해야합니다. 특히 입력 규칙의 복잡성에 대해 사과드립니다. 나는 모든 언어를 사용할 수있는 방식으로 그것들을 정의하려고 노력했다.
각 저항은 2 개 이상의 다른 저항에 연결됩니다.
입력은 하나의 종료점과 하나의 종료 점이 연결되어 유효한 것으로 보장됩니다.
네트워크는 제시된 것보다 더 많은 수학을 요구하지 않도록 직렬 병렬입니다
입력 한 언어에 따라 파일, 인수 또는 표준 입력을 통해 입력됩니다.
입력은 저항의 저항 정수로 구성된 일련의 개행 문자 또는 슬래시로 구분 된 일련의 명령문과 저항의 한쪽이 연결된 저항의 ID를 분리하는 공백으로 구성됩니다.
첫 번째 저항의 ID는 1이되고 연속 저항마다 하나씩 증가합니다.
시작의 ID는 항상 0입니다.
최종 저항은 항상 0 옴의 저항을 가지며 라인에 정의 된 연결 만 갖습니다.
예를 들면 다음과 같습니다.
로 표현 될 수있다
3 0
6 1
1 0
5 0
0 2 3 4
- 출력은 stdout 또는 파일 일 수 있습니다. 다음 방법 중 하나로 표현 될 수 있습니다.
- 소수점 이하 2 자리 이상인 숫자 다음에 줄 바꿈
- 정수 (분자), 슬래시 및 다른 정수 (분모)와 그 뒤에 줄 바꿈으로 구성된 분수입니다. 분수는 가장 낮은 형태 일 필요는 없다-예를 들어 4/4 또는 10/8은 허용 가능하다. 분수는 1/100 내에서 정확해야합니다. 완벽하게 정확한 것에 대한 보너스는 없습니다-고정 또는 부동 소수점 연산이없는 언어가 경쟁 할 수 있도록하는 목발입니다.
모든 점을 다룰 수 있기를 바랍니다. 행운을 빕니다!
1 2/1 0/0 1
유효?
/
백 슬래시가 아닙니다. `\`또는 슬래시를 의미 했습니까?