2012-03-26 2 views
1

모듈러 인버스를 계산하려고합니다. 이것은 내가 시도한 것이지만 작동하지 않습니다.C#이 예상대로 작동하지 않는 모듈러 인버스

while (priv != 1) 
{ 
    priv = ((x * other) % modulo); 
    x++; 
    textBox3.Text = textBox3.Text + "Trying: " + priv.ToString() + " ..."+"\n"; 
    if (priv == 1) 
    { 
     textBox3.Text = (" IS: " + priv.ToString() +" !"); 
    } 
} 

때로는 1을 출력하거나 아무것도 출력하지 않습니다.

내가 모듈 역 (x) of [x*781]%2828 = 1

+0

모듈 식 역을, 숫자의 쌍에 대한 존재 GCD (781, 2828) == 1 – CodesInChaos

+1

하지 엄격를'이후 귀하의 질문에 대한 대답, 그러나 당신이 모를 수도 있습니다. 상태 표시의 일부 형식으로 textBox3.Text를 사용하려고 한 것 같습니다. 이는 메소드가 완료 될 때까지 화면에서 변경되지 않으므로 문제입니다. 진행 상황에 대한 알림을 받으려면 Debug.WriteLine()을 사용하여 VS의 출력 창에 정보를 입력하는 것이 훨씬 낫습니다. 적어도 당신이 일을 파악할 때까지. UI 멀티 스레딩을 조회하거나 조회하십시오. – KingCronus

답변

1

출력 코드가 priv == 1 검사에 싸여 있기 때문에 1 또는 아무것도 출력 ...

당신은 아마 당신의 코드에이 변경을 원하는 (: 여기 당신이 필요로 계산하는 다양한 알고리즘에 대한 위키 피 디아 기사입니다 이 문제는 설명하고)의 원인이 아니기 때문에 계산이 맞다면 :

while (priv != 1) 
{ 
    priv = ((x * other) % modulo); 
    x++; 
    textBox3.Text = textBox3.Text + "Trying: " + priv.ToString() + " ..."+"\n"; 
    if (priv == 1) 
    { 
     break; // end the loop 
    } 
} 

textBox3.Text = (" IS: " + priv.ToString() +" !"); 
관련 문제