我试图创建一个生成随机总和的随机和生成器!
我创建的唯一问题是,它可以生成具有否定结果的总和。所以我希望它只能产生积极结果的总和。
示例:
<input id="AssetLabel" name="AssetLabel" type="hidden"
value="System.Data.Entity.DynamicProxies.AssetLabel_32653C4084FF0CBCFDBE520EA1FC5FE4F22B6D9CD6D5A87E7F1B7A198A59DBB3"
/>
我的代码:
7-10 = -3
答案 0 :(得分:1)
由于您将始终处理正整数,因此您唯一的问题是在减法情况下检查负数。我还建议切换到Random
类来生成随机整数。解决负面结果的一种方法是翻转你减去的数字。
boolean flip = false;
int num1, num2, op, result;
String operation;
Random r = new Random();
num1 = r.nextInt(8)+2;
num2 = r.nextInt(8)+2;
op = r.nextInt(4);
switch(op) {
case 0:
// Always be positive.
operation = "+";
result = num1+num2
break;
case 1:
// Could be negative if num2 is larger than num1. Simply flip the numbers.
flip = num1 < num2;
operation = "-";
result = flip ? num2-num1 : num1-num2;
break;
case 2:
// Always be positive.
operation = "*";
result = num1*num2;
break;
case 3:
// Always be positive.
operation = "/";
result = num1/num2;
break;
}
答案 1 :(得分:0)
您可以做的最简单的解决方法是让随机操作完成。我假设你做了{add,sub,mult,divide}
的多个循环。如果 final 结果为负数,请将其转换回正数。
但是,可以使用java运行时完成更分散的随机数生成:
double d = java.lang.Math.random() * MAX_RANDOM_VALUE; // MAX_RANDOM_VALUE is a max value you define, like 100000
int result = (int)d;
答案 2 :(得分:0)
您还没有提及有关所需输出分配的任何内容,但如果它确实没有确定您没有负输出那么简单,您可以在返回之前通过Math.abs()
传递每个输出...
答案 3 :(得分:0)
据我所知,你想从 中选择一组正整数,这些正整数可以写成+ b,其中a和b是整数。 1和a + b的最大值之间的每个正整数都可以这样写,你只想选择一个随机正整数。
int result = new Random().nextInt(maxPossibleSumValue);
答案 4 :(得分:0)
由于生成的随机数将在0-1
范围内。只有当您减去两个数字并且number2
大于number1
时,才会得到否定结果。在这种情况下,如果number1
大于number2
,您只需交换number2
和number1
。