1 名前:デフォルトの名無しさん [2014/09/21(日) 00:34:47.71 ID:WCtTxfaP] プログラミングのお題スレです。 前スレ プログラミングのお題スレ Part4 peace.2ch.net/test/read.cgi/tech/1402622093/ プログラミングのお題スレ toro.2ch.net/test/read.cgi/tech/1357191974/ 出されたお題をコーディングして罵られるスレ toro.2ch.net/test/read.cgi/tech/1354393458/ 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 【ソースコードが長くなったら】 codepad.org/ ideone.com/ 宿題は宿題スレがあるのでそちらへ。
2 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 00:50:42.16 ID:bPxcB0NI] GJ!
3 名前:デフォルトの名無しさん [2014/09/21(日) 01:13:44.84 ID:WCtTxfaP] 乙
4 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 01:15:01.08 ID:l8xEPcUn] >>3 自演乙乙
5 名前:デフォルトの名無しさん [2014/09/21(日) 01:17:47.11 ID:sIPFIkfg] ここまでテンプレ。
6 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 02:43:21.38 ID:qEI3EgXS] >>1 乙
7 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 03:05:06.13 ID:94PpjV7B] お題: 1つの整数を引数としてとり、その整数を連想させるひとつの文字列を返す 関数goroawaseを定義してください。 (defun goroawase (n) (goroawase-impl n)) goroawase (goroawase 18782) "いやなやつ" (goroawase (* 18782 2)) "みなごろし" (goroawase 4649) "よろしく"
8 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 04:22:25.56 ID:bPxcB0NI] >>7 ttp://ideone.com/mFbSKT ほぼC。常識を実装することができなかった。
9 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 08:51:48.33 ID:aP8Aq0OA] 出題者が辞書提供するなりサポートしる
10 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 10:52:20.21 ID:GSgALpqv] >>7 十分に曖昧なところがあって、久々に良い問題だと思います。
11 名前:7 mailto:sage [2014/09/21(日) 11:08:48.77 ID:94PpjV7B] >>9 たとえば、SKK 辞書のSKK-JISYO.Lを使ってみてください。 openlab.ring.gr.jp/skk/dic-ja.html
12 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 12:36:12.60 ID:tmQCWq8V] 100cmの正方形がある 左下の角をA、左上から{N}cm右に移動した位置をB、右下の角をCのとき 直線ANと直線NBの長さを求めよ
13 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 12:39:48.50 ID:tmQCWq8V] 1から100までの数字を出力しろ 但し以下の条件がある!! 4で割り切れる場合はFizzを出力しろ 6で割り切れる場合はBuzzを出力しろ 4と6で割り切れる場合はFizzBuzzを出力しろ 5で割り切れる場合は何も出力するな それ以外は数字を出力しろ 出力ごとに改行も入れろ
14 名前:13 mailto:sage [2014/09/21(日) 12:40:50.08 ID:tmQCWq8V] 優先順位は下に描いた条件が高くて上に描いた条件が低い!以上
15 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 13:05:51.37 ID:94PpjV7B] >>12 Emacs Lisp (defun f (N) (let* ((AD 100.0) (CE 100.0) (DE 100.0) (DB (abs N)) (BE (abs (- DE N))) (AB (sqrt (+ (* AD AD) (* DB DB)))) (BC (sqrt (+ (* CE CE) (* BE BE))))) (list AB BC))) f (f 0.0) (100.0 141.4213562373095) (f 100.0) (141.4213562373095 100.0) (f 200.0) (223.60679774997897 141.4213562373095) (f -100.0) (141.4213562373095 223.60679774997897)
16 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 13:35:26.24 ID:94PpjV7B] >>13 Emacs Lisp (require 'cl-lib) cl-lib (let* ((s0 (cl-loop for i from 1 to 100 collect i)) (s1 (cl-remove-if (lambda (x) (and (numberp x) (= (% x 5) 0))) s0)) (s2 (mapcar (lambda (x) (if (and (numberp x) (= (% x 4) 0) (= (% x 6) 0)) 'FizzBuzz x)) s1)) (s3 (mapcar (lambda (x) (if (and (numberp x) (= (% x 6) 0)) 'Buzz x)) s2)) (s4 (mapcar (lambda (x) (if (and (numberp x) (= (% x 4) 0)) 'Fizz x)) s3))) (mapcar (lambda (x) (prog1 (princ x) (terpri))) s4))
17 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 15:14:33.73 ID:xHxnVT5j] >>12 Python def f12(N): A,B,C = complex(0,0),complex(N,100),complex(100,0) print abs(A-B),abs(B-C) for N in [0,100,200,-100]: f12(N) >>13 Python def f13(): for i in range(1,100+1): if i % 5 == 0: pass elif i % 4 == i % 6 == 0: print "FIzzBuzz" elif i % 6 == 0: print "Buzz" elif i % 4 == 0: print "FIzz" else: print i f13()
18 名前: ◆QZaw55cn4c mailto:sage [2014/09/21(日) 15:31:04.57 ID:wB7BYq1/] >>13 >>14 優先順位が文脈として矛盾・混乱しているようだ、優先度の高い順に 5で割り切れる場合は何も出力するな 出力ごとに改行も入れろ 4と6で割り切れる場合はFizzBuzzを出力しろ 4で割り切れる場合はFizzを出力しろ 6で割り切れる場合はBuzzを出力しろ それ以外は数字を出力しろ ということか?codepad.org/9ekLKsYt
19 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 15:33:40.43 ID:xHxnVT5j] 前スレ>>988 Python import re,unicodedata from fractions import Fraction def rpn(L,R): ope = [(i,x) for (i,x) in enumerate(L) if not isinstance(x,list)] if not ope: return reduce(list.__add__, L) a,b = zip(*ope) for pattern in R: m = re.search(r"["+pattern+"]", "".join(b)) if m: break i = a[m.start()] return rpn(L[:i-1] + [L[i-1] + L[i+1] + [m.group(0)]] + L[i+2:],R) def f(q,R=[r"\/",r"\*\%",r"\+\-"]): for zen,han in zip(u"×÷",u"*%"): q = q.replace(zen,han) q = unicodedata.normalize('NFKC', q).encode("utf-8") L,i = [],0 for m in re.finditer(r"["+r"".join(R)+"]", q): if i < m.start(): L.append([q[i:m.start()]]) L,i = L+[m.group(0)],m.end() L = rpn(L+[[q[i:]]],R) FN = dict(zip("*/%+-", ("__mul__","__div__","__div__","__add__","__sub__"))) while len(L) >= 3: for (i,x) in enumerate(L): if not isinstance(x,str) or x not in FN.keys(): continue val = eval("Fraction."+FN[x])(Fraction(L[i-2]), Fraction(L[i-1])) L = L[:i-2] + [val] + L[i+1:] break D = dict(zip("0123456789/", u"0123456789/")) return "".join([D[c] for c in str(L[0])]) for q in [u"9−3÷1/3+1",u"1/2÷3/4÷5/6×7/8"]: print q, u"=", f(q) # = 1, = 7/10
20 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 15:53:30.23 ID:a1i1nJCB] Haskell >>12 main = do print $ p12 0 print $ p12 50 print $ p12 100 print $ p12 200 p12 n = (sqrt $ 100 ^ 2 + n ^ 2, sqrt $ 100 ^ 2 + (100 - n) ^ 2) >>13 import Control.Monad main = putStr p13 p13 = concat $ map p13' [1..100] p13' i | i `mod` 5 == 0 = "" | i `mod` 24 == 0 = "Fizz\n" | i `mod` 6 == 0 = "FizzBuzz\n" | i `mod` 4 == 0 = "Buzz\n" | otherwise = shows i "\n"
21 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 15:55:56.73 ID:a1i1nJCB] インデントが消えてしまった Haskell >>12 main = do print $ p12 0 print $ p12 50 print $ p12 100 print $ p12 200 p12 n = (sqrt $ 100 ^ 2 + n ^ 2, sqrt $ 100 ^ 2 + (100 - n) ^ 2) >>13 import Control.Monad main = putStr p13 p13 = concat $ map p13' [1..100] p13' i | i `mod` 5 == 0 = "" | i `mod` 24 == 0 = "Fizz\n" | i `mod` 6 == 0 = "FizzBuzz\n" | i `mod` 4 == 0 = "Buzz\n" | otherwise = shows i "\n"
22 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 16:07:39.14 ID:lheHZeoo] >>7 Io 語呂合わせは大変そうなので形で f:=method(n, n asString translate("0123456789","OlZMYSbTBq")) Io> f(18782) ==> lBTBZ Io> f(20140921) ==> ZOlYOqZl
23 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 18:56:27.05 ID:lheHZeoo] >>13 Julia for i=1:100 if i%5!=0 println([i,"Fizz","Buzz","FizzBuzz"][(i%4==0)+(i%6==0)*2+1]) end end
24 名前:デフォルトの名無しさん mailto:sage [2014/09/21(日) 19:32:05.93 ID:XXBNRbyT] 前スレ>988 Perl ideone.com/c0uVt5 >>13 Perl ideone.com/BPABg3
25 名前:デフォルトの名無しさん [2014/09/21(日) 20:22:35.10 ID:Pi8eAmCa] 「COBOLを学んだ学生は学ばなかった学生より年収が高い」という調査結果 で、COBOLって何?外国語? [422953454] fox.2ch.net/test/read.cgi/poverty/1411297602/
26 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 00:53:13.48 ID:K4AAoL/i] |=番兵|_ ( ・ω・) < ステンバーイ 〇={=}〇 ∧,, ∧ |::::::::::\ (*‘ω‘ *) 、、、し 、、、(((.@)vv、vvv 、、(、v、)っv、、
27 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 13:18:29.60 ID:Sj64dDvb] お題:nこの角砂糖でできる直方体は何種類あるか?
28 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 13:23:18.58 ID:nxPUfGJM] w=横 h=縦 左上の角から右下に進む 地面に着いたら右上に進む これの繰り返す w, h = 10, 3 !---!---!- -!-!-!-!-! --!---!--- w, h = 11, 5 !-------!-- -!-----!-!- --!---!---! ---!-!----- ----!------
29 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 13:53:50.32 ID:V8hRXHRh] >>28 書いたけどスパゲティ・・ ideone.com/uESKjY
30 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 15:02:58.66 ID:+X2nrags] >>12 ttp://ideone.com/aNkcBn ほぼC。余弦定理使ってみた。数学わからないのであってるかわからない。 数学怖い。Orz
31 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 15:05:29.10 ID:zUzK8u9G] よげんていり? チンチンのそり具合が男の甲斐性を表すていりか
32 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 15:23:00.37 ID:+X2nrags] >>13 ttp://ideone.com/Pcmsgn ほぼC。適当に書いたのであってるかわからん。
33 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 15:32:22.26 ID:+X2nrags] >>27 ttp://ideone.com/fKXJLL ほぼC。あってるのかこれ。 ちなみに重複を含んでいる。
34 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 15:46:01.11 ID:+X2nrags] 平面と立体を勘違いしていたので修正しておいた。
35 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 15:49:36.84 ID:+X2nrags] >>31 曲がってると適応できないんじゃないか? よく知らんけど。 弧の長さってなんか求め方あった気がする。
36 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 16:20:35.26 ID:+X2nrags] >>28 ttp://ideone.com/ikLOBL ほぼC。字幅をそろえるためにエクスクラメーションマークは使わなかった。
37 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 16:22:47.32 ID:+X2nrags] これで追いついたかな。ふー。Orz
38 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 18:12:27.12 ID:X31W0Us4] >>28 Python def f(w,h): d ={True:"!",False:"-"} n = (h-1)*2 print "w,h={},{}".format(w,h) print "\n".join(["".join([d[i==j or i+j==n] for i in range(n)]*int((w+n-1)/n))[:w] for j in range(h)]) f(10,3) f(11,5)
39 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 18:24:51.72 ID:Sj64dDvb] >>28 Io f:=method(w,h, for(i,0,h-1, for(j,0,w-1, if((j+i)%(h*2-2)==0 or (j-i)%(h*2-2)==0,"!","-")print ) writeln ) ) Io> f(10,3) !---!---!- -!-!-!-!-! --!---!--- ==> nil Io> f(11,5) !-------!-- -!-----!-!- --!---!---! ---!-!----- ----!------ ==> nil
40 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 19:19:42.10 ID:+X2nrags] >>28 ttp://ideone.com/aXUKqy ほぼC。逐次実行版。 >>39 と同じような考え方だと思うけど、俺、遅かったな。
41 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 19:57:43.67 ID:cXCm9hNa] >>28 C ほぼ同じ ideone.com/PHJo1l
42 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 20:22:16.98 ID:+X2nrags] >>41 みて気づいたけど、>>40 はH=1にするとゼロ割で死ぬかも。 うほー。ギブギブ。
43 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 22:00:20.04 ID:X31W0Us4] >>27 Python def f(n): return [(x,y,n/(x*y)) for x in range(1,n+1) if n % x == 0 for y in range(x,n/x+1) if n % (x*y) == 0 if n/(x*y) >= y] for i in [1,10,11,12,16,24]: L = f(i) print "n={} => {} {}".format(i, len(L), L) --- n=1 => 1 [(1, 1, 1)] n=10 => 2 [(1, 1, 10), (1, 2, 5)] n=11 => 1 [(1, 1, 11)] n=12 => 4 [(1, 1, 12), (1, 2, 6), (1, 3, 4), (2, 2, 3)] n=16 => 4 [(1, 1, 16), (1, 2, 8), (1, 4, 4), (2, 2, 4)] n=24 => 6 [(1, 1, 24), (1, 2, 12), (1, 3, 8), (1, 4, 6), (2, 2, 6), (2, 3, 4)]
44 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 22:39:22.69 ID:jTYzX03g] >>28 の問題を競技プログラミング風に改変 左上の座標を(x, y) = (0, 0)、右下の座標を(w - 1, h - 1)とする。 右端(x = w - 1)に到達した時のy座標を求めよ。 制約条件: 1 <= w <= 1000000000000 1 <= h <= 1000000000000
45 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 23:03:30.30 ID:ovWIGVx9] >>28 Squeak Smalltalk | zigzag | zigzag := [:w :h | | lines | lines := (Array new: h withAll: (String new: w withAll: $-)) deepCopy. lines := lines, lines reversed allButFirst allButLast. (1 to: w) do: [:pos | (lines atWrap: pos) at: pos put: $!]. (lines first: h) asStringWithCr ]. zigzag value: 10 value: 3. "=> !---!---!- -!-!-!-!-! --!---!--- " zigzag value: 11 value: 5. "=> !-------!-- -!-----!-!- --!---!---! ---!-!----- ----!------ "
46 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 23:31:33.29 ID:cXCm9hNa] >>44 --h - abs(--w % (h * 2 + !h) - h)
47 名前:デフォルトの名無しさん [2014/09/23(火) 01:19:32.94 ID:o0+soP+b] >>15 直線ANってなんだ Nは点じゃなくて長さだろ?
48 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 08:03:55.12 ID:k6Irxc0M] >>12 Squeak Smalltalk | fn | fn := [:N | | A B C | A := 0@0. B := N@100. C := 100@0. {A dist: B. B dist: C} ]. fn value: 0. "=> #(100 141.4213562373095) " fn value: 100. "=> #(141.4213562373095 100) " fn value: 200. "=> #(223.606797749979 141.4213562373095) " fn value: -100. "=> #(141.4213562373095 223.606797749979) "
49 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 11:24:42.11 ID:bJmToiQE] >>27 Perl ideone.com/yQxZi5 >>28 Perl ideone.com/K6lpYY
50 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 12:05:24.27 ID:a/17ohbB] >>13 MITメディアラボのスーパープレゼンな人のように小生が日本語プログラミング言語で、、 100回、値にカウントしながら繰り返す もし値=5なら 「」を表示する 他でもし(値%4)=0かつ(値%6)=0なら 「FizzBuzz」を表示 他でもし(値%6)=0なら 「Buzz」を表示 他でもし(値%4)=0なら 「Fizz」を表示 でないなら 「[値]」を表示 もし終わり 繰り返し終わり
51 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 12:08:19.82 ID:Fyh7HsMD] なんでみんな、FizzBuzz出力をFizzとBuzzの両方で出そうとしないで 単独でやっちゃうのかね
52 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 12:31:10.28 ID:m0gPgF5T] 簡単だからよ
53 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 13:10:30.71 ID:7RbTTjAd] 言葉での表現に近い方が ・読みやすい ・変化球に対応しやすい からかな
54 名前:28==29 mailto:sage [2014/09/23(火) 19:50:30.99 ID:P6g3rNF/] >>28 の発展系 Xを描く模様を出力 ※配列に格納して出力するの禁止 w, h = 3, 3 !-! -!- !-! w, h = 7, 3 !-!-!- -!-!-! !-!-!- !---!---!- -!-!-!-!-! --!---!--- -!-!-!-!-! !---!---!-
55 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 20:07:55.72 ID:rSu8dkGL] >>54 ※配列に格納して出力するの禁止 なん・・・だと・・・。
56 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 20:10:11.14 ID:P6g3rNF/] w, h = 6, 3 !-!-!- -!-!-! !-!-!-
57 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 20:10:46.86 ID:P6g3rNF/] w,h=10,5 !---!---!- -!-!-!-!-! --!---!--- -!-!-!-!-! !---!---!-
58 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 20:15:09.55 ID:rSu8dkGL] >>54 ところで、Hは奇数だけ?
59 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 21:39:57.13 ID:rSu8dkGL] >>54 ttp://ideone.com/pLj5TB ほぼC。意外と手こずったなぁ。
60 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 22:05:15.22 ID:FqVDKKGy] >>54 Io f:=method(w,h, if(w<2 or h<2,return) a:=h-1 for(i,0,a, for(j,0,b, if(j%a==i%a or j%a==a-i%a,"!","-")print ) writeln ) ) Io> f(16,6) !----!----!----! -!--!-!--!-!--!- --!!---!!---!!-- --!!---!!---!!-- -!--!-!--!-!--!- !----!----!----!
61 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 22:16:23.04 ID:FqVDKKGy] >>60 間違えました 6行目のbはw-1です
62 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 22:19:10.50 ID:k6Irxc0M] >>13 Squeak Smalltalk Transcript open. (1 to: 100) do: [:n | true caseOf: { [(n isDivisibleBy: 4) and: [n isDivisibleBy: 6]] -> [Transcript showln: 'FizzBuzz']. [n isDivisibleBy: 4] -> [Transcript showln: 'Fizz']. [n isDivisibleBy: 6] -> [Transcript showln: 'Buzz']. [n isDivisibleBy: 5] -> ["do nothing"]. } otherwise: [Transcript showln: n] ]
63 名前:デフォルトの名無しさん mailto:sage [2014/09/23(火) 22:43:53.81 ID:7RbTTjAd] >>54 Python def f(w,h): print "w, h = {}, {}".format(w, h) for y in range(h): for x in range(w): # A if C else B == C ? A : B print "-" if ((x+y)%(h-1))*((x-y)%(h-1)) else "!", print f(11,5) f(16,6)
64 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 01:22:30.87 ID:9bMladVh] >>54 Haskell import Control.Monad main = p54 3 3 >> putChar '\n' >> p54 6 3 >> putChar '\n' >> p54 10 5 p54 w h = forM [0..h-1] $ (>> putChar '\n') . forM [0..w] . p54' (h - 1) p54' h y x = putChar $ if x `mod` h == y || x `mod` h == h - y then '!' else '-'
65 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 05:40:11.99 ID:7S8qGuxj] お題:頂点の座標が(0,0),(0,L),(L,L),(L,0)の辺長Lの正方形がある。 これをすべて大きさの異なる正方形に分割した。各正方形の辺長は 26,24,60,2,22,28,8,14,17,13,6,7,23,50,4,16,21,12,27,18,3,15 である。このデータは各正方形の左下の頂点をXを第1キー、 Yを弟2キーとした昇順の並び順になっている。 各正方形の左下の頂点の座標を求める。
66 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 06:47:55.02 ID:KBFgIokm] >>54 Perl ideone.com/e05JDP
67 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 08:45:28.67 ID:qN3itg9e] >>65 ttp://ideone.com/qXck8R ほぼC。問題が割と素直でよかった。 キリシマ問題みたいな検索が無かったので何とかなった。 最初問題よく読んでなくて力ずくで解こうとしたのはないしょだ。
68 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 11:19:48.91 ID:E6n9D2xU] >>54 Squeak Smalltalk | xigxag | xigxag := [:w :h | 0 to: h-1 do: [:y | 0 to: w-1 do: [:x | Transcript nextPut: ('!-' at: ((x+y \\ (h-1)) * (x-y \\ (h-1))) sign + 1) ]. Transcript cr. ]. Transcript cr; endEntry ]. Transcript open. xigxag value: 11 value: 5. xigxag value: 16 value: 6.
69 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 22:35:39.85 ID:hdgcnesQ] >>65 Python import math q = [26,24,60,2,22,28,8,14,17,13,6,7,23,50,4,16,21,12,27,18,3,15] L = int(math.sqrt(sum(a*a for a in q))) ans = [] area = [[None for x in range(L)] for x in range(L)] for x in range(L): for y in range(L): if len(ans) >= len(q): break if not area[y][x]: h = q[len(ans)] for dx in range(h): for dy in range(h): area[y+dy][x+dx] = chr(ord('A')+len(ans)) ans.append((x,y)) print ans #for a in reversed(area): print "".join(a) --- [(0, 0), (0, 26), (0, 50), (24, 26), (24, 28), (26, 0), (46, 28), (46, 36), (54, 0), (54, 17), (54, 30), (60, 30), (60, 37), (60, 60), (67, 17), (67, 21), (71, 0), (83, 21), (83, 33), (92, 0), (92, 18), (95, 18)]
70 名前:デフォルトの名無しさん mailto:sage [2014/09/25(木) 12:22:22.02 ID:oTmNFJvj] >>65 Squeak Smalltalk | ws L border | ws := #(26 24 60 2 22 28 8 14 17 13 6 7 23 50 4 16 21 12 27 18 3 15). L := (ws * ws) sum sqrt. border := Array new: L withAll: 0. ^ws collect: [:w | | y x | y := border indexOf: (x := border min). y to: y+w-1 do: [:idx | border at: idx incrementBy: w]. x@(y-1) ] "=> {0@0 . 0@26 . 0@50 . 24@26 . 24@28 . 26@0 . 46@28 . 46@36 . 54@0 . 54@17 . 54@30 . 60@30 . 60@37 . 60@60 . 67@17 . 67@21 . 71@0 . 83@21 . 83@33 . 92@0 . 92@18 . 95@18} "
71 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 06:06:07.66 ID:h0+5zF68] |=番兵|_ ( ・ω・) < ステンバーイ 〇={=}〇 ∧,, ∧ |::::::::::\ (*‘ω‘ *) 、、、し 、、、(((.@)vv、vvv 、、(、v、)っv、、
72 名前:デフォルトの名無しさん mailto:sage [2014/09/26(金) 22:32:07.09 ID:OuqeUKn+] >>65 J f=:3 :0 L=.%:+/y^2 w=.0 0,(0,L),(L,L),:L,0 r=.i.0 0 for_i. y do. r=.r,{.w w=.w,({.w)(+"1)0 0,(0,i),(i,i),:i,0 w=./:~w-.(-.~:w)#w end. y,.r ) f 26 24 60 2 22 28 8 14 17 13 6 7 23 50 4 16 21 12 27 18 3 15 26 0 0 24 0 26 60 0 50 (略) 18 92 0 3 92 18 15 95 18
73 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 05:48:55.84 ID:vG38XDPk] >>65 Io f:=method(A, L:=A map(**2)sum sqrt w:=list(list(0,0),list(0,L),list(L,0),list(L,L)) r:=list A foreach(i, p:=w min px:=p at(0) py:=p at(1) r push(list(p)) list(p,list(px,py+i),list(px+i,py),list(px+i,py+i))foreach(j, if(w contains(j),w remove(j),w push(j)) ) ) r )
74 名前:デフォルトの名無しさん [2014/09/27(土) 09:57:43.95 ID:KE8XqyCz] だれかジオメトリシェーダー部分を書いて下さい monobook.org/wiki/SL_Sharp
75 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 18:42:16.51 ID:6iG2wykO] >>65 Haskell main = print $ p65 [26,24,60,2,22,28,8,14,17,13,6,7,23,50,4,16,21,12,27,18,3,15] p65 edges = map (\(x, y, _) -> (x, y)) . reverse $ foldl f [] edges where l = floor . sqrt . fromIntegral . sum $ map (^2) edges f ps e = (head [(x, y, e) | x <- [0..l-1], y <- [0..l-1], not $ touch x y ps]):ps touch x y = any (\(sx, sy, ss) -> sx <= x && x < sx + ss && sy <= y && y < sy + ss)
76 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 18:50:19.14 ID:Yl+ojJfz] 無限ループになるコードを1行で書きなさい
77 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 18:55:26.60 ID:6iG2wykO] >>76 Haskell main = print $ last [0..]
78 名前:山下雄介@上級者 ◆1Bax/hBUwKIJ mailto:sage [2014/09/27(土) 19:02:34.88 ID:Yl+ojJfz] 手島君が1から100の範囲で1つ数字を思い浮かべました その数字を当てなさい その数字が不正解の時は、正解の数字より高いか低いかは教えてもらえます 最短で正解の数字を当てなさい
79 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 19:39:09.20 ID:abKsREh3] なお手島くんは22%くらいの確率で、 大小関係についてウソをつくそうです
80 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 19:50:30.58 ID:2j9vH2tZ] 機械相手に一生懸命入力してる手島くんのために100回目で正解当てるコード書こう(適当)
81 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 20:04:30.56 ID:LiPjrIzD] >>76 Prolog r :- r.
82 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 20:12:21.42 ID:DXaZxPH6] >>76 C/C++ for (;;);
83 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 20:29:46.61 ID:Chmua2a8] >>76 輪廻転生.pl print '→生→死' while 1;
84 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 20:33:03.81 ID:vG38XDPk] >>76 J ,^:(_)1 Io loop(8) Maxima do 8;
85 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 20:34:23.55 ID:Chmua2a8] >>78 >>80 100万回やっても無理な場合がある。正解がπとかだったらどうするよ?
86 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 20:37:34.88 ID:2j9vH2tZ] >>85 本当だ 整数とすら言ってなかった
87 名前:デフォルトの名無しさん mailto:sage [2014/09/27(土) 21:55:19.08 ID:G9WDbqrY] >>78 >>79 Python ideone.com/PLcCef
88 名前:デフォルトの名無しさん [2014/09/27(土) 22:27:08.87 ID:40eOdFUh] 型がわかれば整数の問題とあんまり変わらないだろ
89 名前:山下雄介@上級者 ◆1Bax/hBUwKIJ mailto:sage [2014/09/28(日) 00:39:43.55 ID: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 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 02:03:02.94 ID: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 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 05:24:03.32 ID:SflzpwZE] >>76 ttp://ideone.com/L5LGGN int main(){ return main();}
92 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 06:09:53.87 ID:SflzpwZE] >>78 ttp://ideone.com/UDYKYh ほぼC。二分探査だ。嘘は入れてない。
93 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 07:17:16.29 ID:SflzpwZE] >>89 ttp://ideone.com/53lyu1 ほぼC。適当に書いた。
94 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 07:31:55.79 ID: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 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 10:46:12.34 ID: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 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 16:33:11.25 ID: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 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 19:00:02.66 ID:IeNBSGsI] >>89 例2,3を見ると繰り返し現れる文字列で一番長い物と 二番目の物って意味? それとも例2はたんに書き間違いで 2文字以上で1番長い物と2番目に長い物? 曖昧な仕様で後々実装後もめるパターンだなw。
98 名前:デフォルトの名無しさん mailto:sage [2014/09/28(日) 23:51:21.05 ID: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 mailto:sage [2014/09/28(日) 23:57:01.74 ID:uLb79luw] お題:穴ありbashをネットワークから探しだしてホストを列挙
100 名前:デフォルトの名無しさん mailto:sage [2014/09/29(月) 00:30:40.77 ID:0K8mksjW] ここにはハッカーはいないのか
101 名前:デフォルトの名無しさん mailto:sage [2014/09/29(月) 00:58:20.05 ID:LXjsJlBs] >>100 ハッカー様()の模範回答をご教授願うよw
102 名前:デフォルトの名無しさん mailto:sage [2014/09/29(月) 02:08:03.92 ID:v6qiSvKu] もうこの脆弱性を使って成長するボットネットが有るらしいけど… まぁUAをアレにしたブラウザなりクローラなり使えばいいだけ。
103 名前:デフォルトの名無しさん mailto:sage [2014/09/29(月) 10:54:40.10 ID: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 mailto:sage [2014/09/29(月) 18:40:13.84 ID: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 mailto:sage [2014/09/29(月) 18:52:35.65 ID:TuwBUZ1N] こんなの13パターン予め作って出力しちゃえばいいんだから初心者でもマジで余裕でしょう