トップページ > プログラム > 2016年08月03日 > B5cRJMaS

書き込み順位&時間帯一覧

3 位/220 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000003013100008



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net

書き込みレス一覧

Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
616 :デフォルトの名無しさん[sage]:2016/08/03(水) 15:17:25.06 ID:B5cRJMaS
sを列の文字列とする
A-Zを A=0, Z=25 の26進数とみなして
s + B..B(Bがsの桁数個) - B が列の番号
だから>>603の下の式のようになる

これの逆変換が求めるものだけど素直にやると桁の左にあるAがなくなってしまうので
一旦 BA..A(Aはsの桁数個)を足しておいて最後にBを削れば良い
それが>>603の上の式
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
618 :デフォルトの名無しさん[sage]:2016/08/03(水) 15:31:21.63 ID:B5cRJMaS
じゃあFixnum#bit_lengthでも使おう
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
619 :デフォルトの名無しさん[sage]:2016/08/03(水) 15:43:49.69 ID:B5cRJMaS
つまりこういうことね
(n + 2 + 24*26**((25*n + 26).bit_length/4.7).to_i/25).to_s(26).tr('0-9a-p', 'A-Z')[1..-1]
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
625 :デフォルトの名無しさん[sage]:2016/08/03(水) 17:02:40.83 ID:B5cRJMaS
まだ行けるのかな
n.to_s(26).tr('0-9a-p',r='@-Y').sub(/(.)@/){$1.tr('A-Z',r)+'Z'}.delete('@') # 75 B
(n+2+24*26**Math.log(25*n+26,26).to_i/25).to_s(26).tr('0-9a-p','A-Z')[1..-1] # 77 B
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
629 :デフォルトの名無しさん[sage]:2016/08/03(水) 18:09:55.37 ID:B5cRJMaS
>>628
Math.logを使うのはいつでも正しいよ
>>626が言ってるのは>>623のこと
bit_lengthを使う方も10**20000くらいまでは正しい
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
630 :デフォルトの名無しさん[sage]:2016/08/03(水) 18:17:06.18 ID:B5cRJMaS
「いつでも」は言いすぎだった
logも9.603431447*10**18989までは正しく動作するよ
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
634 :デフォルトの名無しさん[sage]:2016/08/03(水) 18:39:46.41 ID:B5cRJMaS
>>633
なんかキレてんの? システムに依存しない、アホみたいにでかい数値に対してすらいつでも正しいコードなんて存在するわけないだろ
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
636 :デフォルトの名無しさん[sage]:2016/08/03(水) 19:14:20.38 ID:B5cRJMaS
そうか、なんかすまんかった
いい加減黙ります ゴルフスレとかあったら面白いかもね


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。