[過去ログ]
Perlについての質問箱 64箱目 (1002レス)
Perlについての質問箱 64箱目 http://mevius.5ch.net/test/read.cgi/tech/1548981877/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
867: デフォルトの名無しさん [sage] 2020/12/11(金) 20:46:31.45 ID:vQm1aiEb >>866 アホなの? 他人のコードのバッファオーバーランなんか知らんわ。 自分で責任を持て。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/867
868: デフォルトの名無しさん [sage] 2020/12/11(金) 21:01:49.19 ID:jm3zE7RU 普段は過疎ってるのに少し書き込みがあるとクソ雑魚が湧いてきてグズグズ文句たれる 頭の中どうなってんだろうな http://mevius.5ch.net/test/read.cgi/tech/1548981877/868
869: デフォルトの名無しさん [sage] 2020/12/11(金) 22:34:31.89 ID:Hz2bdcAQ んでんでんで http://mevius.5ch.net/test/read.cgi/tech/1548981877/869
870: デフォルトの名無しさん [sage] 2020/12/11(金) 22:41:46.66 ID:pFqzegRi >>837 だが、実は、このコードは、オレが実際に、数字とかアルファベットとかが 複雑に絡んだ文字列を、ある規則に従ってソートするために作ったものを 流用したんだ。だから、応用範囲が広いという点では、これがいいと思うけどな。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/870
871: デフォルトの名無しさん [sage] 2020/12/11(金) 22:48:30.39 ID:Hz2bdcAQ sortの関数って@_で受けれるの? http://mevius.5ch.net/test/read.cgi/tech/1548981877/871
872: デフォルトの名無しさん [sage] 2020/12/11(金) 23:30:45.59 ID:vQm1aiEb >>870 にしたって、超激遅やで? 要素数が充分に少なきゃええけど。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/872
873: デフォルトの名無しさん [sage] 2020/12/11(金) 23:38:00.26 ID:Hz2bdcAQ どう見ても章のタイトルとかそんなんなので、1000も無いよ 高速化の工夫は遅くて困ってから http://mevius.5ch.net/test/read.cgi/tech/1548981877/873
874: 532 [sage] 2020/12/12(土) 00:28:14.42 ID:tTwN9OuS >>833 perlのsort()アルゴリズムは5,8以降マージソートになってsort結果は安定なアルゴリズムなので 手短にコードを書くなら右の数字でsortしてから左の数字でsortすれば所望の結果が得られる。以下サンプル実装 use List::Util 'shuffle'; %h = map{$_ => $i++} shuffle qw{1-1 1-2 1-3 2-1 2-2 2-3 3-1 3-2 3-3}; use feature qw{say signatures}; no warnings experimental; @k1 = keys %h; say "@k1"; sub f($s) { [$s =~ /(\d+)/g, $s]}; @k2 = map{$$_[2]} sort{$a->[0] <
=> $b->[0]} sort{$a->[1] <=> $b->[1]} map{f $_} @k1; say "@k2"; 実行結果 ~ $ perl 64_833_n-n_sort_1.pl 1-1 2-3 3-3 1-2 3-1 2-2 2-1 1-3 3-2 1-1 1-2 1-3 2-1 2-2 2-3 3-1 3-2 3-3 言語処理系内部のsort()関数のアルゴリズムに依存しない書き方がしたいなら 左と右の数値で二段階のソートをするか、右の数字と左の数値で順位に一貫性のあるキーを作って 一段階のソートで済ませる方法もあると思う。 そういったサンプル実装を見たいのであれば、時間があればくけれども… http://mevius.5ch.net/test/read.cgi/tech/154
8981877/874
875: 532 [sage] 2020/12/12(土) 00:42:28.87 ID:tTwN9OuS つか、実は Tie::IxHash を使ってhashに登録したデータの順番を維持して取り出せれば いいだけの話だったりしてな。しらんけど http://mevius.5ch.net/test/read.cgi/tech/1548981877/875
876: デフォルトの名無しさん [sage] 2020/12/12(土) 00:47:36.64 ID:iq4I9JA8 >>867 アホだなあ http://mevius.5ch.net/test/read.cgi/tech/1548981877/876
877: 532 [sage] 2020/12/12(土) 00:48:12.17 ID:tTwN9OuS >>849 おっとここに十分な解答があったわw http://mevius.5ch.net/test/read.cgi/tech/1548981877/877
878: デフォルトの名無しさん [sage] 2020/12/12(土) 01:06:54.59 ID:4UtPcEnB >>876 Perlでバッファオーバーランを実装する方法を教えてください。w http://mevius.5ch.net/test/read.cgi/tech/1548981877/878
879: デフォルトの名無しさん [sage] 2020/12/12(土) 02:31:23.48 ID:gfhxsiY6 バッファオーバーランつまり out of range なんてすぐ起こせるでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/879
880: デフォルトの名無しさん [sage] 2020/12/12(土) 03:38:37.71 ID:4UtPcEnB >>879 具体的に詳しく! Perlでな? http://mevius.5ch.net/test/read.cgi/tech/1548981877/880
881: 862 [sage] 2020/12/12(土) 09:07:56.06 ID:K38oRjDr pack に誰も食いついてこないのはちょっと寂しいな。 正しくやれば C でさえ 1 回の memcmp で比較が済むのだが。 ましてや、Perl の pack/unpack は Perl4 の時代からある超便利関数なのだが。 まあ、「ひょっとして比較をシンプルにしたいのかな?」と思ったから書いただけだし 今回のニーズには合ってても万能というわけではないし 自分が良いと思う方法でやればいいと思うよ。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/881
882: デフォルトの名無しさん [sage] 2020/12/12(土) 09:26:02.24 ID:kEr/Zqiv 数1つあたりのbit数が決められないがな 何とかしてmap使いたいから無理筋言ってるだけとしか http://mevius.5ch.net/test/read.cgi/tech/1548981877/882
883: 532 [sage] 2020/12/12(土) 10:42:34.69 ID:+ekv//0b >>833 >>874に書いた左の数字と右の数値両方で順位に一貫性のあるキーを作って一回でsortするサンプル 数値は4桁以下であることを仮定してます。 use List::Util 'shuffle'; %h = map{$_ => $i++} shuffle qw{1-1 1-2 1-3 2-1 2-2 2-3 3-1 3-2 3-3}; @k1 = keys %h; print "@k1\n"; @kk = map{[sprintf("%4d%4d", /(\d+)/g), $_]} @k1; @k2 = map{$$_[1]} sort{$$a[0] cmp $$b[0]} @kk; print "@k2\n"; http://mevius.5ch.net/test/read.cgi
/tech/1548981877/883
884: 532 [sage] 2020/12/12(土) 10:47:43.50 ID:+ekv//0b こうやって幾つかコード書いてみて…>>849かTie::IxHashで十分な気がしたわw http://mevius.5ch.net/test/read.cgi/tech/1548981877/884
885: デフォルトの名無しさん [sage] 2020/12/12(土) 13:20:14.94 ID:4UtPcEnB >>881 慣れたヤツには最適解過ぎ、慣れてないヤツには意義がわからん、ということで、そんなに食いつきようがないやろ。w http://mevius.5ch.net/test/read.cgi/tech/1548981877/885
886: デフォルトの名無しさん [] 2020/12/16(水) 23:33:00.22 ID:qMOR0fCG >>833 もしそれが桁数固定で、例えばその例のように一桁の数、ハイフン、一桁の数という文字列ならば、何も考えずにそのまま文字列として比較して sort すればいい。つまりただ sort するだけ。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/886
887: デフォルトの名無しさん [sage] 2020/12/17(木) 05:05:50.95 ID:fz9fvgi4 そんなもんは9で終わる訳がなくて10も100もある筈、と自然に拡張して考える それと同様に、枝番号ならサブサブセクション以降もある筈、という拡張は 自然なのに、そっちには思い至らないんだよな http://mevius.5ch.net/test/read.cgi/tech/1548981877/887
888: デフォルトの名無しさん [sage] 2020/12/17(木) 09:44:28.00 ID:RUflbAwb >>887 外野が考えることじゃない。 >>886は、簡単なケースの例を言ってるだけだから、それでええやろ。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/888
889: デフォルトの名無しさん [sage] 2020/12/18(金) 08:38:15.55 ID:1Xc4Ax1A 「数値でソートしたい」って最初から書いてあるだろ…… http://mevius.5ch.net/test/read.cgi/tech/1548981877/889
890: デフォルトの名無しさん [sage] 2020/12/18(金) 08:53:35.39 ID:lJHaaS7Y 今だけはいいけどすぐに駄目になりそうな設計を、 裏技見つけたみたいにやりたがる奴がいるんだよな ユーザは予想を超えた無茶をしてくるものなのに http://mevius.5ch.net/test/read.cgi/tech/1548981877/890
891: デフォルトの名無しさん [sage] 2020/12/18(金) 09:55:06.92 ID:Kz3E+lfW Keep It Simple, Stupid http://mevius.5ch.net/test/read.cgi/tech/1548981877/891
892: デフォルトの名無しさん [sage] 2020/12/18(金) 09:58:16.29 ID:lJHaaS7Y よい設計というのは自然とシンプルになるものなんだよ http://mevius.5ch.net/test/read.cgi/tech/1548981877/892
893: 849 [sage] 2020/12/18(金) 16:30:11.78 ID:1Xc4Ax1A sub Schwalts { @tmp = @_; @tmp = map { [$_, /(\d+)/g ] } @tmp; @tmp = sort { $a->[1] <=> $b->[1] || $a->[2] <=> $b->[2] } @tmp; ( map { $_->[0] } @tmp); } を短く書いたのがシュワルツ変換だよ くらいの説明はした方がいいのかな。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/893
894: デフォルトの名無しさん [sage] 2020/12/18(金) 21:33:33.71 ID:rUPjISbN まだやってんのかw http://mevius.5ch.net/test/read.cgi/tech/1548981877/894
895: デフォルトの名無しさん [sage] 2020/12/22(火) 10:15:20.24 ID:YhckWNJa 最近raku触ってるけど面白すぎるわこれ、識別子をパース?して組み合わせるの楽しい もうこれ半分lispだろ http://mevius.5ch.net/test/read.cgi/tech/1548981877/895
896: デフォルトの名無しさん [sage] 2020/12/22(火) 12:14:37.88 ID:/kVuwMjM 演算子の前後に空白が必須なの、なんかイヤじゃない? ツメツメで書きたいのに。 Perl6のころだけど、オレが降りた理由のひとつ。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/896
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 106 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.032s