수학자의 기쁨은 해결하고 싶은 문제가 존재하는 것이며, 그 문제를 해결하면 기쁨은 두 배가 됩니다. NTH_ROOT_OPERATOR: g(x, y) 를 만들어 제곱근, 세제곱근, 네제곱 등의 문제를 동일한 방법으로 해결한 지식을 공유합니다. ruclips.net/video/C8-6uFaIhPo/видео.html
# Copyright 2020.11.04. 신촌우왕TV수학자.천재작곡가 All rights reserved. # Python Code: 임의의 실수(Real Number)에 대한 SQUARE ROOT 값을 구하기 # sqrt("207.109", 50) = "14.39128208326137980853764912599305145192129266880843" # sNUM: 문자열 형식의 입력 숫자 (예: sNUM = '207.109') # nDIGIT: 계산결과에서 원하는 소수점 이하의 자리수 (예: nDIGIT = 50) def sqrt_by_WooKing(sNUM, nDIGIT): u = '' v = sNUM.split('.') # sNUM에 '.'이 없으면 if len(v)==1: u = v[0] + '.' + '0'*(nDIGIT*2) elif len(v)==2: if len(v[1])<nDIGIT*2: u = v[0] + '.' + v[1] + '0'*( nDIGIT*2 - len(v[1]) ) # sNUM: '23.0170' # w[0]: interger part ('23') # w[1]: decimal part ('0140') w = u.split('.') N = int(w[0]) s = [0, N, ''] for i in range(nDIGIT+1): for a in range(10 + N): u = ((s[0])*10 + a)*a v = ((s[0])*10 + a+1)*(a+1) if u <= s[1] and s[1] < v: s[2] += str(a) s[0] = ((s[0])*10 + a) + a idx = i*2 s[1] = int ( str(s[1] - u) + (w[1][idx:(idx+2)]) ) break if i==0: s[2] += '.' # 계산 결과가 s[2]에 들어있음. return s[2] if __name__=='__main__': sNUM = '207.109' nDIGIT = 50 my_sqrt = sqrt_by_WooKing(sNUM, nDIGIT) print('루트 %s의 소수점 %d자리까지의 값: %s'%(sNUM, nDIGIT, my_sqrt)) print("len: ", len(my_sqrt)) # ===================================================== # 루트 207.109의 소수점 50자리까지의 값: # 14.39128208326137980853764912599305145192129266880843 # len: 53 # 14.391282083261379808537649125993 <- Microsoft Windows' Calculator
# Copyright 2020. 신촌우왕TV수학자.천재작곡가 All rights reserved. # 루트 2 = 1.41421356237309504880168872420969807856967187537694 # Python Code: 임의의 자연수에 대한 ROOT 값을 구하기 ROOT = 2 # ROOT 2의 값. 3으로 변경하면 ROOT 3의 값이 구해짐. DIGIT = 50 # 소수점 아래 50자리까지 구하기 s = [0, ROOT, ""] for i in range(DIGIT+1): for a in range(10 + ROOT): u = ((s[0])*10 + a)*a v = ((s[0])*10 + a+1)*(a+1) if u <= s[1] and s[1] < v: s[2] += str(a) s[0] = ((s[0])*10 + a) + a s[1] = (s[1] - u) * 100 break if i==0: s[2] += "." # 계산 결과가 s[2]에 들어있음. print("루트 %d의 소수점 %d자리까지의 값: "%(ROOT, DIGIT), s[2]) # ===================================================== # 루트 2의 소수점 50자리까지의 값: # 1.41421356237309504880168872420969807856967187537694
03:51 이거 이해가 안가는게요 ㅠㅠ 분명 리미트 보내기 전엔, 평균 변화율을 보면, 그 선분이 2차방정식 그래프의 안쪽으로 직선이 그어지잖아요. 그런데 리미트보내면 왜 접선이 된다는건지 모르겠어요. 제 머리 속엔 여전히 포물선을 자르는 형태의, 접선이 아닌, 포물선과 2점에서 만나는 직선이 머리속에 그려지거든요. a와 b가 아무리 가까워도, 서로 다른 두 점이잖아요. a=b는 아닌거잖아요. 포물선과 두 점에서 만나서 포물선을 자르는 직선인데, 어때서 포물선과 한 점에서 접한다고 하죠..? 포물선을 자르는게 아니라 접하기만 한거잖아요. 너무 어려워 극한이란거 ㅠㅠ
ㅎㅎ 그래서 극한이라는거고 완전히 a=b가 될 수는 없지만, 그거에 최대한 가깝게 라는 느낌으로 갈 수 있죠. 어떤 두 점을 잡으면, 그 점과 그 점 사이에 또 다른 점이 생길 수 있죠? 그러면 또 그 사이점을 택하고 택하고 택하는 과정을 무한번 한다고 생각하시면 될 것 같습니다 유한번이 아니라 무한번 이라는게 중요해요
진짜ㅏㅏㅏ 감사해요 찾던거 여기에 있네요 정말 감사합니다 진짜 짱이에요
@@쵸코비-i8l ㅎㅎㅎ저도 감사합니다!
이해는 안가지만 어렵다는걸 알게되었어요 계산기사용할게요 감사합니다....😅
@@memonemo1725 ㅋㅋㅋㅋ
제가 결혼한다면 그건 당신과 함께할껍니다.
잘생겼어요
잘부르시네요..좋아요누르고갑니다
앗 종종 제가 보려고 기록삼아 올려둔건데 민망하네요..ㅎㅎ 감사합니다^^
뒤늦게 수학공부하고 있는 직장인 입니다. 정말 도움이 많이 되었어요! 감사합니다~
ㅎㅎㅎ 감사합니다!!
오와앙 +_+
시그마 속 식에서 r^n이 아니라 r^n-1 아닌가요
k-1로 바꿔야 겠네요^^
지리지리림
왜 고3 다 끝나서 이거 보고 있냐?
👏🏻👏🏻👏🏻👏🏻
지림지림지림
오메 이게 뭐시여 이런 곳이
진짜 감사드립니다... 이 풀이식 어디에 찾아봐도 없었는데 감사해요ㅠㅠ
댓글 감사합니다^^ 도움이 되셨다니 뿌듯하네요
수학자의 기쁨은 해결하고 싶은 문제가 존재하는 것이며, 그 문제를 해결하면 기쁨은 두 배가 됩니다. NTH_ROOT_OPERATOR: g(x, y) 를 만들어 제곱근, 세제곱근, 네제곱 등의 문제를 동일한 방법으로 해결한 지식을 공유합니다. ruclips.net/video/C8-6uFaIhPo/видео.html
# Copyright 2020.11.09. 신촌우왕TV수학자.천재작곡가 All rights reserved. # Reference: ruclips.net/video/-70MzMXpMIc/видео.html (연구 완료: 2020.11.09.) # Python Code: # [쌍곡선(xy=2) + (조화평균 <= 기하평균 <= 산술평균)] 이용하여 square root (K)의 값 구하기 # -------------------------------------------------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------------------------------------------------- # square root (2)의 값 구하기 # xy = 2 # 2xy/(x+y) <= root(xy) <= (x+y)/2 # 4/(x+y) <= root(2) <= (x+y)/2 # (x+y)/2 = m # 2/m <= root(2) <= m # a= m, b = 2/m으로 놓고 [조화평균 <= 기하평균 <= 산술평균] 적용 # 4/(m+2/m) <= root(2) <= (2/m + m) / 2 # 4m / (m^2 + 2) < root(2) <= (m^2 + 2) / 2m # # m: rational number (유리수) # nDIGIT: 소수점 아래 nDIGIT 자리까지 정확히 구하기 # -------------------------------------------------------------------------------------------------------------------------------------------- import decimal def square_root_2(m, nDIGIT): loop_count = 0 while True: loop_count += 1 # v < u u = decimal.Decimal(m**2 + 2) / decimal.Decimal(m*2) v = decimal.Decimal(m*4) / decimal.Decimal(m**2 + 2) if (u - v) < 0.1**(nDIGIT+1): print("loop_count: ", loop_count) return [v, u] m = u # ------------------------------------------------------------------------------------------------ # 일반화 # [쌍곡선(xy=k) + (조화평균 <= 기하평균 <= 산술평균)] 이용하여 square root (k)의 값 구하기 # square root (k)의 값 구하기 # m: rational number (유리수) : seed number # nDIGIT: 소수점 아래 nDIGIT 자리까지 정확히 구하기 # 2km / (m^2 + k) < root(k) <= (m^2 + k) / 2m # ------------------------------------------------------------------------------------------------ def square_root(k, m, nDIGIT): loop_count = 0 while True: loop_count += 1 # v < u u = decimal.Decimal(m**2 + k) / decimal.Decimal(2*m) v = decimal.Decimal(k / u) if (u - v) < 0.1**(nDIGIT+1): print("loop_count: ", loop_count) return [v, u] m = u # -------------------------------------------------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------------------------------------------------- if __name__=='__main__': m = 4 # m > square_root_2 nDIGIT = 27 my_square_root_2 = square_root_2(m, nDIGIT) print("square_root(2)의 값: ") print(my_square_root_2[0], " <- 하한값") print(my_square_root_2[1], " <- 상한값") print(decimal.Decimal(2).sqrt(), " <- 파이썬 root(2)") print() # root(5) k = 5 m = 5 # m > square_root(k) nDIGIT = 27 my_square_root_k = square_root(k, m, nDIGIT) print("square_root(%d)의 값: "%(k)) print(my_square_root_k[0], " <- 하한값") print(my_square_root_k[1], " <- 상한값") print(decimal.Decimal(k).sqrt(), " <- 파이썬 root(%d)"%(k)) print() # -------------------------------------------------------------------------------------------------------------------------------------------- # loop_count: 7 # square_root(2)의 값: # 1.414213562373095048801688724 <- 하한값 # 1.414213562373095048801688724 <- 상한값 # 1.414213562373095048801688724 <- 파이썬 root(2) # loop_count: 7 # square_root(5)의 값: # 2.236067977499789696409173669 <- 하한값 (?) # 2.236067977499789696409173668 <- 상한값 (?) # 2.236067977499789696409173669 <- 파이썬 root(5)...
충성충성
# Copyright 2020.11.05. 신촌우왕TV수학자.천재작곡가 All rights reserved. # 40년 간 이해하지 못하고 미뤄놓았던 루트값에 대해, 최근 3일 동안 연구하여 만족스런 결과를 얻어 냈고 그 지식을 공유합니다. # Python Code (NTH_ROOT_OPERATOR) : x^n = a , x = ? 제곱근, 세제곱근, 네제곱근, ... 모두 해결함. # ruclips.net/video/eTSMuQhQ5TY/видео.html #----------------------------------------------------------------------- # 계승(Factorial) # 3! = 3*2*1 # my_factorial(3) = 3*2*1 #----------------------------------------------------------------------- def my_factorial(n): if n==0: return 1 my_result = 1 for i in range(1, n+1): my_result *= i return my_result #----------------------------------------------------------------------- # 조합(Combination) # nCr = n! / r!(n-r)! # def nCr(n,r): # my_nCr = my_factorial(n) / ( my_factorial(n-r) * my_factorial(r) ) # return int(my_nCr) #----------------------------------------------------------------------- # nCr = nPr / r! def nCr(n, r): if r==0: return 1 if r==n: return 1 my_num_1 = 1 my_num_2 = 1 for i in range(1, r+1): my_num_1 *= i my_num_2 *= (n+1-i) return int (my_num_2 / my_num_1) #----------------------------------------------------------------------- # (10x + y)^n - (10x)^n # = Σ_(1 <= r <= n) nCr (10x)**(n-r) y**(r) # = y * Σ_(1 <= r <= n) nCr (10x)**(n-r) y**(r-1) # # NTH_ROOT_OPERATOR(x, y, n) = Σ_(1 <= r <= n) nCr (10x)**(n-r) y**(r-1) #----------------------------------------------------------------------- def NTH_ROOT_OPERATOR(x, y, n): my_sum = 0 for r in range(1, n+1): my_sum += nCr(n, r) * ( (10*x)**(n-r) ) * ( (y)**(r-1) ) return my_sum #----------------------------------------------------------------------- # n-th root sNUM # x**n = Number(sNUM) # x = nth_root(n, sNUM) # 결과값의 소수점 아래 자리수: nDIGIT #----------------------------------------------------------------------- def nth_root(n, sNUM, nDIGIT): u = '' v = sNUM.split('.') # sNUM에 '.'이 없으면 if len(v)==1: u = v[0] + '.' + '0'*(nDIGIT*n) elif len(v)==2: if len(v[1])<nDIGIT*n: u = v[0] + '.' + v[1] + '0'*( nDIGIT*n - len(v[1]) ) # sNUM: '23.0170' # w[0]: sNUM's interger part ('23') # w[1]: sNUM's decimal part ('0170') w = u.split('.') N = int(w[0]) s = [0, N, ''] for i in range(nDIGIT+1): for z in range(10 + N): u = NTH_ROOT_OPERATOR(s[0], z, n) * z v = NTH_ROOT_OPERATOR(s[0], z+1, n) * (z+1) u = int(u) v = int(v) if u <= s[1] and s[1] < v: s[2] += str(z) s[0] = s[0]*10 + z idx = i*n s[1] = int ( str(s[1] - u) + (w[1][idx:(idx+n)]) ) break if i==0: s[2] += '.' # 계산 결과가 s[2]에 들어있음. return s[2] #----------------------------------------------------------------------- #----------------------------------------------------------------------- if __name__ == '__main__': # "x^5 = 987654321.123456789" n = 3 a = '3' nDIGIT = 50 # 결과값에서 소수점 이하 자리수 my_nth_root = nth_root(n, a, nDIGIT) print('total length: ', len(my_nth_root)) print('%d-th root %s의 소수점 %d자리까지의 값:'%(n, a, nDIGIT)) print(my_nth_root) #----------------------------------------------------------------------- # total length: 53 # 5-th root 987654321.123456789의 소수점 50자리까지의 값: # 1.14869835499703500679862694677792758944385088909779 # # 1.1486983549970350067986269467779 <- Microsoft Windows' Calculator #-----------------------------------------------------------------------
# Copyright 2020.11.04. 신촌우왕TV수학자.천재작곡가 All rights reserved. # Python Code: 임의의 실수(Real Number)에 대한 SQUARE ROOT 값을 구하기 # sqrt("207.109", 50) = "14.39128208326137980853764912599305145192129266880843" # sNUM: 문자열 형식의 입력 숫자 (예: sNUM = '207.109') # nDIGIT: 계산결과에서 원하는 소수점 이하의 자리수 (예: nDIGIT = 50) def sqrt_by_WooKing(sNUM, nDIGIT): u = '' v = sNUM.split('.') # sNUM에 '.'이 없으면 if len(v)==1: u = v[0] + '.' + '0'*(nDIGIT*2) elif len(v)==2: if len(v[1])<nDIGIT*2: u = v[0] + '.' + v[1] + '0'*( nDIGIT*2 - len(v[1]) ) # sNUM: '23.0170' # w[0]: interger part ('23') # w[1]: decimal part ('0140') w = u.split('.') N = int(w[0]) s = [0, N, ''] for i in range(nDIGIT+1): for a in range(10 + N): u = ((s[0])*10 + a)*a v = ((s[0])*10 + a+1)*(a+1) if u <= s[1] and s[1] < v: s[2] += str(a) s[0] = ((s[0])*10 + a) + a idx = i*2 s[1] = int ( str(s[1] - u) + (w[1][idx:(idx+2)]) ) break if i==0: s[2] += '.' # 계산 결과가 s[2]에 들어있음. return s[2] if __name__=='__main__': sNUM = '207.109' nDIGIT = 50 my_sqrt = sqrt_by_WooKing(sNUM, nDIGIT) print('루트 %s의 소수점 %d자리까지의 값: %s'%(sNUM, nDIGIT, my_sqrt)) print("len: ", len(my_sqrt)) # ===================================================== # 루트 207.109의 소수점 50자리까지의 값: # 14.39128208326137980853764912599305145192129266880843 # len: 53 # 14.391282083261379808537649125993 <- Microsoft Windows' Calculator
# Copyright 2020. 신촌우왕TV수학자.천재작곡가 All rights reserved. # 루트 2 = 1.41421356237309504880168872420969807856967187537694 # Python Code: 임의의 자연수에 대한 ROOT 값을 구하기 ROOT = 2 # ROOT 2의 값. 3으로 변경하면 ROOT 3의 값이 구해짐. DIGIT = 50 # 소수점 아래 50자리까지 구하기 s = [0, ROOT, ""] for i in range(DIGIT+1): for a in range(10 + ROOT): u = ((s[0])*10 + a)*a v = ((s[0])*10 + a+1)*(a+1) if u <= s[1] and s[1] < v: s[2] += str(a) s[0] = ((s[0])*10 + a) + a s[1] = (s[1] - u) * 100 break if i==0: s[2] += "." # 계산 결과가 s[2]에 들어있음. print("루트 %d의 소수점 %d자리까지의 값: "%(ROOT, DIGIT), s[2]) # ===================================================== # 루트 2의 소수점 50자리까지의 값: # 1.41421356237309504880168872420969807856967187537694
혹시 개평법으로 세제곱근 구하는 방법 아시나요?
와! 너무 유익해요!
지나가던 고교생입니다 감사합니다
저도 감사합니다~
03:51 이거 이해가 안가는게요 ㅠㅠ 분명 리미트 보내기 전엔, 평균 변화율을 보면, 그 선분이 2차방정식 그래프의 안쪽으로 직선이 그어지잖아요. 그런데 리미트보내면 왜 접선이 된다는건지 모르겠어요. 제 머리 속엔 여전히 포물선을 자르는 형태의, 접선이 아닌, 포물선과 2점에서 만나는 직선이 머리속에 그려지거든요. a와 b가 아무리 가까워도, 서로 다른 두 점이잖아요. a=b는 아닌거잖아요. 포물선과 두 점에서 만나서 포물선을 자르는 직선인데, 어때서 포물선과 한 점에서 접한다고 하죠..? 포물선을 자르는게 아니라 접하기만 한거잖아요. 너무 어려워 극한이란거 ㅠㅠ
ㅎㅎ 그래서 극한이라는거고 완전히 a=b가 될 수는 없지만, 그거에 최대한 가깝게 라는 느낌으로 갈 수 있죠. 어떤 두 점을 잡으면, 그 점과 그 점 사이에 또 다른 점이 생길 수 있죠? 그러면 또 그 사이점을 택하고 택하고 택하는 과정을 무한번 한다고 생각하시면 될 것 같습니다 유한번이 아니라 무한번 이라는게 중요해요
@@m.a.b.167 그니까, 무한번이든 유한번이든, 두 점을 잡는거고, 그 점을 잇는 직선은 포물선을 잘라버리잖아요, 접선이 아니라... 근데 왜 접선이 된다는건지 좀 납득이 안가네염 ㅠ
이게 수학이구나! 물리인줄 ㅋㅋ ㅠㅠ
헐 조립제법도 까먹엇다 ㅠㅠ 분명 배웠는데... x+1로 나누는데 왜 -1을 이용하는지 기억조차 안난다니 ㅠㅠ
감사합니다!!
유익하게 잘 봤습니다!
댓글 감사합니다~!
대학생인데 도움받고가요 ㅎㅎ
댓글 감사합니다~
감사합니다. 도움 정말 많이 됐습니다.
댓글 감사합니다~
중학생인데도 알기 쉽게 설명해주셔서 감사합니다.
네 저도 감사합니다~! 이해하셨다니 대단하시네요
와 고2인데 세특에 쓰기 너무 좋게 설명해주시는 것 같아요 감사합니다.
도움이 되셨다니 감사합니다~
선생님 고맙습니다
잘보고감니다
고등학교 교과서로는 이해하기에 너무 내용이 너무 부족했는데 이렇게 올려 주시다니 감사합니다.
도움이 되셨다니 제가 더 감사합니다~!
잘 보고 갑니다 생신 축하드려요 ~.~.~.~
옆에 잡음이 심해요.ㅠ
에고 카페에서 녹화를 했더니.. 앞으로는 집에서만 해야겠어요
ㄱㅅ
구독 & 따봉
!!