Welcome to ClientVPS Mirrors

Hailstone Sequences

Hailstone Sequences

Getting Started

After following the “Get Started + Install” guide;

library(collatz)
# Optionally
library(gmp)

hailstone_sequence

Compute a hailstone sequence, which defaults to the total stopping time;

hailstone_sequence(5)
#> $values
#> $values[[1]]
#> [1] 5
#> 
#> $values[[2]]
#> [1] 16
#> 
#> $values[[3]]
#> [1] 8
#> 
#> $values[[4]]
#> [1] 4
#> 
#> $values[[5]]
#> [1] 2
#> 
#> $values[[6]]
#> [1] 1
#> 
#> 
#> $terminalCondition
#> [1] "TOTAL_STOPPING_TIME"
#> 
#> $terminalStatus
#> [1] 5

Or only compute down to the regular stopping time;

hailstone_sequence(5, total_stopping_time=FALSE)
#> $values
#> $values[[1]]
#> [1] 5
#> 
#> $values[[2]]
#> [1] 16
#> 
#> $values[[3]]
#> [1] 8
#> 
#> $values[[4]]
#> [1] 4
#> 
#> 
#> $terminalCondition
#> [1] "STOPPING_TIME"
#> 
#> $terminalStatus
#> [1] 3

Remove verbose messaging;

hailstone_sequence(5, verbose=FALSE)
#> [[1]]
#> [1] 5
#> 
#> [[2]]
#> [1] 16
#> 
#> [[3]]
#> [1] 8
#> 
#> [[4]]
#> [1] 4
#> 
#> [[5]]
#> [1] 2
#> 
#> [[6]]
#> [1] 1

It will also stop on finding a cycle;

hailstone_sequence(-56)
#> $values
#> $values[[1]]
#> [1] -56
#> 
#> $values[[2]]
#> [1] -28
#> 
#> $values[[3]]
#> [1] -14
#> 
#> $values[[4]]
#> [1] -7
#> 
#> $values[[5]]
#> [1] -20
#> 
#> $values[[6]]
#> [1] -10
#> 
#> $values[[7]]
#> [1] -5
#> 
#> $values[[8]]
#> [1] -14
#> 
#> 
#> $terminalCondition
#> [1] "CYCLE_LENGTH"
#> 
#> $terminalStatus
#> [1] 5

And can be parameterised;

hailstone_sequence(3, -1, 3, 1)
#> $values
#> $values[[1]]
#> [1] 3
#> 
#> $values[[2]]
#> [1] -3
#> 
#> $values[[3]]
#> [1] 3
#> 
#> 
#> $terminalCondition
#> [1] "CYCLE_LENGTH"
#> 
#> $terminalStatus
#> [1] 2

Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.

This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.