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

C#中如何生成仅为1或3的随机整数(不包含2)?

生成仅包含1或3的随机数解决方案

嘿,我来帮你搞定这个问题!你当前的代码random.Next(1, 3)其实会生成1或2,因为Random.Next(min, max)是左闭右开的区间——它包含min但不包含max,这就是为什么得不到3的原因。

下面给你几种简单可靠的实现方式,都能均等概率生成1或3:

方法一:映射0/1到目标值

先生成0或1的基础随机数,再通过条件映射成你需要的1或3,逻辑直观易懂:

var random = new Random();
int baseValue = random.Next(2); // 生成0或1
int GetRandomTile = baseValue == 0 ? 1 : 3;

方法二:从预设列表中随机选取

如果以后可能需要扩展更多可选值(比如再加个5),这种方法会更灵活:

var random = new Random();
var validValues = new List<int> { 1, 3 };
int GetRandomTile = validValues[random.Next(validValues.Count)];

这样只要修改validValues列表,就能轻松调整可选的随机数范围。

方法三:直接生成目标奇数(可选)

如果你需要的是连续奇数,也可以用这种简洁的方式,不过只针对1和3的话,前两种更直观:

var random = new Random();
// 生成0/1后乘2加1,直接得到1/3
int GetRandomTile = random.Next(2) * 2 + 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:13:46