[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 09/29 19:16 / Filesize : 37 KB / Number-of Response : 106
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングのお題スレ Part5



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パターン予め作って出力しちゃえばいいんだから初心者でもマジで余裕でしょう






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<37KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef