BigDecimalの車輪から始めるまるきゅう

ある友人から

nが奇数ならn=n*7+1、偶数ならn=n/2を繰り返して3が1に収束するかどうか延々計算してるけど僕もう疲れたよ(意訳)

とかいう話が出てたので、ちょいとやってみた。
Javaを使えばBigDecimal*1が標準でくっついてるからものっそ楽っぽいけどあえて多倍長十進整数のとこから車輪

c=10000 : 000000000000000000000001136518323208653796080934272139868411088492596540506451690592301186633614529737752639467145
77043425233341616246183263563312815765780133957515700478617101413161061000989192000577081293867461386125826989675225497134206
65769640560132828187201655674506838953202650489553703986853381451010334133953257421040402307261067158526396692508137795273252
09223846124429682064577299224287460544566123036467224056114984758790524084145440591254871728870088826437023385394001618917435
90098206328523641337773179307525674610957787496476683134241663871489253217703032991924732893078905315454878165782096202176229
29737973381245072817199897611059810731104468748773713714693838082571501633157592445989870212012012126035644851832862936166185
59661868280561626281548621629648925326127287138370409334798435070591022594379456836473947840054223975257438867938306060040643

でかっ
この出力の意味を書いておくと、「10000回上記の計算繰り返したらこれくらいの数字が出てきたよ」ってこと。常識的値じゃ収束しそうにないなこりゃ


メモリ効率はメモリが問題になってから気にするので問題ない、というかメモリ消費は細かいライブラリ的な部分では細かいチューニングより実行時の安定性や開発速度を優先すべきなんだろうな
24桁を16byteで処理したけど、強引に作りすぎて2桁以上の掛け算の実行結果が不定

*1:intやlongのような標準型じゃ表現しきれない大きい数値を処理するためのクラス、仕組み。