Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <v8pd42$fdbc$1@dont-email.me>
Deutsch   English   Français   Italiano  
<v8pd42$fdbc$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: "B. Pym" <Nobody447095@here-nor-there.org>
Newsgroups: comp.lang.lisp
Subject: Re: Euler 14.
Date: Mon, 5 Aug 2024 02:24:03 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 54
Message-ID: <v8pd42$fdbc$1@dont-email.me>
References: <v34fp4$iunh$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Injection-Date: Mon, 05 Aug 2024 04:24:04 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="7494c0c807b5ee450e56fbedd80570a2";
	logging-data="505196"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18Rm5ExhsFl7fXLjMydCrGw"
User-Agent: XanaNews/1.18.1.6
Cancel-Lock: sha1:EJJ2FGE9G+rvWcdY48zsuhEBDrY=
Bytes: 2135

B. Pym wrote:

> The following iterative sequence is defined for the set of positive
> integers:
> 
> 	  n -> n/2 (n is even)
> 	  n -> 3n + 1 (n is odd)
> 
> Using the rule above and starting with 13, we generate the following
> sequence:
> 
> 	  13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
> 
> It can be seen that this sequence (starting at 13 and
> finishing at 1) contains 	10 terms. Although it has not been
> proved yet (Collatz Problem), it is thought 	that all starting
> numbers finish at 1.
> 
> Which starting number, under one million, produces the longest chain?
> 
> NOTE: Once the chain starts the terms are allowed to go above one
> million.
> 
> 
> Gauche Scheme
> 
> (use gauche.collection) ;; find-max
> 
> 
> (define (cltz n) (if (odd? n) (+ 1 (* n 3)) (/ n 2)))
> 
> (define (d c n)
>   (if (= n 1) c (d (+ 1 c) (cltz n))))
> 
> (find-max (lrange 1 1000000) :key (pa$ d 1))
> 
>   ===>
> 837799

newLISP

(define (cltz n) (if (odd? n) (+ 1 (* n 3)) (/ n 2)))

(define (d c n) (if (= n 1) c (d (+ 1 c) (cltz n))))

(local (best-n  best-cnt  cnt)
  (for (n 1 999999)
    (setq cnt (d 1 n))
    (if (> cnt best-cnt) (setq best-n n  best-cnt cnt)))
  (list best-n best-cnt))

(837799 525)