c# - 如何使随机数遵循某些自定义规则?
问题描述
我正在尝试制作一个随机三项式生成器,我希望 2 个随机数遵循三项式规则 (num1+num2=b)(num1*num2=c)
string a = "x²";
int b = new Random().Next(-50, 50);
int c = new Random().Next(-50, 50);
Console.WriteLine(a,b,c);
while (true)
{
int num1 = int.Parse(Console.ReadLine());
int num2 = int.Parse(Console.ReadLine());
if ((num1 + num2 == b) && (num1 * num2 == c))
{
Console.WriteLine("Correct.");
break;
}
else
{
Console.WriteLine("Wrong. Try again");
}
}
我希望这些数字会被写下来,但事实并非如此。另外,我不知道如何使随机数遵循这些规则。PS - 随机数总是相同的,我该如何改变它?
解决方案
这是我对查尔斯建议的尝试:
var rand = new Random();
string a = "x²";
int num1 = rand.Next(-50, 50);
int num2 = rand.Next(-50, 50);
int b = num1 + num2;
int c = num1 * num2;
Console.WriteLine($"{a}, {b}, {c}");
while (true)
{
int guess1 = int.Parse(Console.ReadLine());
int guess2 = int.Parse(Console.ReadLine());
if (guess1 == num1 && guess2 == num2)
{
break;
}
Console.WriteLine("Wrong. Try again");
}
Console.WriteLine("Correct.");
我已经简化了最后的逻辑,但它应该是一样的。
推荐阅读
- visual-studio-code - Emmet 智能感知未显示
- java - 2D 游戏中的相机运动如何工作
- r - 归一化贝叶斯计算中的后验和似然
- spring - 无法从类型 [java.lang.String] 转换为类型 [java.lang.Long]
- ansible - 在 Ansible 动态清单中,如何按标签过滤主机?
- apache-spark - YARN 容器和 Spark 执行器
- swiftui - 如何使用 DispatchQueue.global().async 从主线程发布值?
- javascript - 为什么在使用 Angular Material 时,我拖入下拉列表的元素会丢失顶部和左侧 CSS 属性?
- c - 管道到 C 中的 grep 程序
- c# - 如何在c#中将外来字符写入文本文件?