您的任务是实现一个函数1,该函数在正整数上形成置换(从正整数到自身的双射)。这意味着每个正整数在排列中应该恰好出现一次。最重要的是,您的函数输出奇数而不是偶数的可能性更大。
现在,这似乎很奇怪或不可能。当然,奇数和偶数一样多吗?虽然这种直觉对于有限集是正确的,但实际上对于无限集并不成立。例如,采用以下排列:
1 3 2 5 7 4 9 11 6 13 15 8 17 19 10 21 23 12 25 27 14 29 31 16 33 35 18 37 39 20 41 43 22 45 47 24 49 51 26 53 55 ...
如果对序列中的任何一个子部分的大小大于,则奇数至少与偶数一样多,因此,似乎任何随机项为奇数的概率都大于偶数。您还会注意到,每个数字最终都会在序列中出现奇数或偶数,并且只能出现一次。因此,该序列是真正的排列。
概率的定义
为了避免混淆或模棱两可,我将清楚地阐明该问题中概率的含义。
让我们说我们有一个函数。当趋于无穷大时,一个数字为奇数的概率将定义为该集合的奇数成员与集合的大小之比的极限。
例如,前述函数将具有奇数的可能性。
这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。
额外挑战
这里有一些有趣的想法,可以尝试并尝试实现。这些只是为了娱乐,不会以任何方式影响得分。其中一些甚至不是针对此挑战的有效解决方案,仅包含对挑战2或3的解决方案的答案不是有效答案,可能会被删除。
写一个奇数为的排列。(这个有可能)
对于任何,写一个排列,该排列的奇数个数比偶数个数更多,但奇数概率为。
编写没有定义概率(没有限制)的排列。
1:这里的功能表示程序或功能。这只是一段需要输入并产生输出的代码。