プログラミングのお題スレ Part17
■ このスレッドは過去ログ倉庫に格納されています
>>493
気持ちは分かるしそう感じている人は一定数いるが
大人になれ
よそでやれ 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 ;
}
} またRuby信者が暴れてるのか
そんなんだから廃れるんだぞ お題: 標準入力から使用言語のインポート文やインクルード文に相当する複数の文が入力される
インポート文のパッケージ名をキーにして複数の文を昇順にソートして出力せよ
例: (Pythonの場合)
in < import abc
import def
from ABC import DEF
out > from ABC import DEF
import abc
import def iostreamが一番上に無いと落ち付かないし、
<>と""が混ざるのもヤダ #includeは行を前後入れ換えるとエラーになることあるから実用的ではない
まあ例え実用的でなくても要求仕様のとおり作れってことなんでは? お題の意味を深読みするやつはテストの点が悪い
テストの問題などそれが解けるかどうかを見たいのであって
それ自体に大した意味はない それはそのテストが能力評価試験か
あるいは単なる選別試験化によること >>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' お題
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のフィルタリングすることあるから結構実用的だと思う >>527
そういうわけでもないんよ
例えば
deny 0.0.0.0/0
allow 20.8.5.34
とした場合、20.8.5.34は許可するけど、それ以外は全部拒否っちゃうみたいな
ホワイトリスト方式の使い方も想定してるんよ
システムの入り口のところなので大量のリクエストを裁かなければいけないので
できるだけ高速に動作するように、さらにアクセス制御リストに変更があった場合に
即座に反映するために外部リソースから読み取るようにしておいてみたいなことも
考えると良い暇つぶしになるよー >>527はdenyとでないを掛けた洒落
>>529もあろうの歴史的仮名遣いのあらうとallowを掛けた親父ギャグでしょ なんで親父ギャグ(多分)の解説しただけで親父扱いなんですかねぇ >>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 あなたはお腹が空くと、[DENY]ーズにいくのだ[ALLOW]ね。 >>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]; お題: ペナルティ方式でパスワードの強度を判定するプログラム。「弱い」「普通」「強い」の3段階で判定する。
5文字より短いパスワードは「ダメ」
「3AAA1567」のような同じ文字が3文字以上並んでる場合は「ダメ」
「1234567」「abcdefg」などの規則的なものは「ダメ」
パスワード辞書に登録されているパスワードは「ダメ」
英単語辞書に登録された単語そのものは「ダメ」
英単語辞書に登録された単語を含むものは「あまり良くない」
英字のみは「あまり良くない」
数字のみは「ダメ」
「2020/5/16」「20.5.16」のような日付に見えるものは「ダメ」 あんさんのお代に共通して言えることだけど、
難易度はさておいて、パスワード辞書に登録されているか調べたり
英単語辞書に登録された単語化調べたりするのは
それなりに冗長でサイズがかさんで回答しにくい。(難易度とは別に手間がかかる)
こういうところに出すお題は、もっと手短にかける回答になるないと
対応しにくい テスト用なんだし適当に辞書に数個のデータ書いとけば良くね?
入力例を書くのと同じようなもんでしょ。 >>550
お前、変な絡み方するな。
何か文句あるのか >>544
規則的というのがよくわからんな
aceg
13579
314515926
あたりがいいのか悪いのかわからん 難しいことはどうでもいいんだよ
糞コテなんかNGに入れて無視しとけ お題
N×M個の頂点からなる格子状の無向グラフが与えられる。
グラフのエッジは隣同士の頂点を結んでいる。
このグラフの全域木を一つ出力せよ。
ただし、横線と縦線の数は同じでなければならない。
[入力]
N M (N, Mは3以上の奇数)
[出力]
頂点'o'、横線'-'、縦線'|'を使って全域木を描画せよ。(答えは複数あり得る)
[入力例]
3 7
[出力例]
o-o-o-o-o-o-o
|.|.|.|.|.|.|
o.o.o.o.o.o.o
|.....|...|..
o-o-o.o-o.o-o
※表示の都合上、スペースは'.'に置き換えています。 >>572 Ruby
n, m = gets.split.map{|s| s.to_i}
na = [ ['-']*(n+m), [' ']*(n*(m-1)-n-m) ].flatten.shuffle
ma = [ ['|']*(n+m), [' ']*(m*(n-1)-n-m) ].flatten.shuffle
n.times{|y|
puts [ na[y*(m-1)...(y+1)*(m-1)].map{|s|'o'+s}, 'o' ] * ''
puts ma[ y*m...(y+1)*m ].join(' ') if y != n-1
} お題: 入力文字列に機種依存文字が含まれているか判定するプログラム。 >>576 C
#include <stdio.h>
int check( unsigned char uc ){
return( uc == 0x40 || uc >= 0x5b && uc <= 0x5e || uc == 0x60 || uc >= 0x7b && uc <= 0x7e || uc >= 0x80 );
}
void main(){
char ch;
while( (ch = getchar()) != EOF )
check( ch ) && printf( "Check %02X '%c'\n", ch, ch );
} お題: XY平面上の謎のキャラクターPが原点に居てY軸(北)の方向を向いている。Pは何回か次のいずれかのアクションを行う。
アクション1. 90度左に自転する。
アクション2. 90度右に自転する。
アクション3. 一つ前に進む。
入力は、カンマ区切りのアクション番号の並びとする。Pは入力されたアクションを順番に実行する。
出力は、入力の各アクションを実行した後の位置と向き(東西南北)を順番に並べたものとする。
入力例1) 1, 3, 3, 2, 3
入力例2) 3, 2, 3, 1 >>579 Ruby
def moves( str )
x, y = 0, 0
r = 0
ta = [ [0,-1], [1,0], [0,1], [-1,0] ]
ts = %w{北 東 南 西}
str.split(/,\s*/).each{|ch|
case ch
when '1'; r = (r - 1) % 4
when '2'; r = (r + 1) % 4
when '3'
x += ta[r][0]
y += ta[r][1]
end
puts "%3d %3d %s" % [ x, y, ts[r] ]
}
end
moves( "1, 3, 3, 2, 3" )
moves( "3, 2, 3, 1" ) >>579 Ruby
def moves( str )
x, y = 0, 0
dx, dy = 0, -1
ts2 = %w{北 西 \ 東 南 }
str.split(/,\s*/).each{|ch|
case ch
when '1'; dx, dy = dy, -dx
when '2'; dx, dy = -dy, dx
when '3'
x += dx
y += dy
end
puts "%3d %3d %s" % [ x, y, ts2[dx + 2*dy + 2] ]
}
end
moves( "1, 3, 3, 2, 3" )
moves( "3, 2, 3, 1" ) >>579 Ruby
Vectorで書き直して歩数を追加
require 'matrix'
def moves( str )
xy = Vector[ 0, 0, 0 ]
v = Vector[ 0, -1, 1 ]
ts = %w{ 北 西 x 東 南 }
str.split(/,\s*/).each{|ch|
case ch
when '1'; v = Vector[ v[1],-v[0], 1]
when '2'; v = Vector[-v[1], v[0], 1]
when '3'; xy += v
end
puts "%3d %3d %3d歩 %s" % [ xy.to_a, ts[v.dot(Vector[1,2,0])+2] ].flatten
}
end IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0 お題: テキトーに木構造を描画せよ。
入力例)
動物→鳥類、哺乳類
鳥類→ペンギン、アヒル、スズメ
哺乳類→ニワトリ、リス >>586
digraph sample {
subgraph cluster1 {
label="cluster1";
{
動物->鳥類, 哺乳類;
鳥類->ペンギン, アヒル, スズメ;
哺乳類->ニワトリ, リス;
哺乳類, 魚類, 鳥類->アマビエ;
}
}
} ■ このスレッドは過去ログ倉庫に格納されています