You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:求从正整数到有理数的非单射函数实例

正整数到有理数的非单射函数实例与构造

当然存在这类函数啦!其实构造起来并不复杂,而且你想到的上取整函数思路完全符合要求,咱们来具体拆解几个可行的方案:

1. 最简单的常数函数

直接让所有正整数都映射到同一个有理数,比如:
f(n) = 0(n为任意正整数)
这个函数显然满足:

  • 定义域是正整数,值域是有理数(0是有理数)
  • 非单射:所有正整数都对应同一个值,不同的输入有相同的输出,完全符合非单射的定义。

2. 分段映射的非单射函数

可以设计分段规则,让多个正整数对应同一个有理数,比如:

  • 当n为奇数时,f(n) = 1
  • 当n为偶数时,f(n) = n/2
    这个函数里,所有奇数都映射到1(比如n=1和n=3都对应1),偶数则对应正整数的一半(也是有理数),显然是非单射,同时值域全部属于有理数集合。

3. 你提到的上取整函数方案(完全有效!)

你想到的上取整函数思路非常靠谱,比如定义:
f(n) = ⌈n/2⌉(⌈x⌉表示不小于x的最小整数)
对于正整数n来说:

  • n=1和n=2时,f(n)=1
  • n=3和n=4时,f(n)=2
  • 以此类推,每两个连续的正整数会映射到同一个正整数(正整数属于有理数),完美满足“非单射”的要求,而且完全符合定义域和值域的限制。

其实还有很多变种,比如把多个正整数分组映射到同一个有理数,核心就是只要让至少两个不同的正整数对应同一个有理数,同时保证映射结果是有理数就行。

内容的提问来源于stack exchange,提问作者Hosep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:54:16