2016-05-12 69 views
3

我想產生哪些不應該比可變的「最大」更大的一個隨機數,並符合以下條件的隨機數:生成其滿足一些條件

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被錯誤?

+1

什麼條件?結果是什麼? – fabian

+0

條件是'if((i * rand)%fi == 1)'。問題是我每次都得到0。 –

+1

示例中缺少rand的聲明。你能發佈完整的代碼嗎? – Carlo

回答

1
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

+1

爲什麼使用「Random r」? – SubOptimal

0

我推出了採用最多的,而不是蘭特程序修改爲你編寫並在循環中添加一些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?