プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part16
https://mevius.5ch.net/test/read.cgi/tech/1573948822/
プログラミングのお題スレ Part17
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/03/13(金) 01:42:47.06ID:0rEhys36459デフォルトの名無しさん
2020/05/06(水) 18:22:42.18ID:izcxg96Z >>442
Kotlin
https://paiza.io/projects/i27KzyH5DRbZTc6mfxL6AA
複数の同一文字を1文字扱いでやる場合はコメントを外して SortedSet に文字を入れる方を有効にする。
Kotlin
https://paiza.io/projects/i27KzyH5DRbZTc6mfxL6AA
複数の同一文字を1文字扱いでやる場合はコメントを外して SortedSet に文字を入れる方を有効にする。
460デフォルトの名無しさん
2020/05/07(木) 05:41:45.37ID:elBmdblJ >>442 Io
File standardInput readLines map(do(
sort .. slice(0,1) .. slice(size)
))unique size println
File standardInput readLines map(do(
sort .. slice(0,1) .. slice(size)
))unique size println
461デフォルトの名無しさん
2020/05/07(木) 08:19:16.73ID:6mNBxlfC >>458
こんなこともできるんだな
こんなこともできるんだな
462デフォルトの名無しさん
2020/05/08(金) 01:18:21.71ID:i1AtDmyk 色んな言語による実装が見られて楽しい。
ロゼッタストーンのように自分が出来ない言語の実装も
お題ごとに見られて面白い
ロゼッタストーンのように自分が出来ない言語の実装も
お題ごとに見られて面白い
463デフォルトの名無しさん
2020/05/08(金) 01:21:58.57ID:+VsvN9e2 回答する人に力量のある人がいて感心する
464デフォルトの名無しさん
2020/05/08(金) 10:32:30.11ID:4QFssqyQ >>451
心が癒される回路である。
心が癒される回路である。
465デフォルトの名無しさん
2020/05/08(金) 19:17:46.66ID:Fn4yfVbS >>442
Haxe で
var input_ary: Array<String> = [ "6", "programming", "odai", "prorgamnimg", "oadi", "pgorgamming", "idao" ];
var str_map = new Map<String, Bool>( );
for ( i in 0...input_ary.length ) {
var char_ary = input_ary[ i ].split( "" );
var tmp_ary = new Array<String>( );
var tmp_str = "";
var char_map = new Map<String, Bool>( );
tmp_str = tmp_str + char_ary[ 0 ] + char_ary[ char_ary.length - 1 ]; // 最初・最後
for ( j in 0...char_ary.length ) {
char_map.set( char_ary[ j ], true ); // 同じ文字を排除
}
for ( ch in char_map.keys( ) ) {
tmp_ary.push( ch );
}
tmp_ary.sort( function( a, b ): Int {
return ( a.charCodeAt( 0 ) > b.charCodeAt( 0 ) ) ? 1 : -1; }
);
for ( k in 0...tmp_ary.length ) {
tmp_str += tmp_ary[ k ];
}
str_map.set( tmp_str, true ); // 重複排除
}
var size = Lambda.count( str_map );
trace( size ); // 4
Haxe で
var input_ary: Array<String> = [ "6", "programming", "odai", "prorgamnimg", "oadi", "pgorgamming", "idao" ];
var str_map = new Map<String, Bool>( );
for ( i in 0...input_ary.length ) {
var char_ary = input_ary[ i ].split( "" );
var tmp_ary = new Array<String>( );
var tmp_str = "";
var char_map = new Map<String, Bool>( );
tmp_str = tmp_str + char_ary[ 0 ] + char_ary[ char_ary.length - 1 ]; // 最初・最後
for ( j in 0...char_ary.length ) {
char_map.set( char_ary[ j ], true ); // 同じ文字を排除
}
for ( ch in char_map.keys( ) ) {
tmp_ary.push( ch );
}
tmp_ary.sort( function( a, b ): Int {
return ( a.charCodeAt( 0 ) > b.charCodeAt( 0 ) ) ? 1 : -1; }
);
for ( k in 0...tmp_ary.length ) {
tmp_str += tmp_ary[ k ];
}
str_map.set( tmp_str, true ); // 重複排除
}
var size = Lambda.count( str_map );
trace( size ); // 4
466デフォルトの名無しさん
2020/05/09(土) 20:03:47.46ID:slqshlLL お題
文字列Sが与えらえる。Sの部分列に"odai"は何個あるか?
[1] odadai => 3
部分列は以下の3通り
oda__i
od__ai
o__dai
[2] odaiodai => 5
[3] ooooddddaaaaiiii => 256
[4] daioadiao => 0
文字列Sが与えらえる。Sの部分列に"odai"は何個あるか?
[1] odadai => 3
部分列は以下の3通り
oda__i
od__ai
o__dai
[2] odaiodai => 5
[3] ooooddddaaaaiiii => 256
[4] daioadiao => 0
467デフォルトの名無しさん
2020/05/09(土) 20:12:38.62ID:I3214lBo >>466
greedy algorithmしか思い浮かばんがいい方法があるのかね
greedy algorithmしか思い浮かばんがいい方法があるのかね
468デフォルトの名無しさん
2020/05/09(土) 20:36:23.26ID:xxoS62Bp つべこべ言ってねえでコード書け
469デフォルトの名無しさん
2020/05/09(土) 21:12:25.27ID:CDHXGmMd >>466
D 再帰の力ってすげー
size_t count_substring(string target, string from) {
if (target.length == 0) {
return 1;
} else if (from.length == 0) {
return 0;
} else if (target[0] == from[0]) {
return count_substring(target[1..$], from[1..$]) + count_substring(target, from[1..$]);
} else {
return count_substring(target, from[1..$]);
}
}
D 再帰の力ってすげー
size_t count_substring(string target, string from) {
if (target.length == 0) {
return 1;
} else if (from.length == 0) {
return 0;
} else if (target[0] == from[0]) {
return count_substring(target[1..$], from[1..$]) + count_substring(target, from[1..$]);
} else {
return count_substring(target, from[1..$]);
}
}
470デフォルトの名無しさん
2020/05/09(土) 22:25:02.05ID:146lBXch >>466
haskell
f [] _=1
f _ []=0
f (x:xs) (y:ys)
| x==y = f xs ys+(f (x:xs) ys)
| otherwise = f (x:xs) ys
f "odai" "odadai" -> 3
haskell
f [] _=1
f _ []=0
f (x:xs) (y:ys)
| x==y = f xs ys+(f (x:xs) ys)
| otherwise = f (x:xs) ys
f "odai" "odadai" -> 3
471デフォルトの名無しさん
2020/05/10(日) 02:37:29.73ID:7LyD5VxZ 完全に再帰案件だったな
472デフォルトの名無しさん
2020/05/10(日) 08:58:28.24ID:4OJfHckY >>466 Ruby
https://ideone.com/AxLfCd
文字列処理を減らしたいので 2pass化
"odadai" => [[0], [1, 3], [2, 4], [5]] # 2passでは 左が小さな組み合わせをカウント
"odaiodai" => [[0, 4], [1, 5], [2, 6], [3, 7]]
https://ideone.com/AxLfCd
文字列処理を減らしたいので 2pass化
"odadai" => [[0], [1, 3], [2, 4], [5]] # 2passでは 左が小さな組み合わせをカウント
"odaiodai" => [[0, 4], [1, 5], [2, 6], [3, 7]]
473466
2020/05/10(日) 13:59:33.90ID:gIVDr8oL 入力サイズが小さいと簡単みたいなので、入力例を追加します。
[1]〜[4]の入力を1000回繰り返した文字列を入力とした場合
[1'] 167501334000
[2'] 668668500500
[3'] 10730784064000
[4'] 999666166500
[1]〜[4]の入力を1000回繰り返した文字列を入力とした場合
[1'] 167501334000
[2'] 668668500500
[3'] 10730784064000
[4'] 999666166500
474デフォルトの名無しさん
2020/05/10(日) 15:14:38.78ID:f3PnDX6/475デフォルトの名無しさん
2020/05/11(月) 00:53:30.08ID:LhYTwRyi マソコ
476デフォルトの名無しさん
2020/05/11(月) 19:02:44.58ID:bA9qwXrL >>474
すごすぎる
すごすぎる
477蟻人間 ◆T6xkBnTXz7B0
2020/05/11(月) 19:04:56.86ID:0EGbwihd お題: 15パズルの解法のプログラム。
478デフォルトの名無しさん
2020/05/11(月) 19:46:15.63ID:R+jEWyVC479デフォルトの名無しさん
2020/05/11(月) 20:40:10.86ID:M5DpbX0A 15 パズルは、絶対に解けないパターンもあるけど
480デフォルトの名無しさん
2020/05/11(月) 21:17:25.91ID:WNe361+M 確率1/2
481デフォルトの名無しさん
2020/05/11(月) 21:29:36.57ID:7ARsAnzF 解けるパターンでやれ
482デフォルトの名無しさん
2020/05/11(月) 23:42:50.17ID:Hyf1216H お題: 15パズルのシャッフルプログラム
483デフォルトの名無しさん
2020/05/11(月) 23:48:03.46ID:72QosWs+484デフォルトの名無しさん
2020/05/12(火) 00:48:01.84ID:1cwWHoSt >>478
C か
C か
485デフォルトの名無しさん
2020/05/12(火) 06:39:50.88ID:DbNVGyl2486デフォルトの名無しさん
2020/05/12(火) 19:39:32.13ID:MKYG7Wu5487デフォルトの名無しさん
2020/05/12(火) 19:42:03.58ID:Yyd7NZU2 >>486
charsじゃなくてeach_charを使うべきだな
charsじゃなくてeach_charを使うべきだな
488デフォルトの名無しさん
2020/05/12(火) 19:43:06.34ID:Yyd7NZU2 ごめんなんでもないわ
489デフォルトの名無しさん
2020/05/12(火) 20:28:19.14ID:Az5UEVMy 前にもRubyにケチつけてるやついたな
そんなにRubyが好きなのか
そんなにRubyが好きなのか
490デフォルトの名無しさん
2020/05/12(火) 23:41:00.64ID:FPX3gN+i だれもrubyにはけちつけてないだろ
自意識過剰
自意識過剰
491デフォルトの名無しさん
2020/05/12(火) 23:56:13.25ID:78VrOqdX だれも〜してないだろって何度も見た言い回しだ
492デフォルトの名無しさん
2020/05/13(水) 00:00:23.33ID:nr6gd5ft よそでやれ
493デフォルトの名無しさん
2020/05/13(水) 00:03:06.87ID:slJfSE7v >>490
Rubyのコードを見るとシュババ!って「Rubyはもっと簡潔に書ける!Rubyはもっと便利なんだ!」だとアピールするやつがいるってこと。
この板にはRubyガイジが蔓延ってるからそいつが脳裏に浮かんだからレスしてみただけです。
Rubyのコードを見るとシュババ!って「Rubyはもっと簡潔に書ける!Rubyはもっと便利なんだ!」だとアピールするやつがいるってこと。
この板にはRubyガイジが蔓延ってるからそいつが脳裏に浮かんだからレスしてみただけです。
494デフォルトの名無しさん
2020/05/13(水) 00:05:48.59ID:5NOWSl2X495デフォルトの名無しさん
2020/05/13(水) 00:07:21.70ID:nBU0Zg0F 短いと簡潔は別だけどな
496デフォルトの名無しさん
2020/05/13(水) 00:21:44.25ID:2w6TZUl8 だれも同じとかいってないだろ
自意識過剰
自意識過剰
497デフォルトの名無しさん
2020/05/13(水) 00:27:54.61ID:6zcLgAPe いや同じだ。
498デフォルトの名無しさん
2020/05/13(水) 00:29:44.51ID:vHp1rr46 よそでやれ
499デフォルトの名無しさん
2020/05/13(水) 00:30:24.48ID:h1pJmPup500デフォルトの名無しさん
2020/05/13(水) 05:39:05.13ID:n5K1RBuf 言われた本人が言うならまだしも外野は黙ってろ
501デフォルトの名無しさん
2020/05/13(水) 08:05:10.41ID:E1Bs+xhk キミも外野ですやん。
502デフォルトの名無しさん
2020/05/13(水) 09:10:17.35ID:n5K1RBuf >>501
死ねキチガイ
死ねキチガイ
503デフォルトの名無しさん
2020/05/13(水) 17:55:10.86ID:m+8rhLrR 0~7を2~19の素数に対応させた回路
digraph g1 {
subgraph cluster_1 {
label = "Solution_1"
aa_1_1, aa_1_1 -> aa_1_3 ; aa_1_2, aa_1_2 -> aa_1_4 ;
aa_1_3, aa_1_0 -> aa_1_5 ; aa_1_4, aa_1_3 -> aa_1_6 ;
aa_1_5, aa_1_0 -> aa_1_7 ; aa_1_5, aa_1_2 -> aa_1_8 ;
aa_1_6, aa_1_6 -> aa_1_9 ; aa_1_7, aa_1_1 -> aa_1_10 ;
aa_1_7, aa_1_7 -> aa_1_11 ; aa_1_8, aa_1_2 -> aa_1_12 ;
aa_1_8, aa_1_6 -> aa_1_13 ; aa_1_9, aa_1_5 -> aa_1_14 ;
aa_1_12, aa_1_5 -> aa_1_15 ; aa_1_12, aa_1_10 -> aa_1_16 ;
}
}
digraph g1 {
subgraph cluster_1 {
label = "Solution_1"
aa_1_1, aa_1_1 -> aa_1_3 ; aa_1_2, aa_1_2 -> aa_1_4 ;
aa_1_3, aa_1_0 -> aa_1_5 ; aa_1_4, aa_1_3 -> aa_1_6 ;
aa_1_5, aa_1_0 -> aa_1_7 ; aa_1_5, aa_1_2 -> aa_1_8 ;
aa_1_6, aa_1_6 -> aa_1_9 ; aa_1_7, aa_1_1 -> aa_1_10 ;
aa_1_7, aa_1_7 -> aa_1_11 ; aa_1_8, aa_1_2 -> aa_1_12 ;
aa_1_8, aa_1_6 -> aa_1_13 ; aa_1_9, aa_1_5 -> aa_1_14 ;
aa_1_12, aa_1_5 -> aa_1_15 ; aa_1_12, aa_1_10 -> aa_1_16 ;
}
}
504デフォルトの名無しさん
2020/05/13(水) 20:50:56.07ID:+xkAlvWp >>502
おめえが死ね
おめえが死ね
505デフォルトの名無しさん
2020/05/13(水) 20:51:34.94ID:NqwOCnph いや私が
506デフォルトの名無しさん
2020/05/13(水) 21:30:04.71ID:jXNyDpel いや俺が
508デフォルトの名無しさん
2020/05/13(水) 22:24:24.32ID:NqwOCnph おまえはしんでいい
509デフォルトの名無しさん
2020/05/13(水) 23:20:16.02ID:dw67B8Yn そこはどうぞどうぞだろ
510デフォルトの名無しさん
2020/05/14(木) 00:37:25.58ID:of1F+sQS 違うだろバカたれどもが
511デフォルトの名無しさん
2020/05/14(木) 00:38:29.74ID:RmYHvTyI クソスレ
512デフォルトの名無しさん
2020/05/14(木) 00:41:44.75ID:EjdWSTcH513デフォルトの名無しさん
2020/05/14(木) 00:54:20.66ID:jR2NR8u3 フォーハンドレッドナインティスリー
514デフォルトの名無しさん
2020/05/14(木) 00:58:18.80ID:9jXLNArV またRuby信者が暴れてるのか
そんなんだから廃れるんだぞ
そんなんだから廃れるんだぞ
515デフォルトの名無しさん
2020/05/14(木) 04:20:05.59ID:v2H0Pbjl >>514
必死過ぎてキモい
必死過ぎてキモい
516デフォルトの名無しさん
2020/05/14(木) 08:19:01.17ID:ATZ04u9M 巣から出てこないで
517デフォルトの名無しさん
2020/05/14(木) 11:14:37.43ID:mLSyRb78 お題: 標準入力から使用言語のインポート文やインクルード文に相当する複数の文が入力される
インポート文のパッケージ名をキーにして複数の文を昇順にソートして出力せよ
例: (Pythonの場合)
in < import abc
import def
from ABC import DEF
out > from ABC import DEF
import abc
import def
インポート文のパッケージ名をキーにして複数の文を昇順にソートして出力せよ
例: (Pythonの場合)
in < import abc
import def
from ABC import DEF
out > from ABC import DEF
import abc
import def
518デフォルトの名無しさん
2020/05/14(木) 12:37:36.92ID:HMZArJeP iostreamが一番上に無いと落ち付かないし、
<>と""が混ざるのもヤダ
<>と""が混ざるのもヤダ
519デフォルトの名無しさん
2020/05/14(木) 12:48:23.09ID:xgmSq5h2 じゃあ勝手にそのルールで作れば
520デフォルトの名無しさん
2020/05/14(木) 16:21:13.66ID:TUXEfYWI #includeは行を前後入れ換えるとエラーになることあるから実用的ではない
まあ例え実用的でなくても要求仕様のとおり作れってことなんでは?
まあ例え実用的でなくても要求仕様のとおり作れってことなんでは?
521デフォルトの名無しさん
2020/05/14(木) 17:58:25.38ID:nTyJBG5I お題の意味を深読みするやつはテストの点が悪い
テストの問題などそれが解けるかどうかを見たいのであって
それ自体に大した意味はない
テストの問題などそれが解けるかどうかを見たいのであって
それ自体に大した意味はない
522デフォルトの名無しさん
2020/05/14(木) 18:53:37.14ID:vCkOIzUf それはそのテストが能力評価試験か
あるいは単なる選別試験化によること
あるいは単なる選別試験化によること
523デフォルトの名無しさん
2020/05/14(木) 19:33:13.92ID:TM7TYhs5 >>517 Ruby
回答が困難な例を考えてみた
require 'etad'.reverse
foo = 'date'
require foo
require %w| json date net cgi |[1]
module Foo module Bar
Car = 'date'
end end
require Foo::Bar::Car
require_relative './foo/../bar/../car/../wrk'
回答が困難な例を考えてみた
require 'etad'.reverse
foo = 'date'
require foo
require %w| json date net cgi |[1]
module Foo module Bar
Car = 'date'
end end
require Foo::Bar::Car
require_relative './foo/../bar/../car/../wrk'
524デフォルトの名無しさん
2020/05/14(木) 19:45:30.93ID:0XakIAB2 馬鹿か。
525デフォルトの名無しさん
2020/05/14(木) 19:59:06.24ID:9P667XH0 お題
ipのフィルタリングを行ってください
許可するipが次の形式で入力されます allow ip
拒否するipが次の形式で入力されます deny ip
チェックするipが次の形式で入力されます ip
アクセスを許可する場合は次の文字列を出力してください allow
アクセスを拒否する場合は次の文字列を出力してください deny
許可するip、拒否するipの形式は次の2つです
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx/xx (CIDR形式)
xxx.xxx.xxx.xxxの場合は、完全一致で判断してください
CIDR形式の場合は、ネットワークアドレスの一致で判断してください
チェックするipの形式はxxx.xxx.xxx.xxxのみです
allowとdenyの優先順について
1. allow ipに該当したらアクセスを許可します
2. 1.に該当せず、deny ipに該当したらアクセスを拒否します
3. 1.に該当せず、2.に該当しない場合アクセスを許可します
例
入力
allow 192.168.11.9
deny 192.178.12.3/8
allow 192.168.23.34/16
192.168.89.99
出力
allow
ipのフィルタリングを行ってください
許可するipが次の形式で入力されます allow ip
拒否するipが次の形式で入力されます deny ip
チェックするipが次の形式で入力されます ip
アクセスを許可する場合は次の文字列を出力してください allow
アクセスを拒否する場合は次の文字列を出力してください deny
許可するip、拒否するipの形式は次の2つです
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx/xx (CIDR形式)
xxx.xxx.xxx.xxxの場合は、完全一致で判断してください
CIDR形式の場合は、ネットワークアドレスの一致で判断してください
チェックするipの形式はxxx.xxx.xxx.xxxのみです
allowとdenyの優先順について
1. allow ipに該当したらアクセスを許可します
2. 1.に該当せず、deny ipに該当したらアクセスを拒否します
3. 1.に該当せず、2.に該当しない場合アクセスを許可します
例
入力
allow 192.168.11.9
deny 192.178.12.3/8
allow 192.168.23.34/16
192.168.89.99
出力
allow
526デフォルトの名無しさん
2020/05/14(木) 20:01:48.04ID:9P667XH0 小規模なシステムだとサーブレットでipのフィルタリングすることあるから結構実用的だと思う
527デフォルトの名無しさん
2020/05/14(木) 20:08:05.34ID:jKQspZfc denyだけ調べりゃいいんでない?
528デフォルトの名無しさん
2020/05/14(木) 20:24:36.69ID:9P667XH0 >>527
そういうわけでもないんよ
例えば
deny 0.0.0.0/0
allow 20.8.5.34
とした場合、20.8.5.34は許可するけど、それ以外は全部拒否っちゃうみたいな
ホワイトリスト方式の使い方も想定してるんよ
システムの入り口のところなので大量のリクエストを裁かなければいけないので
できるだけ高速に動作するように、さらにアクセス制御リストに変更があった場合に
即座に反映するために外部リソースから読み取るようにしておいてみたいなことも
考えると良い暇つぶしになるよー
そういうわけでもないんよ
例えば
deny 0.0.0.0/0
allow 20.8.5.34
とした場合、20.8.5.34は許可するけど、それ以外は全部拒否っちゃうみたいな
ホワイトリスト方式の使い方も想定してるんよ
システムの入り口のところなので大量のリクエストを裁かなければいけないので
できるだけ高速に動作するように、さらにアクセス制御リストに変更があった場合に
即座に反映するために外部リソースから読み取るようにしておいてみたいなことも
考えると良い暇つぶしになるよー
529デフォルトの名無しさん
2020/05/14(木) 20:32:03.68ID:jKQspZfc >>528
なるほど確かにその通りであらう
なるほど確かにその通りであらう
530デフォルトの名無しさん
2020/05/14(木) 20:59:39.91ID:lLI6eB7P 何をあらうんだよ…
531デフォルトの名無しさん
2020/05/14(木) 21:00:22.99ID:wD9bKf3u 足
532蟻人間 ◆T6xkBnTXz7B0
2020/05/14(木) 21:04:20.89ID:AeCxRE84 歴史的仮名遣いだろう
533デフォルトの名無しさん
2020/05/14(木) 21:04:56.76ID:kU1rpgyO534デフォルトの名無しさん
2020/05/14(木) 21:07:43.58ID:wD9bKf3u 説明しなきゃいられないところがオヤジ
535デフォルトの名無しさん
2020/05/14(木) 21:09:08.46ID:kU1rpgyO なんで親父ギャグ(多分)の解説しただけで親父扱いなんですかねぇ
536デフォルトの名無しさん
2020/05/14(木) 21:10:15.88ID:qtdgHxAv 1番恥ずかしいのは>>532君ですね。
537デフォルトの名無しさん
2020/05/14(木) 21:24:44.88ID:wD9bKf3u それは間違いない
538デフォルトの名無しさん
2020/05/14(木) 21:44:56.84ID:bVs50nsv /??la?/であろう
539デフォルトの名無しさん
2020/05/14(木) 21:45:35.19ID:bVs50nsv もじばけ?
/?`lau/
/?`lau/
540デフォルトの名無しさん
2020/05/15(金) 23:46:30.15ID:PLtuBlLM >>525>>528 Perl5
sub na { (((($_[0] << 8) + $_[1]) << 8) + $_[2]) << 8 + $_[3] }
sub iaf { my @rl;
for (split "\n", shift) {
my @f = /(?:(allow|deny)\s+)?(\d+)\.(\d+)\.(\d+)\.(\d+)(?:\/(\d+))?/;
if ($f[0]) {
push @rl, [$f[0], na(@f[1..4]), $f[5]//0];
} else {
$res = 'allow';
for (@rl) { $res = $$_[0] if ($$_[1] & $$_[2]) == (na(@f[1..4]) & $$_[2]) }
print "$_ -> $res\n";
}
}
}
iaf <<EOL;
allow 192.168.11.9
deny 192.178.12.3/8
allow 192.168.23.34/16
192.168.89.99
EOL
iaf <<EOL;
deny 0.0.0.0/0
allow 20.8.5.34
20.8.5.34
EOL
実行結果
~ $ perl 17_525_ip_filt.pl
192.168.89.99 -> allow
20.8.5.34 -> allow
sub na { (((($_[0] << 8) + $_[1]) << 8) + $_[2]) << 8 + $_[3] }
sub iaf { my @rl;
for (split "\n", shift) {
my @f = /(?:(allow|deny)\s+)?(\d+)\.(\d+)\.(\d+)\.(\d+)(?:\/(\d+))?/;
if ($f[0]) {
push @rl, [$f[0], na(@f[1..4]), $f[5]//0];
} else {
$res = 'allow';
for (@rl) { $res = $$_[0] if ($$_[1] & $$_[2]) == (na(@f[1..4]) & $$_[2]) }
print "$_ -> $res\n";
}
}
}
iaf <<EOL;
allow 192.168.11.9
deny 192.178.12.3/8
allow 192.168.23.34/16
192.168.89.99
EOL
iaf <<EOL;
deny 0.0.0.0/0
allow 20.8.5.34
20.8.5.34
EOL
実行結果
~ $ perl 17_525_ip_filt.pl
192.168.89.99 -> allow
20.8.5.34 -> allow
542デフォルトの名無しさん
2020/05/15(金) 23:58:42.92ID:b6XlKvF2 あなたはお腹が空くと、[DENY]ーズにいくのだ[ALLOW]ね。
543540
2020/05/16(土) 00:00:07.30ID:6i7hUAj2 >>540
6行目
× push @rl, [$f[0], na(@f[1..4]), $f[5]//0];
↓
○ push @rl, [$f[0], na(@f[1..4]), -1 & 2**$f[5]-1];
6行目
× push @rl, [$f[0], na(@f[1..4]), $f[5]//0];
↓
○ push @rl, [$f[0], na(@f[1..4]), -1 & 2**$f[5]-1];
544蟻人間 ◆T6xkBnTXz7B0
2020/05/16(土) 00:38:46.63ID:mmCD1xOl お題: ペナルティ方式でパスワードの強度を判定するプログラム。「弱い」「普通」「強い」の3段階で判定する。
5文字より短いパスワードは「ダメ」
「3AAA1567」のような同じ文字が3文字以上並んでる場合は「ダメ」
「1234567」「abcdefg」などの規則的なものは「ダメ」
パスワード辞書に登録されているパスワードは「ダメ」
英単語辞書に登録された単語そのものは「ダメ」
英単語辞書に登録された単語を含むものは「あまり良くない」
英字のみは「あまり良くない」
数字のみは「ダメ」
「2020/5/16」「20.5.16」のような日付に見えるものは「ダメ」
5文字より短いパスワードは「ダメ」
「3AAA1567」のような同じ文字が3文字以上並んでる場合は「ダメ」
「1234567」「abcdefg」などの規則的なものは「ダメ」
パスワード辞書に登録されているパスワードは「ダメ」
英単語辞書に登録された単語そのものは「ダメ」
英単語辞書に登録された単語を含むものは「あまり良くない」
英字のみは「あまり良くない」
数字のみは「ダメ」
「2020/5/16」「20.5.16」のような日付に見えるものは「ダメ」
545540
2020/05/16(土) 00:46:40.04ID:fpR/KoQd あんさんのお代に共通して言えることだけど、
難易度はさておいて、パスワード辞書に登録されているか調べたり
英単語辞書に登録された単語化調べたりするのは
それなりに冗長でサイズがかさんで回答しにくい。(難易度とは別に手間がかかる)
こういうところに出すお題は、もっと手短にかける回答になるないと
対応しにくい
難易度はさておいて、パスワード辞書に登録されているか調べたり
英単語辞書に登録された単語化調べたりするのは
それなりに冗長でサイズがかさんで回答しにくい。(難易度とは別に手間がかかる)
こういうところに出すお題は、もっと手短にかける回答になるないと
対応しにくい
546デフォルトの名無しさん
2020/05/16(土) 01:11:12.68ID:Y5etVgbs おまえはお題コンプマンだしなw?
547540
2020/05/16(土) 01:16:31.49ID:qT19c9Q0 また荒れるようにあおる理由は何よ
548デフォルトの名無しさん
2020/05/16(土) 01:17:01.29ID:lk9pP577 テスト用なんだし適当に辞書に数個のデータ書いとけば良くね?
入力例を書くのと同じようなもんでしょ。
入力例を書くのと同じようなもんでしょ。
550デフォルトの名無しさん
2020/05/16(土) 01:25:07.67ID:lk9pP577 自分が指摘されたら無意味な煽りで逆切れか
551デフォルトの名無しさん
2020/05/16(土) 01:27:06.62ID:MtRD2Sio552デフォルトの名無しさん
2020/05/16(土) 01:38:56.04ID:+1fKeI4G553デフォルトの名無しさん
2020/05/16(土) 01:40:21.32ID:lk9pP577 >>551
貴方は誰だろ
貴方は誰だろ
554デフォルトの名無しさん
2020/05/16(土) 01:45:48.02ID:wIXI/yEm555デフォルトの名無しさん
2020/05/16(土) 01:57:03.11ID:gANc9GME556デフォルトの名無しさん
2020/05/16(土) 02:44:30.09ID:XVsJeOb7 なんでそんな細かい?
案件が何か?
案件が何か?
557デフォルトの名無しさん
2020/05/16(土) 04:31:36.99ID:Oh3+MfsL558デフォルトの名無しさん
2020/05/16(土) 06:25:37.52ID:d1TWh4yW 難しいことはどうでもいいんだよ
糞コテなんかNGに入れて無視しとけ
糞コテなんかNGに入れて無視しとけ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 一人暮らしだからケツ出してみてるけど
