입력:
우리는 두 가지 입력을받습니다 :
b
두 개의 고유 한 값을 가진 입력 :Left
및Right
. †- 그리고 양의 정수
n
.
산출:
왼쪽 / 오른쪽 입력을 기반으로 범위 내에서 다음 두 시퀀스 중 하나를 출력합니다 1-n
(처음 125 개 항목 아래의 시퀀스가 표시됨).
Left:
1, 6, 7, 56, 57, 62, 63, 960, 961, 966, 967, 1016, 1017, 1022, 1023, 31744, 31745, 31750, 31751, 31800, 31801, 31806, 31807, 32704, 32705, 32710, 32711, 32760, 32761, 32766, 32767, 2064384, 2064385, 2064390, 2064391, 2064440, 2064441, 2064446, 2064447, 2065344, 2065345, 2065350, 2065351, 2065400, 2065401, 2065406, 2065407, 2096128, 2096129, 2096134, 2096135, 2096184, 2096185, 2096190, 2096191, 2097088, 2097089, 2097094, 2097095, 2097144, 2097145, 2097150, 2097151, 266338304, 266338305, 266338310, 266338311, 266338360, 266338361, 266338366, 266338367, 266339264, 266339265, 266339270, 266339271, 266339320, 266339321, 266339326, 266339327, 266370048, 266370049, 266370054, 266370055, 266370104, 266370105, 266370110, 266370111, 266371008, 266371009, 266371014, 266371015, 266371064, 266371065, 266371070, 266371071, 268402688, 268402689, 268402694, 268402695, 268402744, 268402745, 268402750, 268402751, 268403648, 268403649, 268403654, 268403655, 268403704, 268403705, 268403710, 268403711, 268434432, 268434433, 268434438, 268434439, 268434488, 268434489, 268434494, 268434495, 268435392, 268435393, 268435398, 268435399, 268435448, 268435449
Right:
1, 4, 7, 32, 39, 56, 63, 512, 527, 624, 639, 896, 911, 1008, 1023, 16384, 16415, 16864, 16895, 19968, 19999, 20448, 20479, 28672, 28703, 29152, 29183, 32256, 32287, 32736, 32767, 1048576, 1048639, 1050560, 1050623, 1079296, 1079359, 1081280, 1081343, 1277952, 1278015, 1279936, 1279999, 1308672, 1308735, 1310656, 1310719, 1835008, 1835071, 1836992, 1837055, 1865728, 1865791, 1867712, 1867775, 2064384, 2064447, 2066368, 2066431, 2095104, 2095167, 2097088, 2097151, 134217728, 134217855, 134225792, 134225919, 134471680, 134471807, 134479744, 134479871, 138149888, 138150015, 138157952, 138158079, 138403840, 138403967, 138411904, 138412031, 163577856, 163577983, 163585920, 163586047, 163831808, 163831935, 163839872, 163839999, 167510016, 167510143, 167518080, 167518207, 167763968, 167764095, 167772032, 167772159, 234881024, 234881151, 234889088, 234889215, 235134976, 235135103, 235143040, 235143167, 238813184, 238813311, 238821248, 238821375, 239067136, 239067263, 239075200, 239075327, 264241152, 264241279, 264249216, 264249343, 264495104, 264495231, 264503168, 264503295, 268173312, 268173439, 268181376, 268181503, 268427264, 268427391
이 시퀀스는 어떻게 생성됩니까?
1에서 기본 시퀀스 n=10
는 다음과 같습니다.
As integer:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
As binary:
1 10 11 100 101 110 111 1000 1001 1010
왼쪽으로 늘리면 바이너리가 다음과 같이됩니다.
1, 110, 111, 111000, 111001, 111110, 111111, 1111000000, 1111000001, 1111000110
왜? 마지막 비트는 한 번 사용됩니다. 단일 마지막은 두 번 사용됩니다. 두 번째는 세 번 사용됩니다. 기타
So `1010` will become (spaces added as clarification): `1111 000 11 0`
그리고이 새로운 왼쪽 스트레치 이진 문자열은 다시 정수로 변환됩니다.
1, 6, 7, 56, 57, 62, 63, 960, 961, 966
오른쪽으로 확장 된 경우 첫 번째 비트가 한 번 사용됩니다. 두 번째; 셋째 세 번; 이와 같이 :
As binary:
1, 100, 111, 100000, 100111, 111000, 111111, 1000000000, 1000001111, 1001110000
As integer:
1, 4, 7, 32, 39, 56, 63, 512, 527, 624
도전 규칙 :
- † 두 가지 고유 한 값을 사용할 수 있지만 사용하는 값을 명시하십시오. 이 될 수 있도록
1/0
,true/false
,null/undefined
,"left"/"right"
, 등 n
항상 0보다 큽니다.- 최소한 언어의 기본 정수 (대부분의 언어에서 32 비트)의 최대 출력을 지원해야합니다.
- 출력 형식이 유연합니다. 배열 / 목록으로 인쇄하거나 반환 할 수 있습니다. 공백, 쉼표, 파이프 등을 구분 기호로 사용할 수 있습니다. 당신의 전화. (다시 사용한 것을 적어주십시오.)
n < 128
결과 만 32 비트 정수에 맞도록 지원할 수있는 비트 단위 응답을 허용 하시겠습니까 ?