我想產生哪些不應該比可變的「最大」更大的一個隨機數,並符合以下條件的隨機數:生成其滿足一些條件
int fi= 17;
int max=96;
int i=1;
int rez=0;
while(i<max)
{
if((i*max)%fi==1) rez=i;
i++;
}
System.out.println(rez);
結果總是0.What被錯誤?
我想產生哪些不應該比可變的「最大」更大的一個隨機數,並符合以下條件的隨機數:生成其滿足一些條件
int fi= 17;
int max=96;
int i=1;
int rez=0;
while(i<max)
{
if((i*max)%fi==1) rez=i;
i++;
}
System.out.println(rez);
結果總是0.What被錯誤?
import java.util.*;
class hello
{
public static void main (String[] args) throws java.lang.Exception
{
Random r=new Random();
int i=1;
while(i<96)
{
if(((i*96)%17)==1)
{
System.out.println("i:- "+i);
}
i++;
}
}
}
輸出: 我: - 14 我: - 31 我: - 48 我: - 65 我: - 82
爲什麼使用「Random r」? – SubOptimal
我推出了採用最多的,而不是蘭特程序修改爲你編寫並在循環中添加一些printf。下面的代碼:
#include <stdio.h>
void main()
{
int fi= 17;
int max=96;
int i=0;
int rez=0;
while(i<max)
{
printf("\n%i", (i*max)%fi);
if((i*max)%fi==1)
{
rez=i;
printf(" -> %i", rez);
}
i++;
}
printf("\n");
printf("\nFinal result: %i", rez);
printf("\n");
}
而這裏的輸出:
0
11
5
16
10
4
15
9
3
14
8
2
13
7
1 -> 14
12
6
0
11
5
16
10
4
15
9
3
14
8
2
13
7
1 -> 31
12
6
0
11
5
16
10
4
15
9
3
14
8
2
13
7
1 -> 48
12
6
0
11
5
16
10
4
15
9
3
14
8
2
13
7
1 -> 65
12
6
0
11
5
16
10
4
15
9
3
14
8
2
13
7
1 -> 82
12
6
0
11
5
16
10
4
15
9
3
14
8
Final result: 82
就像你說的,我不總是得到0。你從哪裏得到0?
什麼條件?結果是什麼? – fabian
條件是'if((i * rand)%fi == 1)'。問題是我每次都得到0。 –
示例中缺少rand的聲明。你能發佈完整的代碼嗎? – Carlo