バックグラウンド
整数のハミング重みは、バイナリ表現の1の数です。このチャレンジでは、整数は32ビットで表され、符号なしです。
チャレンジ
0から2 ^ 32-1までの整数(非包括的)が与えられた場合、同じ範囲内で同じハミング重みを持つ異なる整数を出力します。
例
Input (Decimal) | Input (Binary) | Hamming weight | Possible output (Decimal)
46 | 0b0010 1110 | 4 | 15
12 | 0b0000 1100 | 2 | 3
1 | 0b0000 0001 | 1 | 2
3 | 0b0000 0011 | 2 | 6
2^31 | 0b1000....0 | 1 | 1
2^31+2 | 0b1000...10 | 2 | 3
2^32-5 | 0b1111..011 | 31 | 2^31-1
2^32-2 | 0b1111....0 | 31 | 2^31-1
0 | 0b0000 0000 | 0 | None (This case need not be handled)
2^32-1 | 0b1111....1 | 32 | None (This case need not be handled)
得点
これはcode-golfであるため、各言語の最小バイトでのソリューションが優先されます。
2^31+2
、奇数を言ったことを繰り返します。問題の答えは場合にのみ、失敗の両方の最上位と最下位ビットです1
。