[아카이브] 순수수학, 물리학, 화학 등 : 거래와 무관한 두뇌 트레이닝 퍼즐 - 페이지 233

 

일반적으로 MQL 개발자에게는 불쾌감을 주지 않지만 수학 함수의 수는 https://docs.mql4.com/en/math 입니다.

제 생각에는 부끄럽게도 VB에서는 거의 없습니다. 그리고 MathFloor와 같은 일부 정의는 모호 합니다.

-

MathMax 함수를 살펴보겠습니다. 인수는 2개뿐입니다. 그리고 10이나 20이 필요하면 어떻게 될까요?

이것은 내 모듈이 있는 VB에서 보이는 것입니다.

-

x=max(x1...x20) '변수 20개의 최대값을 찾습니다.

x=max(x1, y, z, p) '변수 4개의 최대값을 구합니다.

 
MaStak >> :

그러나 일반적으로 일부 그리스어는 Pi \u003d 66/21

그리스어는 22/7(66/21과 동일)로 말했을 것입니다.

더 정확하게는 355/113(정확도 - 3*10^(-7) )입니다.

차상위 분수는 이미 103993 / 33102입니다(순서 정확도 6*10^(-10) ).

2 Richie: 음, 그리고 당신은 VB를 끝내야 했습니다. 글쎄, 당신은 Metaquote를 실행합니까?

 
여러분, 드디어 창의력의 요소를 보여주세요! 요점은 이 프로그램을 사용하여 숫자 파이를 찾는 것이 아니라 프로그램이 어떻게 했는지 해독하는 것입니다. 우리는 "... 두뇌 훈련을위한 문제 ..."라는 주제를 읽습니다. 이 프로그램은 "Fun with C" 시리즈입니다. C에서 가장 이해하기 어렵고 신비한 알고리즘을 컴파일하기 위한 경쟁이 있습니다. 소스 코드가 있고 결과가 있고 작동 원리를 풀어야 합니다. 알고리즘 자체가 해결해야 할 문제입니다. "해킹"해야합니다. 이렇게 하려면 뇌를 "파괴"해야 합니다.
 

재미


 
Mischek писал(а) >>

재미

Mischek , 우리는 여기에서 전 대학원생이고 11 학년이 아니라 8 학년을 위해 문제를 해결합니다 :)

불쌍한 아이들 :(

 
C-4 >> : Сам алгоритм - это и ест задача для решения. Его надо "взломать". Для этого требуется "поломать" свой мозг.

글쎄, 나는 이것이 문제라고 의심했다 ...

좋아, 보자.

 int a = 10000 , b , c = 2800 , d , e , f [ 2801 ] , g ;
int main ( void ) {
   for ( ; b - c ; ) f [ b + + ] = a / 5 ;
   for ( ; d = 0 , g = c * 2 ; c - = 14 , printf ( "%.4d" , e + d / a ) , e = d % a )
       for ( b = c ; d + = f [ b ] * a , f [ b ] = d % - - g , d / = g - - , - - b ; d * = b ) ;
}

첫 번째 주기 다루기

   for ( ; b - c ; ) f [ b + + ] = a / 5 ;

루프는 b - c 표현식이 true로 평가되는 동안 실행됩니다. C에서 옳은 것은? 모든 것은 0이 아닙니다. 이것은 b가 0에서 증가하고 배열 f[]를 채우는 사이클이 b가 c와 같을 때까지 수행됨을 의미합니다. 최대 2800. 배열 f[]는 동일한 숫자 10000/5 = 2000으로 채워집니다.

큰 실수를 할 때까지?

 

어쨌든 Pi는 한 가지 방법으로만 계산되며 나머지는 모두 다른 스커트의 mashka 또는 mashka의 일부입니다. :)

 
Mathemat >> :

글쎄, 나는 이것이 문제라고 의심했다 ...

좋아, 보자.

첫 번째 주기 다루기

루프는 b - c = true가 될 때까지 실행됩니다. C에서 옳은 것은? 모든 것은 0이 아닙니다. 이것은 b가 0에서 증가하고 배열 f[]를 채우는 사이클이 b가 c와 같을 때까지 수행됨을 의미합니다. 최대 2800. 배열 f[]는 동일한 숫자 10000/5 = 2000으로 채워집니다.

큰 실수를 할 때까지?

자, 외쳐봅시다.

지금까지는 맞습니다. 더 살펴보겠습니다.

 

그리고 여기에 혼란이 있습니다. 첫 번째 캡(외부 루프)에서 d=0 조건은 다소 짜증스럽습니다. 항상 사실인가요?

 

다음은 중첩 루프입니다. 다시 쓰기:

 for ( ; g = c * 2 ; ) 
{
d = 0 ;
   for ( b = c ; - - b ; d * = b )
{
d + = f [ b ] * a ;
g
--;
 f [ b ] = d % g;
 d / = g ;
g - - ;
}
c - = 14 ;
printf ( "%.4d" , e + d / a ) ;
e = d % a;
}
여기서 순서가 특히 중요합니다. 나 아직 거짓말 안했어?
그럼 더 진행하겠습니다.

// 실제로 ( ; g = c * 2 ; ) 이 버전에서 훨씬 더 좋아 보일 것 입니다 : g = c * 2 ; g != 0 ; )