트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 198

 
트레이더 박사 :

R에서 또 다른 버그를 발견했습니다. R은 0으로 잘못 나눕니다.

스크립트는 다음과 같습니다.

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"

#property script_show_inputs

input double div = 0.0 ;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   Print ( 1.0 /div);
  }
//+------------------------------------------------------------------+

정답, mql -
'test.mq5'에서 0 나누기(20,13)
스크립트 중지로

R에서 부적절함:
> 1/0
인프
스크립트의 연속으로

나는 이것을 Alexey와 동일하게 이끕니다. 불확실한 조건에서 프로그램의 동작은 다를 수 있으며 이것은 실수가 아닙니다. 아키텍처가 지시하는 대로 이것이 결과가 될 것입니다.


"잘못된 대답"에 대해 잘못 알고 있습니다.

R의 대답은 완벽하게 정확하고 매우 편리합니다. 사실은 R에서 "변수 값"의 개념이 논리적 결론에 이르고 변수에 대해 세 가지 특정 값이 있다는 것입니다. NA(값이 있지만 알 수 없음), NaN(거기 숫자 값 없음) 및 Inf - 무한대입니다. 이것은 그러한 값이며 프로그램을 중단하는 것은 완전히 잘못된 것입니다. 실제 정확도 측면에서 컴퓨터의 한계를 고려하면 Inf는 완전히 유한한 값을 가질 수 있습니다. 그리고 진행하는 것은 지극히 자연스러운 일이며, 예상대로라면 깔끔하게 작성된 프로그램 에서 이러한 결과를 확인해야 합니다.

예를 들어, MQL 문서는 arcsine에 대한 예를 제공하고 arcsine(2) = 무한대라고 명시합니다. 이것은 정확하지 않습니다. 정확히: arcsine(2) = NaN, 즉 숫자 값이 없습니다. arcsine(1) = Inf, 그러나 거래 중 따옴표 건너뛰기 = NA, 즉. 이어야 하지만(또는 주말에 있을 수 있음) 그렇지 않습니다.

 
알렉세이 버나코프 :

Wolfram이 말하는 0은 궁극적인 진실이 아닙니다. 나는 표현의 "오류"라는 단어가 중복된다는 사실에 대해 이야기하고 있습니다 ...

이것은 Wolfram에 관한 것이 아닙니다. 0이 아닌 양수 값의 적분은 0이 될 수 없습니다.

확인 과정에서 알고리즘의 오류도 발견되었습니다.

예를 들어, 중심이 아닌 t-분포의 경우 분위수가 반전되지 않습니다.


 > n <- 10
> k <- seq(0,1,by=1/n)
> nt_pdf<-dt(k, 10.8, 로그 = FALSE)
> nt_cdf<-pt(k, 10.8, 로그 = FALSE)
> nt_quantile<-qt(nt_cdf, 10.8, 로그 = FALSE)
> nt_pdf
[1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13
 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11
> nt_cdf
[1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13
 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12
> k
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> nt_quantile
[1] -Inf -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154
 [7] -1.340781e+154 7.000000e-01 8.000000e-01 9.000000e-01 1.000000e+00


Quantile 0-0.6은 여기에서 잘못 계산됩니다.

MQL5의 유사한 계산 예:

2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1) 패키지 통계 단위 테스트
2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1)
2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1) Noncentral T 분포 테스트 시작
2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1) 비중심 T 분포 검정: 검정 1: 단일 값 계산
2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1) 1 0, PDF=4.92773299108629100851e-15, CDF=6.23274905782904190070e-15, CDF=6.23274905782904190070e-1
2016.11.10 17:53:32.646 TestStatNCT (EURUSD,H1) 1 1, PDF=1.13022616309487516453e-14, CDF=1.389938957795737699266e-19
2016.11.10 17:53:32.647 TestStatNCT (EURUSD,H1) 1 2, PDF=2.64161256619123119969e-14, CDF=3.1675511591369318050175e-1
2016.11.10 17:53:32.648 TestStatNCT (EURUSD,H1) 1 3, PDF=6.28106243570810575054e-14, CDF=7.36381790305861902998e-19
2016.11.10 17:53:32.648 TestStatNCT (EURUSD,H1) 1 4, PDF=1.51636983962646374250e-13, CDF=1.743039359074490690191e-1
2016.11.10 17:53:32.648 TestStatNCT (EURUSD,H1) 1 5, PDF=3.70864175555731463525e-13, CDF=4.191928122774706170962e-10
2016.11.10 17:53:32.649 TestStatNCT (EURUSD,H1) 1 6, PDF=9.16615229573755101565e-13, CDF=1.0218773727704494939465e-1
2016.11.10 17:53:32.651 TestStatNCT (EURUSD,H1) 1 7, PDF=2.28327725393015114329e-12, CDF=2.518508473686626093992e-19
2016.11.10 17:53:32.652 TestStatNCT (EURUSD,H1) 1 8, PDF=5.71609303970751591223e-12, CDF=6.258214173612894293932e-19
2016.11.10 17:53:32.653 TestStatNCT (EURUSD,H1) 1 9, PDF=1.43395037240077606742e-11, CDF=1.56338059375202603923e-19
2016.11.10 17:53:32.655 TestStatNCT (EURUSD,H1) 1 10, PDF=3.59391445912256345050e-11, CDF=3.91468724033560601170e9991468724033560601170e99
2016.11.10 17:53:32.655 TestStatNCT (EURUSD,H1) Noncentral T 분포 검정: 검정 2: 배열 계산
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 0, PDF=4.92773299108629100851e-15, CDF=6.23274905782904190070e-15
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 1, PDF=1.13022616309487516453e-14, CDF=1.389938957795737699266e-19
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 2, PDF=2.64161256619123119969e-14, CDF=3.1675511591369318050175e-1
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 3, PDF=6.28106243570810575054e-14, CDF=7.363817903058619029898e-19
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 4, PDF=1.51636983962646374250e-13, CDF=1.743039359074490690191e-1
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 5, PDF=3.70864175555731463525e-13, CDF=4.19192812277470617062e-10
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 6, PDF=9.16615229573755101565e-13, CDF=1.0218773727704494939465e-1
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 7, PDF=2.28327725393015114329e-12, CDF=2.518508473686626093992e-19
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 8, PDF=5.71609303970751591223e-12, CDF=6.2582141736128942939232e-19
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 9, PDF=1.43395037240077606742e-11, CDF=1.56338059375202603923e-9
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 10, PDF=3.59391445912256345050e-11, CDF=3.91468724033560601170e9991468724033560601170e99
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) Noncentral T 분포 테스트: 테스트 3: R 유사 과부하 함수
2016.11.10 17:53:32.676 TestStatNCT(EURUSD,H1) 3 0, PDF=-3.29438973521509552711e+01, CDF=-3.501154399114379.320575e=-3.50115439911439320575e
2016.11.10 17 : 53 : 32.676 TestStatnct (EURUSD, H1) 3 1, PDF = -3.21137779E + 01, CDF = -3.420951656872504926E + 01, Q = 9.99999999999992561506E-01, Q = 9.99999999999992561506E-01,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 2, PDF=-3.12648017507063613607e+01, CDF=-3.33858176105613679852
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 3, PDF=-3.03986521580849320401e+01, CDF=-97-3.25421978598387201978598387227066e
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 4, PDF=-2.95172869939179705057e+01, CDF=-3.1680560954409099991392e=0040909991392
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 5, PDF=-2.86229405029589081266e+01, CDF=-3.00303050132955588878e000003050132955588878e
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 6, PDF=-2.77180886076848480570e+01, CDF=-991196471184461110312e=99119647118446110312e
2016.11.10 17 : 53 : 32.676 TestStatNCT (EURUSD, H1) 3 7, PDF = -2.68054093129469348931294693489312946934893129469348931294693489312935847934765E + 01, Q = 6.9999999999999400480E-1, Q = 6.99999999999999400400480E-1,
2016.11.10 17 : 53 : 32.676 TestStatNCT (EURUSD, H1) 3 8, PDF = -2.588773557892770327EE + 01, CDF = -2.809097111E + 01, Q = 7.999999999999994892999999994892999999948929999999489297E-01, Q = 7.999999999999948929999999489299999948929999999489297E-01
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 9, PDF=-2.49680028891657173062e+01, CDF=-2.718417059205039662091e, CDF=-2.71841705920503962091e
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 10, PDF=-2.40491940358795979193e+01, CDF=-2.62662856772029e+801903
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 비중심 T 분포 검정: 검정 4: 난수 생성기
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Noncentral T 분포 테스트 통과
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Noncentral T 분포 테스트: PDF 최대 오차: 1.48634016318122160328e-25
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) 비중심 T 분포 검정: CDF 최대 오차: 2.75966439373922392108e-18
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) 비중심 T 분포 검정: 분위수 최대 오차 : 5.16253706450697791297e-15
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Noncentral T 분포 테스트: PDF 정확한 자릿수: 24
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) 비중앙 T 분포 검정: CDF 정확한 자릿수: 17
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) 비중심 T 분포 검정: 분위수 정확한 자릿수: 14
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1)
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) 1/1 통과

TestStatNCT.mq5 스크립트 결과(TestStat.mq5에서 테스트, TestNoncentralTDistribution 테스트 함수에 추가된 계산된 값 출력)

보시다시피 분위수는 반전되고 테스트는 통과합니다.

오류는 다음과 같습니다.

//--- precision
double calc_precision_pdf= 10 E- 15 ;
double calc_precision_cdf= 10 E- 15 ;
double calc_precision_quantile= 10 E- 14 ;

Denise Benton, K. Krishnamoorthy, "연속 분포의 이산 혼합 계산: 비중심 카이스퀘어, 비중심 t 및 표본 다중 상관 계수의 제곱 분포"에서 AS 243 알고리즘에 오류가 있는 것으로 나타났습니다.


따라서 R에는 오류가 있으며 가능한 원인은 CDF를 계산하는 데 사용되는 AS 243 알고리즘에 있습니다.

파일:
TestStatNCT.mq5  16 kb
 
양자 :

1) 이것은 Wolfram에 관한 것이 아닙니다. 0이 아닌 양수 값의 적분은 0이 될 수 없습니다.

2) 확인 과정에서 알고리즘 오류도 발견됐다.

3) 예를 들어, 중심이 아닌 t-분포의 경우 분위수는 반전되지 않습니다.


1 - 감마 분포에 관한 오류에 대해서도 글을 작성하면 귀하에 대한 제 주장을 다룹니다. R에서 이것이 버그라고 말하는 것은 옳지 않습니다. 이 메시지에 레이블을 지정하려는 몇 가지 시도가 있습니다. 분명히, 당신은 패키지를 사용하고 거기에서 오류를 보지 못하는 과학자들과 상의하지 않았습니다. Python의 함수는 0에서 밀도 1도 반환합니다.

다시. 밀도 값은 0으로 정의되지 않습니다. Wolfram은 그것이 0이라고 믿으며 독립적인 조작을 인용하지 않고 이에 동의합니다.

당신은 Wolfram이 그것과 아무 관련이 없다고 말하지만 당신 자신은 0을 0으로 거듭제곱하는 것에 대한 내 질문에 대답할 수 없습니다. 대신 Wolfram을 보여주세요...

올바른 근사에서 값이 1이 된다는 것을 스스로 알 수 있습니다. 즉, 근사의 적분도 0이 아님을 의미합니다. 그리고 0에서는 무한한 양을 적분하는 것이 무의미하기 때문에 밀도뿐만 아니라 거기에도 없습니다.

2 - 알고리즘 오류 등을 추가적으로 확인하여 설정할 수 있습니다.

3) 예를 들어 이를 확인할 수 있습니다.

 
양자 :


예를 들어, 중심이 아닌 t-분포의 경우 분위수가 반전되지 않습니다.


Quantile 0-0.6은 여기에서 잘못 계산됩니다.

 > n <- 10
> k <- seq(0,1,by=1/n)
> nt_pdf<-dt(k, 10.8, 로그 = FALSE)
> nt_cdf<-pt(k, 10.8, 로그 = FALSE)
> quantile<-qt(nt_cdf, 10.8, 로그 = FALSE)
> nt_pdf
[1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13
 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11
> nt_cdf
[1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13
 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12
> k
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> nt_quantile
[1] -Inf -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154
 [7] -1.340781e+154 7.000000e-01 8.000000e-01 9.000000e-01 1.000000e+00
실례지만 코드에서 nt_quantile 변수가 초기화된 위치는 무엇입니까? 즉, 어디에서 왔습니까?
 

1) 점 cdf=0에서 pdf가 0이 아닌 것을 어떻게 설명할 수 있습니까?

 > n<-5
> k <- seq(0,1,by=1/n)
> gamma_pdf<-dgamma(k, 1,1, log = FALSE)
> gamma_cdf<-pgamma(k, 1,1, log = FALSE)
> k
[1] 0.0 0.2 0.4 0.6 0.8 1.0
> 감마_pdf
[1] 1.0000000 0.8187308 0.6703200 0.5488116 0.4493290 0.3678794
> 감마_cdf
[1] 0.0000000 0.1812692 0.3296800 0.4511884 0.5506710 0.6321206

2) 분위수가 원래 분위수와 일치하지 않는다는 것을 어떻게 설명할 수 있습니까?

 > n <- 10
> k <- seq(0,1,by=1/n)
> nt_pdf<-dt(k, 10.8, 로그 = FALSE)
> nt_cdf<-pt(k, 10.8, 로그 = FALSE)
> nt_quantile<-qt(nt_cdf, 10.8, 로그 = FALSE)
> nt_pdf
[1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13
 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11
> nt_cdf
[1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13
 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12
> k
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> nt_quantile
[1] -Inf -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154
 [7] -1.340781e+154 7.000000e-01 8.000000e-01 9.000000e-01 1.000000e+00
 
알렉세이 버나코프 :
실례지만 코드에서 nt_quantile 변수가 초기화된 위치는 무엇입니까? 즉, 어디에서 왔습니까?

죄송합니다. 스크립트에 오타가 있어 수정했습니다.

스크립트는 다음과 같습니다.

 > n <- 10
> k <- seq(0,1,by=1/n)
> nt_pdf<-dt(k, 10.8, 로그 = FALSE)
> nt_cdf<-pt(k, 10.8, 로그 = FALSE)
> nt_quantile<-qt(nt_cdf, 10.8, 로그 = FALSE)
> nt_pdf
[1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13
 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11
> nt_cdf
[1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13
 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12
> k
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> nt_quantile
[1] -Inf -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154
 [7] -1.340781e+154 7.000000e-01 8.000000e-01 9.000000e-01 1.000000e+00
 
양자 :

1) cdf=0 지점에서 pdf가 0이 아닌 것을 어떻게 설명할 수 있습니까?

2) 분위수가 원래 분위수와 일치하지 않는다는 것을 어떻게 설명할 수 있습니까?

생각해보고 답변드리겠습니다. 질문에 항상 질문으로 대답합니까? 자신의 통계적 생각은 어디에 있습니까?
 
알렉세이 버나코프 :

문제는 가장 순수한 형태의 @Quantum이 MQL5 의 R 수학 라이브러리 유사체의 구현 및 전체 검증에 참여하고 있다는 것입니다.

이것은 이론적 추론이 아닙니다. 그리고 그는 라이브러리의 정확성에 대한 확신을 제공하는 단위 테스트를 작성할 때 찾기 위해 깊이 파고듭니다.


R에서 모든 것이 정확하다고 선험적으로 가정할 필요는 없습니다. 오히려 C++의 함수 구현이 있더라도 모든 것이 오히려 원시적으로 구현되었다고 말하고 싶습니다. 그리고 속도 면에서 우리 컴파일러의 소스 코드에 있는 MQL5 라이브러리가 평균 3배의 승리를 거둔 것을 볼 수 있습니다.

모든 것을 다시 확인하기 위해 수고를 했고 명백한 오류를 발견했습니다. 다음 오류가 확인되었습니다.

Lenth가 제안한 AS 243 알고리즘 [Lenth, RV, "Cumulative distribution function of the noncentral t distribution" , Appled Statistics, vol. 38(1989), 185–189]. 이 방법의 장점은 불완전한 베타 함수가 있는 무한 급수의 항을 빠르게 재귀적으로 계산할 수 있다는 것입니다. 그러나 기사에서 [D. Benton, K. Krishnamoorthy, "연속 분포의 이산 혼합물 계산: 비중심 카이스퀘어, 비중심 t 및 표본 다중 상관 계수의 제곱 분포" , Computational Statistics & Data Analysis, 43, (2003), 249-267] 계열의 항을 합산할 때 정확도 추정의 오류로 인해 이 알고리즘은 특히 비중심성 매개변수 델타의 큰 값에 대해 오류(문서의 표 3)를 발생시키는 것으로 나타났습니다. 이 기사의 저자는 중심이 아닌 T-분포 확률의 재귀 계산을 위해 조정된 알고리즘을 제안했습니다.

MQL5 통계 라이브러리에서는 [D. Benton, K. Krishnamoorthy, "연속 분포의 이산 혼합물 계산: 비중심 카이제곱, 비중심 t 및 표본 다중 상관 계수의 제곱 분포" , 전산 통계 및 데이터 분석, 43, (2003), 249-267] . 정확한 결과를 제공합니다.

계산의 정확성을 확인하고 타사 개발자가 라이브러리의 품질을 확인할 수 있도록 하기 위해 배포에 여러 단위 테스트 스크립트를 포함했습니다. /Scripts/UnitTests/Stat 디렉토리에서 찾을 수 있습니다.

발행일자를 봐주세요. 과학자들의 조언과 함께 작업이 어떻게 진행되고 있는지 확인하십시오.

또한 @Quantum 을 과학자로 생각하지 않는 것도 실수입니다.

 

그런 다음 문자 그대로의 순서로 균일 연속 분포의 경우 극점 밀도는 양수이고 적분은 0입니다. https://en.wikipedia.org/wiki/Uniform_distribution_(continuous)

 
레나트 파트훌린 :

문제는 가장 순수한 형태의 @Quantum이 MQL5 의 R 수학 라이브러리 유사체의 구현 및 전체 검증에 참여하고 있다는 것입니다.

이것은 이론적 추론이 아닙니다. 그리고 그는 라이브러리의 정확성에 대한 확신을 제공하는 단위 테스트를 작성할 때 찾기 위해 깊이 파고듭니다.


R에서 모든 것이 정확하다고 선험적으로 가정할 필요는 없습니다. 오히려 C++의 함수 구현이 있더라도 모든 것이 오히려 원시적으로 구현되었다고 말하고 싶습니다. 그리고 속도 면에서 우리 컴파일러의 소스 코드에 있는 MQL5 라이브러리가 평균 3배의 승리를 거둔 것을 볼 수 있습니다.

모든 것을 다시 확인하기 위해 수고를 했고 명백한 오류를 발견했습니다. 다음 오류가 확인되었습니다.

발행일자를 봐주세요. 과학자들의 조언과 함께 작업이 어떻게 진행되고 있는지 확인하십시오.

또한 @Quantum 을 과학자로 생각하지 않는 것도 실수입니다.

나는 이 오류에 대해 아무 말도 하지 않았다. 거기에 그렇게 있습니다.

감마 분포 정보 - 그가 귀하의 구현에 관여하고 있음을 이해합니다. 그리고 나는 이 문제에 대한 그의 주장이 순수한 문자주의임을 반복합니다.

사유: