두 개의 얽힌 체인


9

에서 질문 나는 함수와는 "체인"기능을 정의 :

  • 는 순열입니다. 즉, 모든 값이 정확히 하나의 값으로 매핑되고 매핑됩니다.

  • 기능 또는 그 역의 반복 된 적용에 의해 임의의 다른 값으로부터 임의의 값을 얻을 수있게한다.

이 작업을 수행하는 많은 기능이 있으며 그중 일부는 매우 간단합니다 (해당 질문에 대한 답변 참조). 이제 "interwoven"함수라고하는 별도의 함수 클래스를 정의 할 것입니다. 짜여진 함수 세트에 함수 개의 무한 파티션 가지고 01 기능이 모두 사슬 함수가되도록 01 .

, 0 의 값 은 함수 에서 1 의 값으로 매핑 할 수 없으며 그 반대의 경우도 마찬가지입니다.

직무

당신의 임무는 양의 정수에 대한 직조 함수를 수행하거나 정의하는 코드를 작성하는 것입니다. 짜여진 기준을 만족하는 한, 당신의 기능은 무엇이든 될 수 있습니다. 함수가 왜 함수에 짜여져 있는지에 대한 설명을 포함해야합니다.

이것은 질문은 대답이 바이트 단위로 기록되며 적은 바이트가 더 좋습니다.


@flawr 감사합니다! 나는 그 단어를 찾고 있었지만 그것을 생각할 수 없었다.
애드혹 가프 헌터

추가 짝수를 작성해야하기 때문에 (예 : 모든 짝수와 모든 홀수를 따로 따로 열거해야하기 때문에) 이것은 마지막으로 연결 한 도전의 속죄로 간주 될 수 있습니다. 나는 당신이 여기에 오는 대답 중 어느 것도 실질적으로 새로운 것을 제공 할 것이라고 생각하지 않습니다.
flawr

@flawr 그렇게 할 수는 있지만 최선의 방법은 아닙니다. 나는 이것에 대해 약간의 실험을 해 왔으며 이러한 유형의 기능을 수행하는 몇 가지 새로운 방법이 있습니다.
애드혹 가프 헌터

답변:


2

파이썬, 46 42 37 바이트

@notjagan 덕분에 5 바이트 절약

lambda x:1<x<4and x*2%5or x-(x&2)*4+4

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

4 단계와 2와 3의 링크로 짝수와 홀수를 반복합니다.

=> 22 => 18 => 14 => 10 => 6 => 2 => 4 => 8 => 12 => 16 => 20 => 24 =>
=> 23 => 19 => 15 => 11 => 7 => 3 => 1 => 5 => 9 => 13 => 17 => 21 =>

1

자바 스크립트, 30 24 바이트

a=>(a+=a&2?-4:4)<0?a*a:a

시퀀스 :

  1. ... 19 15 11 7 3 1 5 9 13 17 21 ...
  2. ... 18 14 10 6 2 4 8 12 16 20 24 ...

코드 스 니펫

f=a=>(a+=a&2?-4:4)<0?a*a:a
console.log('23 19 15 11 7 3 1 5 9 13 17'.split` `.map(a=>f(a|0)).join` `);
console.log('22 18 14 10 6 2 4 8 12 16 20'.split` `.map(a=>f(a|0)).join` `);


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.