[過去ログ] Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
616: デフォルトの名無しさん [sage] 2016/08/03(水) 15:17:25.06 ID:B5cRJMaS(1/8) AAS
sを列の文字列とする
A-Zを A=0, Z=25 の26進数とみなして
s + B..B(Bがsの桁数個) - B が列の番号
だから>>603603(1): デフォルトの名無しさん [sage] 2016/08/02(火) 10:34:33.19 ID:R1uEEgNe(1/3) AAS
もっとうまい方法があるかもしれんが
# n番目の列
(n+2+624*26**log(25*n/26+1,26).to_i/25).to_s(26).tr('0-9a-p','A-Z')[1..-1]
# 列sの数
s.tr('A-Z','0-9a-p').to_i(26)+(26**s.length-26)/25
の下の式のようになる
これの逆変換が求めるものだけど素直にやると桁の左にあるAがなくなってしまうので
一旦 BA..A(Aはsの桁数個)を足しておいて最後にBを削れば良い
それが>>603の上の式
618: デフォルトの名無しさん [sage] 2016/08/03(水) 15:31:21.63 ID:B5cRJMaS(2/8) AAS
じゃあFixnum#bit_lengthでも使おう
619: デフォルトの名無しさん [sage] 2016/08/03(水) 15:43:49.69 ID:B5cRJMaS(3/8) AAS
つまりこういうことね
(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]
625: デフォルトの名無しさん [sage] 2016/08/03(水) 17:02:40.83 ID:B5cRJMaS(4/8) AAS
まだ行けるのかな
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
629: デフォルトの名無しさん [sage] 2016/08/03(水) 18:09:55.37 ID:B5cRJMaS(5/8) AAS
>>628Math.logを使うのはいつでも正しいよ
>>626が言ってるのは>>623623(1): デフォルトの名無しさん [] 2016/08/03(水) 16:53:46.46 ID:/NIG+3Tl(2/5) AAS
n.to_s(26).tr('0-9a-p','@A-Y').sub(/(.)@/){$1.tr('A-Z','@-Y')+'Z'}.sub('@','')
もうちょい短くできそうでできない
のこと
bit_lengthを使う方も10**20000くらいまでは正しい
630: デフォルトの名無しさん [sage] 2016/08/03(水) 18:17:06.18 ID:B5cRJMaS(6/8) AAS
「いつでも」は言いすぎだった
logも9.603431447*10**18989までは正しく動作するよ
634: デフォルトの名無しさん [sage] 2016/08/03(水) 18:39:46.41 ID:B5cRJMaS(7/8) AAS
>>633633(1): デフォルトの名無しさん [sage] 2016/08/03(水) 18:34:18.83 ID:mbys/AN5(6/7) AAS
ついでに言ってやろう
余計な制限のあるコードにはコメントが必須
#logも9.603431447*10**18989までは正しい
+46Bだな
なんかキレてんの? システムに依存しない、アホみたいにでかい数値に対してすらいつでも正しいコードなんて存在するわけないだろ
636: デフォルトの名無しさん [sage] 2016/08/03(水) 19:14:20.38 ID:B5cRJMaS(8/8) AAS
そうか、なんかすまんかった
いい加減黙ります ゴルフスレとかあったら面白いかもね
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s