나르시시즘 수
Narcissistic number수 이론에서, 나르시시시즘적인[1][2] 숫자(독극적인 디지털 불변제(PPDI)라고도 알려져 있음),[3] 암스트롱 숫자[4](미카엘 F의 뒤에 있음)가 있다.암스트롱)[5] 또는 주어진 숫자 의 더하기 완벽한 숫자(+)[6]는 각각 숫자 수의 검정력으로 상승된 자체 자릿수의 합이다.
정의
을(를) 자연수가 되게 하라.base > : → 에 대한 나르시시시시시시시시즘 함수를 정의하여 다음과 같이 한다.
여기서 = b + {\}\ loor는 b 및
숫자의 각 자릿수 값이다.만약 Fb(n))n{\displaystyle F_{b}(n)=n는 발생하는 자연수 n{n\displaystyle}은 자기애 수 Fb{\displaystyle F_{b}에 그것이 고정된 포인트},}. 그 자연수 0≤ n<>모든 b{\displaystyle b}에 b{\displaystyle 0\leq n<, b}것들은 사소한 자기애 숫자, 모든. 다른나르시시시즘 수치는 비독점적 나르시시즘적 숫자다.
예를 들어 = 의 숫자 은 나르시시즘 인데,k = 3{\과 +3 + 5^{33^{3}}}}{^{3
A natural number is a sociable narcissistic number if it is a periodic point for , where for a positive integer (here is the 의 반복으로 p 의 주기를 형성한다 나르시시시시즘 는p = {\}을를) 가진 사교적인 나르시시시시시시시시시시시시즘 번호로, 우호적인 나르시시시시시시시시시시시시시시시시시시시시시즘 는p = p = 2이다
모든 자연수 은(는) 베이스에 관계없이 F 에 대한 사전 주기적 지점이다이는 주어진 숫자 카운트 에 n 의 최소 가능 값은 - 1 b1 의 최대 가능 값은 k -1 이고 나르시즘 함수 값은 이기 때문이다.( )= ( b- ) Thus, any narcissistic number must satisfy the inequality . Multiplying all sides by , we get 또는 동등하게 - ) - 1 이후 최대값 에(- 1) b 이 의미( b-1 ) {\의 지수적 특성 때문와 b 의 선형성 이 k ( ) 항상.따라서 나르시시시즘적인 숫자의 수가 한정되어 있으며, 어떤 자연적인 숫자도 주기적인 이나 {\보다 적은 고정된 점까지 도달하도록 보장되어 있어 주기 이전의 지점이 된다 을(를) 10으로 설정하면 베이스 10에서 가장 큰 나르시시시시시즘 숫자는 미만이어야 함을 알 수 있다[1]
() 이(가) 고정 지점에 도달하는 데 필요한 반복 의 수는 나르시시시시즘 함수의 지속성인 n이며 고정 지점에 도달하지 않는 경우 정의되지 않은 것이다.
A base has at least one two-digit narcissistic number if and only if is not prime, and the number of two-digit narcissistic numbers in base equals , where 은(는) 의 양분자 수입니다
9의 배수가 아닌 모든 b 3에는 적어도 세 자리수의 나르시시시즘 번호가 있다.그렇지 않은 베이스는
- 2, 72, 90, 90, 108, 153, 270, 423, 450, 531, 558, 630, 648, 738, 1044, 1098, 1125, 1224, 1287, 1440, 1566, 1620, 1800, 1935, (OEIS에서의 연속 A248970)
베이스 10에는 89개의 나르시시시즘 숫자에 불과하며, 그 중 가장 큰 숫자는 다음과 같다.
- 115,132,219,018,763,992,565,095,597,973,971,522,401
39자리로[1]
특정 b에 대한 F의b 나르시시즘 수 및 주기
모든 숫자는 b 로 표시된다 '#'는 알려진 각 유한 시퀀스의 길이다.
| 나르시시즘 수 | # | 사이클 | OEIS 시퀀스 | |
|---|---|---|---|---|
| 2 | 0, 1 | 2 | ||
| 3 | 0, 1, 2, 12, 22, 122 | 6 | ||
| 4 | 0, 1, 2, 3, 130, 131, 203, 223, 313, 332, 1103, 3303 | 12 | A010344 및 A010343 | |
| 5 | 0, 1, 2, 3, 4, 23, 33, 103, 433, 2124, 2403, 3134, 124030, 124031, 242423, 434434444, ... | 18 | 1234 → 2404 → 4103 → 2323 → 1234 3424 → 4414 → 11034 → 20034 → 20144 → 31311 → 3424 1044302 → 2110314 → 1044302 1043300 → 1131014 → 1043300 | A010346 |
| 6 | 0, 1, 2, 3, 4, 5, 243, 514, 14340, 14341, 14432, 23520, 23521, 44405, 435152, 5435254, 12222215, 555435035 ... | 31 | 44 → 52 → 45 → 105 → 330 → 130 → 44 13345 → 33244 → 15514 → 53404 → 41024 → 13345 14523 → 32253 → 25003 → 23424 → 14523 2245352 → 3431045 → 2245352 12444435 → 22045351 → 30145020 → 13531231 → 12444435 115531430 → 230104215 → 115531430 225435342 → 235501040 → 225435342 | A010348 |
| 7 | 0, 1, 2, 3, 4, 5, 6, 13, 34, 44, 63, 250, 251, 305, 505, 12205, 12252, 13350, 13351, 15124, 36034, 205145, 1424553, 1433554, 3126542, 4355653, 6515652, 125543055, ... | 60 | A010350 | |
| 8 | 0, 1, 2, 3, 4, 5, 6, 7, 24, 64, 134, 205, 463, 660, 661, 40663, 42710, 42711, 60007, 62047, 636703, 3352072, 3352272, ... | 63 | A010354 및 A010351 | |
| 9 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 45, 55, 150, 151, 570, 571, 2446, 12036, 12336, 14462, 2225764, 6275850, 6275851, 12742452, ... | 59 | A010353 | |
| 10 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834, ... | 89 | A005188 | |
| 11 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, 56, 66, 105, 307, 708, 966, A06, A64, 8009, 11720, 11721, 12470, ... | 135 | A0161948 | |
| 12 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, 25, A5, 577, 668, A83, 14765, 938A4, 369862, A2394A, ... | 88 | A161949 | |
| 13 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, 14, 36, 67, 77, A6, C4, 490, 491, 509, B85, 3964, 22593, 5B350, ... | 202 | A0161950 | |
| 14 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, 136, 409, 74AB5, 153A632, ... | 103 | A0161951 | |
| 15 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, C, D, E, 78, 88, C3A, D87, 1774, E819, E829, E829, 7995C, 829BB, A36BC, ... | 203 | A0161952 | |
| 16 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 156, 173, 208, 248, 285, 4A5, 5B0, 5B1, 60B, 64B, 8C0, 8C1, 99A, AA9, AC3, CA8, E69, EA0, EA1, B8D2, 13579, 2B702, 2B722, 5A07C, 5A47C, C00E0, C00E1, C04E0, C04E1, C60E7, C64E7, C80E0, C80E1, C84E0, C84E1, ... | 294 | A161953 |
음의 정수로 확장
나르시시시즘 숫자는 각 정수를 나타내기 위해 부호화된 숫자 표현을 사용함으로써 음의 정수로 확장될 수 있다.
프로그래밍 예제
파이톤
아래의 예는 위 정의에 기술된 나르시시즘 함수를 구현하여 파이썬에서 나르시시즘 함수와 사이클을 검색한다.
반항하다 피디프(x, b): y = x digit_count = 0 하는 동안에 y > 0: digit_count = digit_count + 1 y = y // b 총계 = 0 하는 동안에 x > 0: 총계 = 총계 + 포우(x % b, digit_count) x = x // b 돌아오다 총계 반항하다 ppdif_cycle(x, b): 보이는 = [] 하는 동안에 x 아닌 에 보이는: 보이는.덧셈을(x) x = 피디프(x, b) 사이클을 타다 = [] 하는 동안에 x 아닌 에 사이클을 타다: 사이클을 타다.덧셈을(x) x = 피디프(x, b) 돌아오다 사이클을 타다 다음의 파이톤 프로그램은 입력된 정수가 나르시시즘/암스트롱 숫자인지 여부를 결정한다.
반항하다 no_of_message(숫자): i = 0 하는 동안에 숫자 > 0: 숫자 //= 10 i+=1 돌아오다 i 반항하다 required_sum(숫자): i = no_of_message(숫자) s = 0 하는 동안에 숫자 > 0: 숫자를 매기다 = 숫자 % 10 숫자 //= 10 s += 포우(숫자를 매기다, i) 돌아오다 s 숫자 = 인트로(입력하다("숫자 입력:")) s = required_sum(숫자) 만일 s == 숫자: 인쇄하다("암스트롱 넘버") 다른: 인쇄하다("암스트롱 번호 아님") 자바
다음의 자바 프로그램은 입력된 정수가 나르시시즘/암스트롱 숫자인지 여부를 결정한다.
수입하다 java.util.스캐너; 공중의 계급 암스트롱 넘버 { 공중의 정태의 공허하게 하다 본래의 () { 스캐너 에 = 새로운 스캐너 (시스템.에); 시스템.밖으로.인쇄하다("숫자 입력: "); 인트로 숫자 = 에.넥스트인트(); 곱절로 하다 합계를 내다 = required_sum(숫자); 만일 (숫자 == 합계를 내다) 시스템.밖으로.인쇄하다("암스트롱 넘버"); 다른 시스템.밖으로.인쇄하다("암스트롱 넘버가 아니다"); } 공중의 정태의 인트로 no_of_message(인트로 숫자) { 인트로 i; 을 위해 ( i = 0; 숫자 > 0; i++) 숫자 /= 10; 돌아오다 i; } 공중의 정태의 곱절로 하다 required_sum(인트로 숫자) { 인트로 i = no_of_message(숫자); 곱절로 하다 합계를 내다 = 0; 하는 동안에 (숫자 > 0) { 인트로 숫자를 매기다 = 숫자 % 10; 숫자/=10; 합계를 내다 += 수학.포우(숫자를 매기다,i); } 돌아오다 합계를 내다; } C#
다음의 C# 프로그램은 입력된 정수가 나르시시즘/암스트롱 숫자인지 여부를 결정한다.
사용. 시스템; 공중의 계급 프로그램 { 공중의 정태의 공허하게 하다 메인() { 콘솔.WriteLine("숫자 입력:"); 인트로 가치를 매기다 = 인트로.파스(콘솔.리딩라인()); 만일 (가치를 매기다 == 필수 정보(가치를 매기다)) { 콘솔.WriteLine("암스트롱 넘버"); } 다른 { 콘솔.WriteLine("암스트롱 넘버가 아니다"); } } 사유의 정태의 인트로 백작디지트(인트로 숫자) { 인트로 i = 0; 을 위해 (;숫자 > 0; ++i) 숫자 /= 10; 돌아오다 i; } 사유의 정태의 인트로 필수 정보(인트로 숫자) { 인트로 수를 세다 = 백작디지트(숫자); 인트로 합계를 내다 = 0; 하는 동안에 (숫자 > 0) { 합계를 내다 += (인트로)수학.파우(숫자 % 10, 수를 세다); 숫자 /= 10; } 돌아오다 합계를 내다; } }
C
다음의 C 프로그램은 입력된 정수가 나르시시즘/암스트롱 숫자인지 여부를 결정한다.
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> 인트로 getNumberOfDigits(인트로 n); 바가지 긁다 IsarmstrongNumber(인트로 후보); 인트로 본래의() { 인트로 userNumber = 0; 활자화하다("암스트롱 번호인지 확인할 번호를 입력하십시오. "); 스캔하다("%d", &userNumber); 활자화하다(" %d이 암스트롱 번호인가?: %s\n", userNumber, IsarmstrongNumber(userNumber) ? "진짜" : "거짓말"); 돌아오다 0; } 바가지 긁다 IsarmstrongNumber(인트로 후보) { 인트로 디지트 수 = getNumberOfDigits(후보); 인트로 합계를 내다 = 0; 을 위해(인트로 i = 후보; i != 0; i /= 10) { 인트로 숫자 = i % 10; 인트로 n = 1; 을 위해(인트로 j = 0; j < 디지트 수; j++) { n *= 숫자; } 합계를 내다 += n; } 돌아오다 합계를 내다 == 후보; } 인트로 getNumberOfDigits(인트로 n) { 인트로 합계를 내다 = 0; 하는 동안에(n != 0) { n /= 10; ++합계를 내다; } 돌아오다 합계를 내다; } 루비
다음의 루비 프로그램은 입력된 정수가 나르시시즘/암스트롱의 숫자인지 여부를 결정한다.
반항하다 나르시시즘?(가치를 매기다) #1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 n값 = [] nnum = 가치를 매기다.to_s nnum.각각의 하다 숫자 n값 << 숫자.to_i 종지부를 찍다 합계를 내다 = 0 i = 0 하는 동안에 합계를 내다 <= 가치를 매기다 nsum = 0 n값.every_with_index 하다 숫자,idx nsum += 숫자 ** i 종지부를 찍다 만일 nsum == 가치를 매기다 돌아오다 진실의 다른 i += 1 합계를 내다 += nsum 종지부를 찍다 종지부를 찍다 돌아오다 거짓의 종지부를 찍다 참고 항목
참조
- ^ a b c Weisstein, Eric W. "Narcissistic Number". MathWorld.
- ^ 완벽한 PluPerfect Digital Invariants Scott Moore가 웨이백 머신에 보관한 2007-10-10
- ^ 하비 하인즈(Harvey Heinz)의 PPDI(Armstrong) 번호
- ^ 암스트롱 번호: Dik T.겨울
- ^ 라이오넬 데이멜의 웹 로그
- ^ (OEIS에서 시퀀스 A005188)
- Joseph S. Madachy, Mathical on Bacation, Thomas Nelson & Sons Ltd. 1966, 163-175페이지.
- 로즈, 콜린(2005), 급진적 나르시시즘적 숫자, 레크리에이션 수학 저널, 33(4), 2004-2005 페이지 250-254.
- Walter Schneider의 완벽한 디지털 불변제
외부 링크
- 디지털 불변제
- 암스트롱 넘버
- 암스트롱 넘버 2부터 16까지
- 1-999 계산기 사이의 암스트롱 숫자
- Symonds, Ria. "153 and Narcissistic Numbers". Numberphile. Brady Haran. Archived from the original on 2021-12-19.