E D R , A S I H C RSS

3N+1 Problem

•™๊ต—„œ ๋ฌด๋ฃŒ•จ„ ๋‹ฌ๋ž˜๊ธฐ œ„•ด acm programming contest ๊ธฐถœ๋ฌธ œ๋ฅผ ’€–ด๋ณด๋Š”๋ฐ, ToyProblems —„œ๋„ ๋‹ค๋ฃฐ๋งŒ•œ ‰ฌšด ๋ฌธ œ๊ฐ€ žˆ๊ธฐ— ด๋ ‡๊ฒŒ †Œ๊ฐœ•ฉ๋‹ˆ๋‹ค. ›๋ฌธ๋ณด๊ธฐ

ด ๋ฌธ œ๋Š”

ธ๊ธฐ๋„:A(A,B,C), „๊ณต๋ฅ :๋‚ฎŒ(๋‚ฎŒ,๋ณด†ต,๋†’Œ), ๋ ˆ๋ฒจ:1(1~4)

CS—„œ ๋“žฅ•˜๋Š” ๋ฌธ œ˜ ข…๋ฅ˜๋Š” —ฌ๋Ÿฌ๊ฐ€ง€๊ฐ€ žˆ๋Š”๋ฐ (˜ˆ๋ฅผ ๋“ค–ด, NP, Unsolvable, Recursive...) ด ๋ฌธ œ๋Š” 'ž…๋ ฅ— ๋Œ€•ด ถœ๋ ฅด –ด๋–ป๊ฒŒ ๋‚˜˜ฌง€ ๋ชจ๋ฅด๋Š”' ด๋ผ๊ณ  ๋ถ„๋ฅ˜• ๋งŒ•œ ๊ฒƒ— ๋Œ€•œ ๋ถ„„„ •˜๋Š” ๊ฒƒด๋‹ค. (•ด„ด • ๋งค•˜๊ตฐš”; )

๋‹คŒ๊ณผ ๊ฐ™€ •Œ๊ณ ๋ฆฌฆ˜ด žˆ๋‹ค
1. input n
2. print n
3. if n == 1 then STOP
4.    if n is odd then n = 3n + 1
5.    else n = n/2
6. GOTO 2

๋งŒ•ฝ ž…๋ ฅœผ๋กœ 22๊ฐ€ ฃผ–ดกŒ„๋•Œ ถœ๋ ฅ๊ฐ’€ 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 ๊ฐ€ ๋  ๊ฒƒด๋‹ค. ด •Œ๊ณ ๋ฆฌฆ˜€ ๊ฐ„๋‹จ•ด ๋ณดดง€๋งŒ n˜ ๊ฐ’ด 1๋กœ ๋˜–ด •Œ๊ณ ๋ฆฌฆ˜ด ข…๋ฃŒ๋ ง€๋Š” ๋ชจ๋ฅด๋Š” ผด๋‹ค. •˜ง€๋งŒ ด๋Š” 0๊ณผ 1000000 ‚ฌด˜ ˆž, •„๋‹ˆ ด๋ณด๋‹ค ๋” ฐ ˆž— ๋Œ€•ด„œ๋„ n˜ ๊ฐ’ด 1ด ๋œ๋‹ค๊ณ  ฆ๋ช…๋˜—ˆ๋‹ค.

ž…๋ ฅœผ๋กœ 22๊ฐ€ ฃผ–ดกŒ„๋•Œ, ถœ๋ ฅ๋˜๋Š” ๊ฐ’˜ ˆ˜ n(22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1) ๋Š” 22 16ด๋‹ค. ด๋ฅผ n— ๋Œ€•œ cycle-length ๋ผ๊ณ  •œ๋‹ค.

 •ˆ˜ i™€ j — ๋Œ€•ด ๋‘ ˆ˜ ‚ฌด— กดžฌ•˜๋Š” cycle-length ๊ฐ’๋“คค‘˜ ตœ๋Œ€๊ฐ’„ ๊ตฌ•  ๊ฒƒด๋‹ค. ž…๋ ฅ€ •„๋ž˜™€ ๊ฐ™ด •œ „— •œ Œ˜  •ˆ˜๋กœ ด๋ฃจ–ด ธ žˆ๋‹ค. ถœ๋ ฅ๊ฐ’€ ด ๋‘  •ˆ˜ ‚ฌด˜ cycle-length ค‘—„œ ตœ๋Œ€๊ฐ’„ ๊ตฌ•˜๋Š” ๊ฒƒด๋‹ค.

ž…๋ ฅ

1 10
100 200
201 210
900 1000

ถœ๋ ฅ

1 10 20
100 200 125
201 210 89
900 1000 174

’€ด

ž‘„ž ‚ฌšฉ–ธ–ด ๊ฐœ๋ฐœ‹œ๊ฐ„ ฝ”๋“œ ‹ค–‰‹œ๊ฐ„(i=1,j=999999 ๊ธฐค€ 4ˆ †ต๊ณผ)
๊ฐ•ฌ๊ฒฝ Python 1‹œ๊ฐ„ 3N+1Problem/๊ฐ•ฌ๊ฒฝ X
™ฉžฌ„  Python ? 3N+1Problem/™ฉžฌ„  .
๊น€šŒ˜ C++ ? 3N+1Problem/๊น€šŒ˜ .
๋ฌธ๋ณดฐฝ C++ ? 3N+1Problem/๋ฌธ๋ณดฐฝ X
๊ตฌž๊ฒธ C ? 3N+1Problem/๊ตฌž๊ฒธ .
‹ žฌ๋™ C++ 10๋ถ„ 3N+1Problem/‹ žฌ๋™ .
Leonardong Python 46๋ถ„ 3N+1Problem/Leonardong .
๊ณฝ„™˜ C++ ? 3N+1Problem/๊ณฝ„™˜ .
1002 Python 13๋ถ„ 3N+1Problem/1002 .
1002 Python 30๋ถ„ 3N+1Problem/1002_2 No-Psyco : 9.25ˆ, With-Psyco : 3.8ˆ
—ˆ•„˜ C++ 1‹œ๊ฐ„ 20๋ถ„ 3N 1Problem/—ˆ•„˜ .
ด๋„˜„ C++ 1‹œ๊ฐ„ 3n+1/ด๋„˜„ .
ž„ธƒ HaskellLanguage 30๋ถ„ —ฌ๊ธฐ .
๊น€ƒ„ C++ —„ฒญ..ใ…กใ…œ 3N+1/๊น€ƒ„ .

See also BioinfoWiki:AlgorithmQuiz/3Plus1

๋ฌธ œ 2ƒ„


  • ๊ธฐกด˜ ฝ”๋“œ๋ฅผ ˆ˜ ••ด„œ ๊ฐ€žฅ ฐ Cycle Length ๊ฐ€ •„๋‹Œ 3๋ฒˆงธ๋กœ ฐ Cycle Length ๋ฅผ ๊ตฌ•ด๋ณด„š”.
    ž‘„ž ‚ฌšฉ–ธ–ด ๊ฐœ๋ฐœ(ˆ˜ •)‹œ๊ฐ„ ฝ”๋“œ
    1002 Python 16๋ถ„(3๋ถ„) .

“ฐ๋ ˆ๋“œ

‹ค–‰‹œ๊ฐ„(i=1,j=1000000 ๊ธฐค€ 4ˆ †ต๊ณผ)๋Š” ŒŒดฌ˜ ๊ฒฝšฐ ๊ฐ€๋Šฅ• ๋Ÿฐง€ ๋ชจ๋ฅด๊ฒ ๋„š”. ๋‚˜๋ฆ„๋Œ€๋กœ •Œ๊ณ ๋ฆฌฆ˜„ ๋ณด๊ฐ•–ˆ๋Š”๋ฐ๋„ 1, 100000— ๋นŒ๋นŒ ๊ฐ๋ฆฌ๋‹ˆ...--๊ฐ•ฌ๊ฒฝ


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:15
Processing time 0.0189 sec