Turing Complete: 지연 회로 가이드로 안전하게 저장하기

Turing Complete에서 grep하기 가장 어려운 레벨 중 하나에 대한 연습입니다.

 

1단계: 우리는 무엇을 해야 합니까?

우리의 긴 코를 가진 외계인 친구에 따르면, 우리는 값을 저장할 수 있는 회로를 만들고 있으며 현재 저장된 값은 무엇이든 출력할 수 있습니다.

좀 더 세분화하면 여기에서 실제로 수행해야 하는 몇 가지 다른 작업이 있습니다. 첫째, 어떻게든 값을 영원히 저장해야 합니다. 둘째, "저장" 비트(상단 입력)가 켜져 있으면 "저장"된 모든 것을 하단 비트의 값으로 대체해야 합니다.

두 번째 부분은 까다롭게 들리지만 첫 번째 부분부터 시작하여 이를 기반으로 하는 방법을 살펴보겠습니다.

2단계: 저장이 꺼져 있다고 가정하고 이전에 해결한 문제를 해결합니다.

홀수 틱을 기억하십니까? 그 문제에서 우리는 오프 그런 다음 않습니다. "저장"하다 on, 그리고 다음 틱에서 같은 일을 하지만 반대 값을 사용합니다. 복잡하게 들리므로 그림을 사용하겠습니다.


이 경우 본질적으로 결과를 저장하고 있었습니다. 않습니다. 마지막 틱 값. 이것에 대해 생각하는 한 가지 방법은 지연 회로, 다음 틱에 대해 원하는 출력을 지연 회로. 따라서 여기에 값을 저장하는 확실한 방법은 자체적으로 루프백하는 것입니다. 그것을 시도하자.


좋습니다. 이제 저장 루프가 있습니다. 에서 출력되는 것은 무엇이든 지연 회로 그것에 다시 먹일 것이고 우리는 황금이 될 것입니다. 단순화를 위해 지연 회로에 보내는 모든 입력을 입력을 "저장"이라고 합니다.

우리가 이것을 테스트 할 수 있습니까? 좋은 생각입니다. 실행 오프 작동합니다(아래 테스트가 실패할 때까지, 그러나 갑자기 전환할 이유가 없음을 알 수 있습니다. on 그리고 출력 on 신호). 던지자 on 생성기를 만들고 저장하는지 확인하십시오. on.


물론 쉽지 않을 것입니다 :/ 친절한 것은 없습니다 OR 고칠 수 없습니다.


그게 낫다! 나는 알아 On 해낼거야 on 관계없이, 하지만 바라건대 당신은 우리가 그것을 취할 수 있더라도 볼 수 있기를 바랍니다. on 떨어져, 하단 입력 OR 그것을 영원히 유지할 것입니다.

실제로 다음과 같은 경우에 입력 저장 is 오프, 이것이 바로 우리가 원하는 동작입니다! 또는 그것을 다른 표현으로 표현하면, 입력 저장 is 오프 Audiencegain과 저장된 값은 on, 다음을 보내십시오 on ~로 지연 회로, 또는 입력 저장 is 오프 Audiencegain과 저장된 값은 오프, 출력 오프. 우리는 그것을 조금 단순화할 수 있습니다. 만약 입력 저장 is 오프, 다음 내용을 보내십시오. 지연 회로 다음 틱에 출력할 수 있도록 다시 자기 자신으로 돌아갑니다.

진리표(주어진 입력에 대한 출력이 무엇인지 보여 주는 이전 레벨의 것들)를 만들 수 있습니다.

입력 저장
저장된 루프 입력
산출

직접 시도하고 구축하는 것이 좋지만 다음과 같이 보일 수 있습니다.


여기서는 주황색을 사용하여 저장 루프를 나타내고 연한 파란색을 사용하여 입력 저장. 저는 와이어를 이와 같이 논리적 그룹으로 색칠하는 습관을 들이는 것이 좋습니다. 나중에 레벨에서 하면 기쁠 것입니다 🙂

3단계: 알겠습니다. 저장한 내용을 변경하는 기능을 추가하겠습니다.

좋아요, 문제의 절반이 해결되었습니다. 이제 저장했을 때 저장한 항목을 무시하는 방법을 알아내면 됩니다. 입력 저장 is on, 대신에 무엇이든 저장하십시오. 값 입력. 힘들게 들리지만 일단 놀아보자.


사실, 회로를 다시 살펴보면 문제의 절반 이상이 해결되었습니다! 만약 입력 저장 is on, 그 다음에  우리가 저장한 모든 것이 다음으로 설정되었는지 확인합니다. 오프. 이 경우 우리가 해야 할 일은 다음에서 값을 가져오는 것입니다. 값 입력 그리고 그것을 쓰십시오 지연 회로.


아, 우리는 매우 가깝지만 여기에 오류가 있습니다. 우리는 값 입력, 심지어 입력 저장 설정되어 있지 않습니다. 다음 경우에만 해당 값을 저장하고 싶습니다. 입력 저장 켜져 있으므로 몇 가지 논리를 다시 사용하여 방법을 알아보겠습니다.

입력 저장
값 입력
산출

저장 로직을 되돌아보면 다음과 같은 경우 저장된 값을 원했습니다. 입력 저장 였다 오프. 여기서 우리는 원하는 값 입력입력 저장 is on. 매우 유사하게 들리므로 시도해 보겠습니다. 및 다시 게이트.


재생을 누르고... 끝입니다!

다른

이것은 레벨을 해결하는 가장 효율적인 방법은 아니지만 요점은 아닙니다. 레벨을 이해하고 "건너뛰기" 버튼만 받는 것이 아니라 스스로 해결할 수 있는 단계를 보여주고 싶었습니다. 그러나 설명하는 것은 제 가장 강력한 기술이 아니므로 여전히 불분명하거나 클릭하게 만든 다른 생각이 있다면 아래 의견에 공유해 주세요!

이 수준은 어려운 이유는 문제를 하위 문제로 분류해야 한다는 것을 분명히 하지 않으면서 문제를 세분화해야 하는 첫 번째 수준이기 때문입니다. 문제를 보고 더 작고 더 쉬운 하위 문제로 단순화할 수 있다는 것은 CS 학위나 컴퓨팅 배경보다 이 게임에서 더 많은 것을 얻을 수 있도록 하므로 문제가 더 커질 미래 수준에서 이를 염두에 두는 것이 좋습니다. 더 큰.

By 렌발츠

"Turing Complete: 지연 회로 가이드로 우아하게 절약하기"에 대한 1개의 생각

  1. 어머나! 이 솔루션은 매우 정교하고 만족스럽습니다. 매우 감사합니다. 이 레벨을 통과하는 데 많은 도움이 되었습니다. 엄지척!

    댓글

코멘트 남김

ArabicEnglishFrenchGermanItalianJapaneseKoreanPortugueseSpanish