±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 2488  |  »Ø¸´: 9
±¾Ìû²úÉú 4 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴

holmescn

½ð³æ (ÕýʽдÊÖ)

[½»Á÷] Euler ¹¤³Ì µÚ14Ì⣺ÕÒ×µÄÊýÁÐ ÒÑÓÐ6È˲ÎÓë

ÖÜÄ©ÁË£¬·Å¸öÌâ³öÀ´ÍæÍ棺

¶¨ÒåÒ»¸öÕýÕûÊýÊýÁУ¬Æäµü´ú¹«Ê½Îª£º
n = n/2 (µ±nΪżÊý)
n = 3n+1 (µ±nÎªÆæÊý)

±ÈÈç´Ón=13¿ªÊ¼£¬¼ÆËãÕâ¸öÊýÁеãº
13 ->40->20->10->5->16->8->4->1
Õâ¸öÊýÁÐÒ»¹²ÓÐ10Ïî¡£
Õâ¸öÊýÁÐÊDz»ÊÇ×ÜÊÕÁ²µ½1»¹ÊǸöûÓнâ¾öµÄÎÊÌ⣨³ÆÎªCollatz Problem)
²»¹ý£¬ÎÒÃDz¢²»ÊÇÒª½âÕâ¸öÄÑÌ⣬¶øÊÇÒªÇóÔÚСÓÚ1°ÙÍòµÄËùÓÐÆðʼÊýÖУ¬ÄĸöÊýÄܲúÉú×µÄÊýÁС£

ÕâÀïҪעÒâµÄÊÇ£¬ÊýÁÐÖмäµÄÏîÊÇ¿ÉÒÔ´óÓÚ1°ÙÍòµÄ£¬Òª¿´Ìá×îºóÊýÁÐÖÕÖ¹µ½1ʱºòµÄ³¤¶È¡£

PS£ºÕâ¶«Î÷²»ÄÜÓùéÄÉ·¨Ö¤³öÀ´Âð£¿
PS2£º×¢Òâ1·ÖÖÓÔ­Ôò°¡¡£²»¹ý£¬´óÓÚ1·ÖÖӵijÌÐòÒ²¿ÉÒÔ·¢ÉÏÀ´£¬ÕâÑù²ÅÓеĽ»Á÷¡£

Here we go!
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

huycwork

½ð³æ (ÖøÃûдÊÖ)

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+3, ³ÌÐòÇ¿Ìû+1): ÐÁ¿àÁË£¡ 2011-05-20 21:02:20
×òÌìдºÃÕâ¸öÁË£¬C++°æ±¾µÄÊǽ´×Ï£º
CODE:
#include
enum {BUFSZ = 1000000};

size_t eular14(size_t bufsz = 1000000){
        size_t buf[BUFSZ+1];
        size_t max = 1, c, r;
        long long n;
        buf[1] = 1;
        for(int i = 2; i < BUFSZ + 1; ++i){
                n = i;
                c ^= c;
                while(1){
                        if(n < BUFSZ && buf[n])
                                break;
                        ++c;
                        if(n % 2){
                                n = 3*n + 1;
                        }else
                                n = n/2;
                }
                buf[i] = buf[n] + c;
                if(buf[i] > max){
                        max = buf[i];
                        r = i;
                }
        }
        return r;
}

int main(void){
        std::cout< }

äöÎеÄÖÐÐÄÓÐÒ»¿é¿ÕµØ£¬¿Õ¿ÕµÄ¡£
2Â¥2011-05-20 17:05:54
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

wangww2011

ľ³æ (ÖøÃûдÊÖ)

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+1): ˵µ½£¡ 2011-05-20 21:02:42
΢³¾¡¢ÃÎÏë(³ÌÐòÇ¿Ìû+1): ºÜºÃ£¬»¶Ó­³£À´£¡ 2011-05-21 19:18:45
¸ø¸öµü´úËã·¨°É£¬0.05s ÏÈ¿´½á¹û£º
CODE:
max=837799  count=525
elapsed time=0.050000 seconds.

´úÂëΪ
CODE:
#include
#include
#include

#define TIMERSTART clock_t start_time,stop_time;double elapsed_time;start_time = clock();
#define TIMERSTOP stop_time = clock();elapsed_time=(double)(stop_time-start_time)/CLOCKS_PER_SEC;printf("elapsed time=%f seconds.\n",elapsed_time);

#define N 1000001
static int count[N];

int euler14(long long n){
  int result;

  if(n0){
    return count[n];
  }

  if(n%2) {
    n=3*n+1;
  }else {
    n=n/2;
  }
  result=euler14(n);

  if(n     count[n]=result;
  }

  return result+1;
}


int main(void){
  int i=0;
  int max_count,max;

  TIMERSTART;
  count[1]=1;
  
  max_count=0;
  for(i=N-1;i>1;i--){
    if(count[i]==0){
       count[i]=euler14(i);
    }
    if(count[i]>max_count){
      max_count=count[i];
      max=i;
    }
  }

  printf("max=%d  count=%d\n",max,max_count);

  TIMERSTOP;

  return 0;
}

[ Last edited by wangww2011 on 2011-5-21 at 14:14 ]
3Â¥2011-05-20 17:53:37
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

huycwork

½ð³æ (ÖøÃûдÊÖ)

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+3): ¹ÄÀø½»Á÷£¡ 2011-05-20 21:03:01
Õâ¸öÓùéÄÉ·¨Ö¤Ã÷ÊÇÖ¤Ã÷²»³öÀ´µÄ
ǰÌáÌõ¼þ¿ÉÒÔÑ¡2->1
µ«ÊǺóÃæÎÞ·¨×÷³ö¹éÄɼÙÉ裺¾ÍËãÄã¼ÙÉèan -> ak£¬¹éÄɵÄÏÂÒ»²½Öè¾ÍÊÇa(n+1)û·¨ÍƵ¼a(k+1)£¬Äã¿´´úÂë¾ÍÖªµÀÁË£¬ÄãÎÞ·¨ÖªµÀÖмä²úÉúµÄÁ´ÌõÓж೤£¬Êµ¼ÊÔ­ÒòÊÇÎÞ·¨ÖªµÀÖм侭¹ýµÄÔªËØÓÐÄÄЩ£¬µ±È»Ò²¾ÍÎÞ·¨¹éÄÉÖ¤Ã÷¡£
äöÎеÄÖÐÐÄÓÐÒ»¿é¿ÕµØ£¬¿Õ¿ÕµÄ¡£
4Â¥2011-05-20 18:03:01
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

΢³¾¡¢ÃÎÏë

ľ³æ (ÖªÃû×÷¼Ò)

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+1): ¹ÄÀø½»Á÷£¡ 2011-05-20 21:03:21
Õâ²»ÊÇÖøÃûµÄ3x+1ÎÊÌâÂð£¿ÒÔǰд¹ýÕâ¸ö³ÌÐò£¬Ò²ÊÔ×ÅÖ¤¹ýÕâµÀÌ⣬¿´×Åͦ¼òµ¥£¬ÒªÕæÖ¤ÆðÀ´£¬²Å·¢ÏÖ¸ù±¾²»¿ÉÄÜ£¬·ñÔòËüÒ²²»ÊÇÊÀ½çÄÑÌâÁË¡­¡­
ÈηçÔÆ±ä»Ã£¬ÎÒЦ¶ÔÈËÉú£¡
5Â¥2011-05-20 18:27:20
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

libralibra

ÖÁ×ðľ³æ (ÖøÃûдÊÖ)

æôÆï½«¾ü

¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
jjdg(½ð±Ò+2): ÐÁ¿àÁË 2011-05-21 00:51:59
΢³¾¡¢ÃÎÏë(³ÌÐòÇ¿Ìû+1): 2011-05-21 19:19:39
matlabµÄ,13s¶àŶ
CODE:
%% Which starting number, under one million, produces the longest chain?
%   n = n/2 (even); n = 3*n+1 (odd) till n==1
% like starting from 13, we generate the following sequence (contains 10 terms)
%  13 ¡ú 40 ¡ú 20 ¡ú 10 ¡ú 5 ¡ú 16 ¡ú 8 ¡ú 4 ¡ú 2 ¡ú 1

function result = euler14()
tic;
n = 0;
len = 0;
big = 0;
result = 0;
for i=1:1e6
    n = i;
    len = 0;
    while n~=1
        if mod(n,2)==0
            n = n/2;
        else
            n = n*3+1;
        end
        len = len+1;
    end
    len = len+1; % n==1
   
    if len>big
        big = len;
        result = i;
    end
end
toc;
end

½á¹û
CODE:
% Elapsed time is 13.644453 seconds.
% ans =
%       837799

matlab/VB/python/c++/Javaд³ÌÐòÇë·¢QQÓʼþ:790404545@qq.com
6Â¥2011-05-20 21:23:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

½ð³æ (ÕýʽдÊÖ)

΢³¾¡¢ÃÎÏë(³ÌÐòÇ¿Ìû+1): 2011-05-21 19:19:52
matlab¹ûÈ»ÊDz»¸øÁ¦°¡£¬Fortran°æµÄÖ»Òª0.75s
CODE:
Program euler14
    Implicit None
    Integer :: maxLen = 0, l
    Integer(8) :: n
    Integer :: start, maxStart
    Real :: t1, t2
    Call CPU_Time(t1)
   
    Do start = 2, 1000000
        n = start
        l = 0
        Do While (n .gt. 1)
            If(mod(n, 2) .eq. 0) Then
                n = n / 2
            Else
                n = 3*n + 1
            EndIf
            l = l + 1
        EndDo
        l = l + 1
        If(l .gt. maxLen) Then
            maxLen = l
            maxStart = start
        EndIf
    EndDo
    Call CPU_Time(t2)
    Print *, "Result:", maxStart, maxLen, t2-t1
End Program euler14

½á¹ûͬlibralibraͬѧ¡£²»¹ý¿Ö²ÀµÄÊÇ£¬ÖмäÏî¾ÓÈ»»á´óÓÚ40ÒÚ°¡¡£32λÕûÊý¶¼±£´æ²»ÁËÁË¡£×îºó×ܹ²ÓÐ525Ïî¡£Õâ¶«Î÷ÓÃMathematicaµÄNestListÕ¹¿ª»áÊÇʲôÑù£¿

ÏÖÔڵļÆËã»úËÙ¶ÈÌ«¿ìÁË£¬ÒÔÖÁÓÚÎÒÃǶ¼²»ÏëÈ¥ÕÒÒ»¸ö¸üºÃµÄ½â·¨ÁË£¬²»¹ý£¬Õâ¶«Î÷µÄ½â¿Õ¼äÓ¦¸Ã»¹ÄܼõС£¬ÎÒ¿´µ½2µ½3000ÒÔÄÚ¶¼»¹Êǵ¥µ÷ÉÏÕǵÄÄØ¡£
7Â¥2011-05-21 13:40:36
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

wmc_1979

½ð³æ (СÓÐÃûÆø)

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÎÒ¼ÆËã³öÊÇ     837799
ÏîÊý  524

[ Last edited by wmc_1979 on 2011-5-21 at 20:38 ]
8Â¥2011-05-21 20:04:41
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

½ð³æ (ÕýʽдÊÖ)

¡ï
ÓàÔó³É(½ð±Ò+1): лл²ÎÓë½»Á÷£¡ 2011-05-22 11:53:05
ÒýÓûØÌû:
Originally posted by wmc_1979 at 2011-05-21 20:04:41:
ÎÒ¼ÆËã³öÊÇ     837799
ÏîÊý  524

[ Last edited by wmc_1979 on 2011-5-21 at 20:38 ]

µ±n=1µÄʱºò£¬¾ÍÍ˳öÑ­»·ÁË£¬ËùÒÔÈÏΪ×îºó¼ÆÊýµÄʱºòûÓÐÊý1
9Â¥2011-05-22 09:08:54
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

chyanog

½ð³æ (СÓÐÃûÆø)

¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
MathematicaºÍÖеĵݹé¿ÉÒԺܷ½±ãµÄ¡°¼ÇÒ仯¡±£¬ºÜ¼ò½àµ«»¹ÊÇûÓбàÒëºóµÄÑ­»·¿ì£º
Euler ¹¤³Ì µÚ14Ì⣺ÕÒ×µÄÊýÁÐ
CODE:
c@1 = 1; c@n_ := c@n = 1 + If[EvenQ@n, c[n/2], c[3 n + 1]];
Ordering[c /@ Range@1*^6, -1] // AbsoluteTiming


cf = Compile[{{n0, _Integer}},
   Block[{n = N@n0},
    Catch@Do[If[n == 1, Throw@i];
      n = If[FractionalPart[n/2] == 0, n/2, 3*n + 1],
      {i, 1*^8}]
    ], RuntimeAttributes -> Listable,
   CompilationTarget -> "C", RuntimeOptions -> "Speed"
   ];

Ordering[cf@Range@1*^6, -1] // AbsoluteTiming

10Â¥2013-10-05 01:49:15
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ holmescn µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 352·Ö »¯¹¤Óë²ÄÁÏ +4 º£Äɰٴ¨Ly 2026-03-27 4/200 2026-03-28 01:08 by ·ÉÐÐÈÕ¼ÇÎ÷
[¿¼ÑÐ] 315·ÖÇóµ÷¼Á +6 26¿¼ÑÐÉϰ¶°æ26 2026-03-26 6/300 2026-03-27 19:54 by WYUMater
[¿¼ÑÐ] 274Çóµ÷¼Á +17 ¹Ë¾ÅóÏҪǫÐé 2026-03-24 23/1150 2026-03-27 15:16 by caszguilin
[¿¼ÑÐ] ¸´ÊÔµ÷¼Á£¬Ò»Ö¾Ô¸ÄÏÅ©083200ʳƷ¿ÆÑ§Ó빤³Ì +5 XQTJZ 2026-03-26 5/250 2026-03-27 14:49 by ¿ñìÅÂóµ±µ±
[¿¼ÑÐ] 317Çóµ÷¼Á +7 µ°»ÆÏÌÈâôÕ 2026-03-26 7/350 2026-03-27 02:29 by fmesaito
[¿¼ÑÐ] 349Çóµ÷¼Á +5 ½Ü˹ËþÀï˹ 2026-03-21 5/250 2026-03-27 00:31 by wxiongid
[¿¼ÑÐ] µ÷¼ÁÇóÊÕÁô +7 ¹ûÈ»ÓÐÎÒ 2026-03-26 7/350 2026-03-27 00:26 by wxiongid
[¿¼ÑÐ] 321Çóµ÷¼Á +6 Ymlll 2026-03-24 6/300 2026-03-26 20:50 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] 340Çóµ÷¼Á +3 Amber00 2026-03-26 3/150 2026-03-26 18:57 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] Ò»Ö¾Ô¸211 ³õÊÔ270·Ö Çóµ÷¼Á +6 ¹ÈÓêÉϰ¶ 2026-03-23 7/350 2026-03-26 18:55 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] 297Çóµ÷¼Á +6 ÌïºéÓÐ 2026-03-26 6/300 2026-03-26 15:55 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] Ò»Ö¾Ô¸¹þ¹¤´ó£¬085400£¬320£¬Çóµ÷¼Á +4 gdlf9999 2026-03-24 4/200 2026-03-25 23:01 by boxking200
[¿¼ÑÐ] 26¿¼ÑÐ-291·Ö-ÏÃÃÅ´óѧ£¨085601£©-ÈáÐÔµç×ÓѧԺ²ÄÁϹ¤³ÌרҵÇóµ÷¼Á +3 min3 2026-03-24 4/200 2026-03-25 18:22 by xcjcqu
[¿¼ÑÐ] ¿¼ÑÐÒ»Ö¾Ô¸ËÕÖÝ´óѧ³õʼ315£¨Ó¢Ò»£©Çóµ÷¼Á +3 sbdksD 2026-03-24 4/200 2026-03-25 18:16 by xcjcqu
[¿¼ÑÐ] 0854AI CV·½ÏòÕÐÊÕµ÷¼Á +4 ÕÂСÓã567 2026-03-23 4/200 2026-03-25 17:04 by CoderLoser
[¿¼ÑÐ] Ò»Ö¾Ô¸¼ªÁÖ´óѧ²ÄÁÏÓ뻯¹¤303·ÖÇóµ÷¼Á +4 Ϊѧ666 2026-03-24 4/200 2026-03-25 11:27 by BruceLiu320
[¿¼ÑÐ] 292Çóµ÷¼Á +4 ¶ì¶ì¶ì¶î¶î¶î¶î¶ 2026-03-24 4/200 2026-03-24 16:41 by peike
[¿¼ÑÐ] 305·ÖÇóµ÷¼Á£¨Ê³Æ·¹¤³Ì£© +5 Sxy112 2026-03-21 7/350 2026-03-24 12:27 by 544594351
[¿¼ÑÐ] һ־Ըɽ¶«´óѧҩѧѧ˶Çóµ÷¼Á +3 ¿ª¿ªÐÄÐÄû·³ÄÕ 2026-03-23 4/200 2026-03-24 00:06 by ¿ª¿ªÐÄÐÄû·³ÄÕ
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖØÇì´óѧ085700×ÊÔ´Óë»·¾³£¬×Ü·Ö308Çóµ÷¼Á +7 īīĮ 2026-03-23 8/400 2026-03-23 20:36 by Creta
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û