14/09/27 20:34:23.55 Chmua2a8
>>78>>80
100万回やっても無理な場合がある。正解がπとかだったらどうするよ?
86:デフォルトの名無しさん
14/09/27 20:37:34.88 2j9vH2tZ
>>85 本当だ 整数とすら言ってなかった
87:デフォルトの名無しさん
14/09/27 21:55:19.08 G9WDbqrY
>>78>>79 Python
URLリンク(ideone.com)
88:デフォルトの名無しさん
14/09/27 22:27:08.87 40eOdFUh
型がわかれば整数の問題とあんまり変わらないだろ
89:山下雄介@上級者 ◆1Bax/hBUwKIJ
14/09/28 00:39:43.55 RZX9lPG9
0と1のみでランダムに生成した文字列Sがある
長さは2<=S<=1000である
11001010110100011001011011111111111111000000000010111000000
同じ文字で連続した文字列の内、他の連続する文字列よりも一番長い文字列をMX
同じ文字で連続した文字列の内、ニ番目に短い文字列をMN
としたときのMXとMNを求めよ
見当たらない場合はFALSEを出力しろ
S=110001010100
MX=3 (000が一番長い)
MN=2 (11または00が二番目に長い)
S=111111
MX=3 (111111が一番長い)
MN=FALSE (2番目に短いものが存在しない)
S=10
MX=FALSE (1番長いのが存在しない)
MX=FALSE (2番目に短いものが存在しない)
90:デフォルトの名無しさん
14/09/28 02:03:02.94 YHDmkQBf
>>89 Haskell
-- 一番長いのの条件がわからんが勝手に解釈した
import Data.List
main = mapM (print.p89) ["11001010110100011001011011111111111111000000000010111000000", "110001010100", "111111", "10"]
p89 s =
let r = nub.reverse.sort.map length$group s
in (if 1<=length r then Just$r!!0 else Nothing, if 2<=length r then Just$r!!1 else Nothing)
(Just 14,Just 10)
(Just 3,Just 2)
(Just 6,Nothing)
(Just 1,Nothing)
91:デフォルトの名無しさん
14/09/28 05:24:03.32 SflzpwZE
>>76
URLリンク(ideone.com)
int main(){ return main();}
92:デフォルトの名無しさん
14/09/28 06:09:53.87 SflzpwZE
>>78
URLリンク(ideone.com)
ほぼC。二分探査だ。嘘は入れてない。
93:デフォルトの名無しさん
14/09/28 07:17:16.29 SflzpwZE
>>89
URLリンク(ideone.com)
ほぼC。適当に書いた。
94:デフォルトの名無しさん
14/09/28 07:31:55.79 7Waj3RIN
>>89 J
0はFALSEとします
連続する文字列は2文字以上とします
f=:2&{.@\:~@~.@(#~ 1&<)@((#;.1)~1,(}.~:}:))
f '110001010100'
3 2
f '111111'
6 0
f '10'
0 0
f '1110001'
3 0
f '11100011'
3 2
95:デフォルトの名無しさん
14/09/28 10:46:12.34 Cu1iOogD
>>89 Python
他よりも一番長い(つまり唯一), (それを除いて)ニ番目に短い と解釈しました。
import re
def f(S):
d = dict()
for m in re.finditer(r"(.)\1*", S):
l,s = len(m.group()),m.group()
if not d.has_key(l):
d[l] = []
d[l].append(s)
M = list(sorted(d.keys()))
MX = M.pop() if len(d[M[-1]]) == 1 else False
MN = M[1] if len(M) >= 2 else False
print "S={} => {}, {}".format(S,MX,MN)
---
S=110001010100 => 3, 2
S=111111 => 6, False
S=10 => False, False
S=0011 => False, False
S=00110 => False, 2
S=001100 => False, False
S=0011000 => 3, False
96:デフォルトの名無しさん
14/09/28 16:33:11.25 lmN8tiDJ
>>78 F#
type answer = Eq | Lt | Gt
let tegima a q = if q = a then Eq elif q < a then Lt else Gt
let inline ask one lo hi tegima =
let rec ask' lo hi =
if lo = hi then lo
else
let q = (lo + hi) / (one+one)
match tegima q with
| Eq -> q
| Lt -> ask' (q+one) hi
| Gt -> ask' lo (q-one)
ask' lo hi
let ask100 = ask 1. 0. 100. >> printfn "%f"
ask100 <| tegima 42. // 42.0
ask100 <| tegima System.Math.PI // 3.141592654
97:デフォルトの名無しさん
14/09/28 19:00:02.66 IeNBSGsI
>>89
例2,3を見ると繰り返し現れる文字列で一番長い物と
二番目の物って意味?
それとも例2はたんに書き間違いで
2文字以上で1番長い物と2番目に長い物?
曖昧な仕様で後々実装後もめるパターンだなw。
98:デフォルトの名無しさん
14/09/28 23:51:21.05 AmQTaudV
>>89 Python
例示とは異なるが、純粋に一番長い連続と二番目に短い連続を取得と解釈(連続は2文字以上からで1文字のみは除外)
あと、「FALSE」はNoneとさせてもらった
更にいうとリハビリがてらの超愚直コードなので広い心で見守っていただきたい・・・
def count_seq(str):
cnt, mx, mn1, mn2 = 1, None, None, None
str += 'X'
for i in xrange(1, len(str)):
if str[i - 1] == str[i]:
cnt += 1
else:
if cnt > 1 and (mx is None or cnt > mx):
mx = cnt
if cnt > 1 and (mn1 is None or cnt < mn1):
mn1, mn2 = cnt, mn1
elif cnt > 1 and cnt > mn1 and (mn2 is None or cnt < mn2):
mn2 = cnt
cnt = 1
return (mx, mn2)
map(count_seq, ('', '0', '1', '10', '111111', '110001010100', '11001010110100011001011011111111111111000000000010111000000'))
→[(None, None), (None, None), (None, None), (None, None), (6, None), (3, 3), (14, 3)]
map(count_seq, ('0011', '00110', '001100', '0011000'))
→[(2, None), (2, None), (2, None), (3, 3)]
99:片山博文MZ次期CEO ◆T6xkBnTXz7B0
14/09/28 23:57:01.74 uLb79luw
お題:穴ありbashをネットワークから探しだしてホストを列挙
100:デフォルトの名無しさん
14/09/29 00:30:40.77 0K8mksjW
ここにはハッカーはいないのか
101:デフォルトの名無しさん
14/09/29 00:58:20.05 LXjsJlBs
>>100
ハッカー様()の模範回答をご教授願うよw
102:デフォルトの名無しさん
14/09/29 02:08:03.92 v6qiSvKu
もうこの脆弱性を使って成長するボットネットが有るらしいけど…
まぁUAをアレにしたブラウザなりクローラなり使えばいいだけ。
103:デフォルトの名無しさん
14/09/29 10:54:40.10 mrmYQHU+
>>89 Squeak Smalltalk
| MXMN |
MXMN := [:S |
| runs MX MN |
runs := (RunArray newFrom: S) runs copyWithout: 1.
MX := runs ifEmpty: [false] ifNotEmpty: [runs max].
MN := (runs copyWithout: MX) ifEmpty: [false] ifNotEmpty: [:runs2 | runs2 max].
{MX. MN}
].
MXMN value: '110001010100'. "=> #(3 2) "
MXMN value: '111111'. "=> #(6 false) "
MXMN value: '10'. "=> #(false false) "
104:山下雄介@上級者 ◆1Bax/hBUwKIJ
14/09/29 18:40:13.84 TuwBUZ1N
トーナメント表を出力しろ
N=参加人数(0<=N<=26の範囲で、2で割り切れる整数)
+-o-+
|xxx|
oxxxo
xx+--o--+xx
xx|xxxxx|xx
+-o-+x+-o-+
|xxx|x|xxx|
oxxxoxoxxxo
105:山下雄介@上級者 ◆1Bax/hBUwKIJ
14/09/29 18:52:35.65 TuwBUZ1N
こんなの13パターン予め作って出力しちゃえばいいんだから初心者でもマジで余裕でしょう