[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/23 04:50 / Filesize : 284 KB / Number-of Response : 1021
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



1 名前:デフォルトの名無しさん mailto:sageteoff [2015/10/07(水) 20:19:06.64 ID:c4LYwtKo.net]
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part7
peace.2ch.net/test/read.cgi/tech/1429195275/

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
ideone.com/
codepad.org/
compileonline.com/
rextester.com/runcode
runnable.com/
code.hackerearth.com/
melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

2 名前:デフォルトの名無しさん mailto:sageteoff [2015/10/07(水) 20:19:59.95 ID:c4LYwtKo.net]
過去スレ
6 peace.2ch.net/test/read.cgi/tech/1418278634/
5 peace.2ch.net/test/read.cgi/tech/1411227287/
4 peace.2ch.net/test/read.cgi/tech/1402622093/
3 peace.2ch.net/test/read.cgi/tech/1390525149/
2 toro.2ch.net/test/read.cgi/tech/1357191974/
出されたお題をコーディングして罵られるスレ
toro.2ch.net/test/read.cgi/tech/1354393458/

3 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 20:27:26.50 ID:qc2rPE1F.net]
俺のチンコォ崇めてプログラミングスキルを磨け

チンコォグイーン!
imgur.com/TL0hKpS.jpg

4 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 20:53:39.49 ID:c4LYwtKo.net]
景気付けにどうぞ

お題:
(1)0〜9からなる文字列Sが与えられるので、Sの部分文字列の中で3の倍数が全部でいくつあるか求めよ。
(2)同様に、与えられたSの中に7の倍数が全部でいくつあるか求めよ。

例:
(1)30123 -> 7 (3の倍数は3,3,12,30,123,3012,30123の7つ)
(2)30123 -> 1 (7の倍数は301の1つ)

制約:
1≦Sの長さ≦5万

5 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 03:32:30.80 ID:OORjem1H.net]
>>4 Ja

6 名前:va
http://ideone.com/sPM7Ao
書いててよくわからんくなった…
ローカルで1000桁計算した結果がBigInteger使った場合と同じになるから多分あっていると思う
[]
[ここ壊れてます]

7 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 19:59:21.41 ID:6/TT9nGb.net]
>>4 C++

ideone.com/tZdCFL
テストデータは>>5さんのを頂きました。

8 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:37:13.10 ID:6YOPIK9g.net]
深谷優先探索の練習したいからだれか問題頂戴

9 名前:デフォルトの名無しさん [2015/10/08(木) 22:44:17.56 ID:7fMgdVUK.net]
深谷優先探索

10 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:44:50.73 ID:ODE72HFL.net]
>>7
閉路の迷路を自動生成して、ゴールを深さ優先探索で求めよ。
っていうのは?



11 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:38:09.02 ID:/28lT51i.net]
>>7
Prolog処理系の実装

12 名前:デフォルトの名無しさん [2015/10/09(金) 16:58:59.65 ID:Ei93KrvX.net]
これの思考ルーチン


マンカラ ( ボードゲーム ):無料Flashゲーム
www.sousakuba.com/flash-games/mancala.html

13 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 22:10:18.75 ID:cypHo82J.net]
>>4
Ruby
1000桁で10秒くらいかかるので5万桁は無理
ideone.com/ggVXBd

14 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 23:20:18.23 ID:cCGMMWjY.net]
前スレ >>971 Java
ttp://codepad.org/Mhip6Mpt
結果
stdin read
********************
**K*****************
**S*****************
**R*****************
**KK****************
**SS************K***
***RR**S*******S****
***K*K*K******RK****
***SS*SR*****KS*****
***R***S***KSR******
**KK***K**S*K*******
*S*S***KSRKS********
********K***********
*******S*K**********
*********S*********K
********SR*KSRKS**S*
*********K*******R**
*********SR*SKRSK***
***********S***S****
************K*******

15 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 12:15:41.56 ID:2ua4rw45.net]
>>4
Java
ttp://codepad.org/f0Rh8cj2

16 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 18:26:36.88 ID:oc4xuXaB.net]
>>4(2) Io
f := method(s,
 b := list(1, 3, 2, 6, 4, 5)
 c := 0
 n :=s size - 1
 for(i, 0, n,
  if(s at(i) - 48 != 0, 
   for(j, i, n,
    r := 0
    for(k, 0, j - i,
     r = r + (s at(j - k) - 48) * b at(k % 6)
    )
    if(r % 7 == 0, c = c + 1)
   )
  )
 )
 c 
)

Io> f("20151012")
==> 1
Io> f("1234567890"repeated(10))
==> 681

17 名前:デフォルトの名無しさん [2015/10/13(火) 14:13:50.33 ID:mv2XvxUt.net]
Jewels
8*8の盤面のすべてのマスに、
7種類の内のいずれかの宝石を、ランダムに置く

縦・横・斜めに3つ以上、同じ種類の宝石が並ぶと、
並んだ宝石は、すべて同時に消えるとき、
何個の宝石が消えたか?

上級編
上の条件で、宝石が消えたら、上にある宝石が下に落ちてきて、
また消える条件を満たせば、宝石は同時に消えるのを、
再帰的に繰り返すとき、(消える宝石が無くなるまで、)
何個の宝石が消えたか?

参考までに、マス目のタイプ。
番兵:-1、宝石なし:0、宝石1〜7

番兵を使うのなら、盤面10*10で考えて

18 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/10/13(火) 20:35:49.75 ID:DtroG4QR.net]
お題:与えられた未知の英単語から発音を推定して、発音記号を出力する。

19 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:41:13.94 ID:4/4DmQRL.net]
>>17
www.babelbible.net/lang/lang.cgi?mode=right&noframe=1&doc=en_sndx&lang=en
ヒントあげるので自作してください。

20 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:20:15.16 ID:9bQvUcqb.net]
冗長性の過分応分加減は絶妙



21 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 17:37:45.49 ID:G+M9VpQ5.net]
お題:1から100までの整数を1回ずつすべて使い適当な順に連結して
ひとつの大きな数とみなす。最小のものを求める。
1から10を使った場合は、10123456789が最小となる。

22 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 18:52:07.89 ID:Iqqc+OKD.net]
実用アプリの開発に熱がはいりだしたら
お題が頭に入らなくなった
俺もまだまだだな

23 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/10/14(水) 18:59:41.69 ID:O5xSO2EX.net]
>>20
>1から10を使った場合は、10123456789が最小となる。

10はどこ?

24 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 19:22:57.89 ID:tW8nHrv+.net]
先頭だろ

25 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 20:14:40.28 ID:ExdaGJT8.net]
最小:10010111213141516171819202122232425262728293031....99123456789
最大:99998979695949392919089888786...111087654321
????

26 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 20:16:42.00 ID:ExdaGJT8.net]
最大は明らかに間違いだた
99999897969594939291908988878685....111087654321100
ぢゃないかと...

27 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 20:49:13.09 ID:c4eYG1dl.net]
87の前に8を持ってきたほうがいい
76の前に7を持ってきたほうがいい

逆に末尾は10100のほうがいい

最小も先頭は1001011112となる

28 名前:デフォルトの名無しさん [2015/10/14(水) 21:15:32.59 ID:guvBL9Z6.net]
下がっててみにくい

29 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 21:51:06.92 ID:dkvYFzw9.net]
>>20
C++
ideone.com/1roFPZ

30 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 02:19:43.47 ID:MsEvcwqa.net]
最大
99998979695949392919089888878685848382818079787777675747372717069\
68676665564636261605958575655554535251504948474645444434241403938\
37363534333323130292827262524232222120191817161514131211110100
???



31 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 03:16:29.70 ID:Tp1SkuaU.net]
>>20
Ruby2.0
>>28と同じロジック
ideone.com/Qx4Yln

32 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 10:10:32.84 ID:/JO/MU8C.net]
>>20 Io
Range
f : method(n,
1 to(n) map(v, v asString) sortBy(block(i, j, (i .. j) < j .. i)) join
)

Io> f(20)
==> 1011112131415161718192023456789

33 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 16:17:59.88 ID:IAn5ASk+.net]
>>28
アルゴリズムにちょっと感心した

34 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 22:50:50.56 ID:vLvoWUco.net]
>>16
Java
ttp://codepad.org/xR5aj5qb
ちょっとアレンジw

35 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 13:39:40.63 ID:gWco8U62.net]
問題:たかし優先探索
スタートからゴールまで何通りのルートがあるか求めなさい
たかし君は傷つきやすいので"たか4ね"を避けて進まなければいけません
同じルートを2回以上進んではいけません

["スタート", "たか4ね","たかし","たかし","たかし"],
["たかし","たかし","たかし"],
["たかし","たかし","たかし","たかし", "たかし"],
["たかし","たか4ね","たかし"],
["たかし","たかし","ゴール"],

36 名前:デフォルトの名無しさん [2015/10/17(土) 22:59:10.98 ID:CuP1bx6x.net]
このスレなんで上げてもすぐに落ちるんだろ

37 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 13:35:05.15 ID:VWt3JxRU.net]
C#で書くとこうなるかな>>20
無理矢理LINQを使った

ideone.com/8FBn7W

ここまでやるとアホみたいww

38 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 00:57:02.23 ID:L9hia2RL.net]
お題
"3.1415926535"のような小数を表す文字列と小数点以下の桁数を指定する(0以上の)整数を入力し、2進数小数を表す文字列を出力
例えば
"5.5",3 の場合は
"101.100" を出力する
桁を丸めるときは切り捨てではなく0捨1入("5.5",0 の場合は"110"を出力する)

39 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 14:16:57.22 ID:PGvR7XY7.net]
例えば有効数字が3桁の場合、元の実数を8倍して整数に丸めれば、
ほとんどの場合それがバイナリの並びになってるはずだが、全ての場合それで問題がないかどうか自信が持てんな。

40 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 15:30:38.50 ID:3YrRpfpr.net]
>>37
ideone.com/39GbxB
C++。適当に実験してたらそれっぽくなった。
あってるかは保証しない。



41 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 16:11:00.46 ID:yLq/jjBd.net]
// お題:電卓を実装する
// 引数はボタン入力履歴で、戻り値は現在の表示
// ボタンは 0123456789-+*= のみ
"5" => "5"
"5+" => "5"
"5+3" => "3"
"5+3=" => "8"

"5*-3=" => "2" // 最後に入力した演算子が有効
"5-3+" => "2" // 途中結果を表示する
"5-3*2=" => "-1" // -+ よりも * が優先される

// 初期値は 0
"" => "0"
"-10=" => "-10"
"*10=" => "0"

"4+3=2=" => "2" // = の次に数値が入力された場合、途中結果は捨てる
"4+3=*2=" => "14" // * よりも = が優先される

// 実装例: https://ideone.com/h8Tjwc

42 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 16:21:09.13 ID:AVx5NpJt.net]
お題

HelloWorldの10文字の組み合わせで生成できる文字列はいくつあるか求めよ

HlleooWrld
HerllodWol
WelloorHd
....

条件
・先頭は大文字のHかWではじめなければならない
・文字列の最後は小文字で終わらなければならない

43 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 17:05:47.08 ID:uI3C5IMU.net]
>>41
ideone.com/xmC0Mq
C++。こんな感じかな。

44 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 17:53:28.85 ID:A1vNd6F7.net]
>>40 Python3
https://ideone.com/o0W21U
正規表現とeval()の力

45 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 18:10:16.38 ID:A1vNd6F7.net]
ボタン式卓上電卓の想定なら"5-3*2="は"4"の方がメジャーかもね

46 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 19:26:01.78 ID:9ZHSOSPI.net]
>>42
アウトHdrWl

47 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 19:27:34.86 ID:uI3C5IMU.net]
>>45
それはイデオンがタイムアウトしたので切れました。

48 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 19:56:10.00 ID:8Z4zyZfA.net]
>>41
Excel
=(2*FACT(9))/(FACT(3)*FACT(2))-(2*FACT(8))/(FACT(3)*FACT(2))

49 名前:デフォルトの名無しさん [2015/10/23(金) 00:43:46.13 ID:kMcaPJUG.net]
>>40
haskell
ideone.com/AVRHl6

50 名前:デフォルトの名無しさん [2015/10/25(日) 15:42:30.99 ID:NSF+fqy+.net]
暇つぶしにどうぞ。

お題: nは2以上の整数とする。相異なるn個の文字から1文字選び順に並べ、n文字の文字列を作る。
このとき、出来た文字列が回文となる確率を求めよ。ただし、同じ文字は何度も選んでも良い。

例) n = 2のとき
相異なる2個の文字から2文字の文字列を作る作り方は2^2 = 4通り。この中で回文となるのは2通り。
従って答えは 2/4 = 1/2

n = 10 のときはいくらか? 同様にn = 11の場合はどうか?



51 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 21:26:04.46 ID:q9jqp7eP.net]
1/pow(n,floor(n/2))

52 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 02:51:13.95 ID:X1tUuUC+.net]
>>49
ideone.com/sxblVg
C++。モンテカルロ〜〜〜。なのか?
あってるかは知りません。

53 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 02:52:48.94 ID:X1tUuUC+.net]
どっちかっていうと分布確立の問題だからどういう分布を望んでるかで結果変わりそうかな?
C++だったらディストリビュータ変えればいくらでもいじれる。

54 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 13:07:28.84 ID:C/77uVUj.net]
>>51
n = 10 の場合は正しいようですがn = 11の場合が違うようです。

確率分布は良く知りませんが、単純な確率の問題ですよ。
ヒント: 約分できるので分子は必ず1になります

55 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:30:44.42 ID:X1tUuUC+.net]
>>53
片方あってるんだったら、試行回数の問題だと思うのですが、
これ以上試行するとイデオンがタイムアウトするので無理です。
勇者の登場を待ちましょうか。

56 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 21:54:25.47 ID:zYgBhlkj.net]
回文なので前半が決まれば後半は1通りしか無い?
11^6 / 11^11 = 1 / 11^5 じゃね
nが偶数なら
1 / n ^ (n / 2)

57 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 22:14:13.46 ID:fLaXb4KYb]
なんで>>50がスルーされているんだ…と.scの方に書いてみる

58 名前:デフォルトの名無しさん [2015/10/26(月) 22:16:43.98 ID:DXNKihF1.net]
>>55
つまり>>50

59 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 02:10:42.88 ID:xGCQarhq.net]
方眼紙に均等に5×5=25個の点が打ってある。
ランダムに2点を決定して直線を複数作っていく。
(X=0〜4,Y=0〜4,のほうが解かりやすい?)
しかし、3本の直線の端を頂点として三角形になった場合はその3本は
削除されるとする。いきなり三角形が複数できた場合は任意の
1個だけの三角形の3本の直線が削除されるだけでよい。
とにかく3角形ができた場合は、直線3本しか削除されなくて良い。
また、例えば3本の直線
直線(0,0)(4,0)
直線(0,0)(2,0)
直線(2,0)(4,0)
は1本に見えるが、面積の無い3角形として3本の直線は削除されるとする。
(問題)
この場合、残る直線はどんなに回数を多くしても収束してしまうか?
またその数はどのくらいか?
また10×10の場合など色々変えてどのくらいに収束してしまうのか確認せよ。

60 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 08:30:08.61 ID:4Bw9gOvg.net]
>>58
2点を選んで(2,0)(2,0)を引いた場合、これを線分と認めるか無視するのか。
既に線分(0,0)(4,0)がある状態で(0,0)(4,0)を引いた場合、線分の重複を認めるのか無視するのか。



61 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 08:35:48.75 ID:D5hlxVUX.net]
消し方によって確率が変わりそうな気がするがそこらへんは大丈夫なん?

62 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 11:16:40.27 ID:nTHAaiUE.net]
>>58
何度読んでも何言ってるのかさっぱり分からん。
「いきなり三角形が複数」とか「とにかく三角形ができた場合」って何のことよ。

63 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 12:30:53.45 ID:GiyDMn1h.net]
>>59
それは長さが無いから線分としない。スキップ。
重複は認めるとしよう。
>>61
言い方が悪かった。同時に複数できたらってこと。
例えば、四角形ができていて、対角線が次にできたら
三角形は2個同時にできるけど、どちらか一方の三角形分の線分
3本を削除すればいいとういこと。また、例えばV字に何本も重複してて
1本追加で3角形が出来ても、重複分全部でなく、3本削除だけでいい。

64 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 19:12:54.11 ID:4Bw9gOvg.net]
>>58
適当に回したらこれくらいになった

線分の重複を無視する場合
5x5 38.748293
10x10 315.085106

線分の重複を認める場合
5x5 54.334077
10x10 365.470484

65 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 00:20:15.77 ID:TbBvWlSz.net]
>>62
解説ありがと
なるほど既存の多角形を切り取る場合場合があるわけかw

66 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 13:29:39.48 ID:P6AfRAxK.net]
予想だと、プログラムの問題もあるが、乱数発生の仕方の問題でもある。
コンピューターの用意した人口的に散りばめた乱数だとすぐに収束。
自然界に近い完璧に近い乱数を発生なら収束しないかも。

67 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 14:34:56.09 ID:GTtq7s5w.net]
メルセンヌ・ツイスタ使ったらどうよ

68 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 23:29:17.08 ID:FmImj1NY.net]
みんなはこのスレだけじゃなくyukicoderとかでも出題してたりするの?

69 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 02:29:03.10 ID:izatGTy3.net]
>>58
ideone.com/H3y5iK
C++。作っては見たものの、品質は低い。ちょい自信ないな〜。
抜けがあったらごめん。

70 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 07:00:44.92 ID:VBv6nvKP.net]
5x5
https://paiza.io/projects/sAfl2ma6nkZHgBKSjhHWEA
52.87

10x10
https://paiza.io/projects/SUCBFmGQqvLsld23IOzgag
362.59



71 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 15:28:30.15 ID:79rh8PzW.net]
お題: お題aの仕様は3日後に変更されます。仕様変更時、最小限の変更で対応できるようにお題aを実装してください。

お題a:入力される「Hello, World!」を逆順にして出力する。
例:
in < Hello, World!
out > !dlroW ,olleH

72 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 15:43:46.90 ID:T2ZXoWbN.net]
>>58
5x5 100000回 10x10 10000回

C
ideone.com/QyoAsj C 44.3 229.7ms 5x5
ideone.com/y0VaSp C 381.3 441.5ms 10x10

C++移殖(tuple+vector)
ideone.com/qTrT0j C++ 41.5 426.3ms 5x5
ideone.com/WFYDCn C++ 351.2 972.4ms 10x10

結構変わるもんですね。

73 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 21:18:08.06 ID:izatGTy3.net]
>>70
ideone.com/fDO24p
C++。コードにして4行だから仕様変更かかったら全部書き直しても間に合う位だと思う。

74 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 21:22:41.58 ID:izatGTy3.net]
>>58
>>68のコードを1分くらい回してたら720くらいで増えなくなった。ちなみにCPUはスカイレーク。

75 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 00:24:00.79 ID:KHL3HLvQ.net]
>>70
C
ideone.com/SJqau8

76 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 01:26:03.69 ID:cJLCmHdm.net]
>>70
どう仕様変更されるのか分からないとどうしようもない
入力文字列はもちろん、逆順という仕様も変更されるだろうし
となると出来るだけ短く作るぐらいしかない。

#!/bin/sh
read a
echo "!dlroW ,olleH"

77 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 13:15:09.33 ID:rNKSig65.net]
>>70
Haskell
main = interact reverse

78 名前:デフォルトの名無しさん [2015/11/01(日) 15:34:04.71 ID:srdwxzCV.net]
お題: 2つの文字列を引数としてとり、その2つの文字列の類似度をあらわす値x
(0.0 ≦ x ≦ 1.0)を戻す関数fがあるとき、与えられた文字列のリストを
類似度が高い文字列がなるべく近くになるように整列する関数gを
作成してください。

(f "a" "a") => 1.0
(f "a" "b") => 0.0
(f "fukushima" "kyoto") => 0.0
(f "fukushima" "tokushima") => 0.7142857142857143
(f "fukushima" "tokyo") => 0.0
(f "kyoto" "tokushima") => 0.0
(f "kyoto" "tokyo") => 0.3333333333333333
(f "tokyo" "tokushima") => 0.2

(g '("fukushima" "kyoto" "tokushima" "tokyo") #'f)
=> ("fukushima" "tokushima" "tokyo" "kyoto")

79 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:54:16.22 ID:tjf5Il2M.net]
>>77
fもつくる必要がありますか?

80 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 18:18:40.16 ID:V0olVSh1.net]
gの要件曖昧過ぎw



81 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 19:57:17.19 ID:KHL3HLvQ.net]
>>77
Ruby
fは適当。
ideone.com/XPMHpO

82 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 21:25:08.29 ID:srdwxzCV.net]
>>78
fもお願いします。
ここでは、たとえばtrigramを考えていました。
もっとよい実装があればお願いします。

(defun trigram (s1 s2)
(flet ((decompose
(s)
(let* ((l (length s))
(n (if (>= l 3) (- l 3) 0))
(j (if (>= l 3) 3 l)))
(loop for i from 0 to n collect (substring s i (+ i j))))))
(let ((l1 (decompose s1))
(l2 (decompose s2)))
(let ((s1l2 (loop for i in l2 sum (funcall #'(lambda () (if (search i s1) 1 0)))))
(s2l1 (loop for i in l1 sum (funcall #'(lambda () (if (search i s2) 1 0))))))
(/ (+ s1l2 s2l1) (float (+ (length l1) (length l2))))))))

>>79
gは、たとえば『列の各要素間の類似度に比例し距離の二乗に反比例する値の総和が最大になるような列に整列する関数』を考えていました。
もっとよい実装があればお願いします。

83 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 02:30:55.48 ID:LjXD9Pi/.net]
>>77
ideone.com/p1w9Zs
ギブアップ。Trigramはうまく移植できたと思うけど、うーむ。
うまいリレーの作り方が思い浮かばなかった。
意外と難しいなぁ。

84 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 06:33:43.86 ID:+TdI2Qwj.net]
類似度の定義は無いから単純に文字位置で文字一致する文字数を長いほうの文字列文字数で割ったのを類似度にしてもいいんだよね
簡単さ!
あとは類似度でグラフの最小木っての作りゃいいんっしょ?

85 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 16:32:13.01 ID:+QiDphYI.net]
>>70の変更です。
お題a: 入力文字列(日本語含む)を逆順にして出力する。
入力される文字列は0 ~ 1024バイトの範囲。
例:
in < Hello, World!
out > !dlroW ,olleH
in < Hello, わーるど!
out > !どるーわ ,olleH

86 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:14:51.67 ID:LjXD9Pi/.net]
>>84
ideone.com/hLXAqt
C++。半分くらい書き換えた。C++はマルチバイトキツイ。

87 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 22:32:43.41 ID:fHTNy1N3.net]
>>84
#! ruby -Ku
a='Hello, わーるど!'
p a.reverse

88 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 11:13:37.98 ID:EjzY5wqb.net]
>>85
例外飛んどるよ

89 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:38:51.75 ID:tcH4gyT3.net]
>>87
GCCのろーけるがタコなんじゃないですか?
VCオンリーって書いてあるじゃないですか。

90 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 16:28:22.05 ID:IhTKFi3p.net]
>>84
setlocale (LC_ALL, "ja.utf8");
std::cout << "ja.utf8->" << setlocale(LC_ALL, 0) << std::endl;
setlocale (LC_ALL, "utf8");
std::cout << "utf8->" << setlocale(LC_ALL, 0) << std::endl;
setlocale (LC_ALL, "ja_JP.UTF-8");
std::cout << "ja_JP.UTF-8->" << setlocale(LC_ALL, 0) << std::endl;
setlocale (LC_ALL, "ja_JP.utf8");
std::cout << "ja_JP.utf8->" << setlocale(LC_ALL, 0) << std::endl;
setlocale (LC_ALL, "japanese");
std::cout << "japanese->" << setlocale(LC_ALL, 0) << std::endl;
setlocale (LC_ALL, "JPN");
std::cout << "JPN->" << setlocale(LC_ALL, 0) << std::endl;
setlocale (LC_ALL, "UTF-8");
std::cout << "UTF-8->" << setlocale(LC_ALL, 0) << std::endl;
setlocale (LC_ALL, "japanese.sjis");
std::cout << "japanese.sjis->" << setlocale(LC_ALL, 0) << std::endl;
結果:
ja.utf8->C
utf8->C
ja_JP.UTF-8->C
ja_JP.utf8->C
japanese->Japanese_Japan.932
JPN->Japanese_Japan.932
UTF-8->Japanese_Japan.932
japanese.sjis->Japanese_Japan.932



91 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 16:32:51.81 ID:IhTKFi3p.net]
ターミナルをUTF-8にしてUTF-8のソースをコンパイル。
ターミナルをSJISにして実行。
結果:
!どるーわ wolleH

92 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 20:59:19.34 ID:5zH1LNIS.net]
BrainF**kでやろうかと思ったがUTF-8めんどくせw

93 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/10(火) 17:59:02.39 ID:IWmBcu9t.net]
お題:粘菌のシミュレーション

94 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 21:43:34.22 ID:0SseENg0.net]
頑張ってください!

95 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:05:44.32 ID:SL51g2Xb.net]
>>92 C++
こんな感じ?よくわからんけど
https://paiza.io/projects/39PM4p3agMPGdANgoHT0og

96 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:21:46.45 ID:NRLjC3dW.net]
粘菌ってWikipediaで調べただけでもたくさん種類あって種類によって全然違うしどいつをシュミレーションしろと?

97 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 17:27:12.29 ID:YwXMSyH6.net]
お題:自然数nで何乗しても結果の最後がnで終わるnを求める、

25^3 = 15626
25^5 = 9765625

98 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 21:11:00.20 ID:YwXMSyH6.net]
>>96
すみません
25^3 = 15625
でした

99 名前:デフォルトの名無しさん [2015/11/11(水) 21:37:45.64 ID:kvOX2kCa.net]
>>96 Java
https://ideone.com/tDxrjg

100 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 23:51:59.90 ID:kvOX2kCa.net]
>>96 Java
https://ideone.com/npEiYF
5と76から延ばす方向で



101 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 23:55:55.86 ID:kvOX2kCa.net]
何で76にしたし…

102 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 07:16:51.84 ID:TDqS/713.net]
>>96
https://ideone.com/3DYhOi
C++。アルゴリズムはあってると思うんだけど、浮動小数誤差でうまく数字が出てない気がする。
違う方法にすればよかったかなぁ・・・。Orz

103 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 15:29:35.14 ID:mg6U+sOG.net]
>>96
1から32767までの間で調べた

ideone.com/VK6T0A

104 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 16:34:27.03 ID:2RvUZ1HO.net]
>>96 Java
https://ideone.com/KfmF8v
>>102を見て>>98を書き直し…シンプルになった

>>96 Java
https://ideone.com/bCSEWh

末尾5系統 初期値=5
ループ1回目 5 * 5 = 2[5]
ループ2回目 25 * 25 = 6[25]
ループ3回目 625 * 625 = 390[625] → 390の下位桁が0なのでその上の桁まで使う → 90[625]
ループ4回目 90625 * 90625 = 82128[90625] → 8[90625]
ループ5回目 890625 * 890625 = 793212[890625] → 2[890625]
ループ6回目 2890625 * 2890625 = 以下略

末尾6系統 初期値=6
ループ1回目 6 * 6 = 3[6] → 10-3=7 → 7[6]
ループ2回目 76 * 76 = 57[76] → 10-7=3 → 3[76]
ループ3回目 376 * 376 = 141[376] → 10-1=9 → 9[376]
ループ4回目 9376 * 9376 = 8790[9376] → 100-90 → 10[9376]
ループ5回目 109376 * 109376 = 11963[109376] → 10-3=7 → 7[109376]
ループ6回目 7109376 * 7109376 = 以下略

コネコネしてたらなんかこんな感じで出来たが、この計算だと抜け有ったりするかな?

105 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:28:56.44 ID:TDqS/713.net]
>>96
ideone.com/UQTHRZ
>>101を修正。(バグフィックスとは言ってない。)
少しましになったかな?

106 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:41:27.02 ID:mg6U+sOG.net]
>>104
それ答え間違ってると思うよ
問題は ***何乗しても*** なので、特定の場合(たとえば2乗や3乗)についてのみ成り立つような物は除外しないと

107 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:46:40.58 ID:TDqS/713.net]
>>105
あーなるほど。勘違いしてた。
いい手がないなー。Orz

108 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:49:14.34 ID:TDqS/713.net]
可能性のありそうなものを篩にかける程度しかできてないか。
最近問題が難しくなってきたなぁ。

109 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:51:41.90 ID:TDqS/713.net]
>>104
そだそだ。ご指摘ありがとう。

110 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 22:53:02.41 ID:OJ9xT8J+.net]
位取りの数学だよな。例えば、二桁に限定すれば
(10a+b)^2≡20ab+b^2(mod100)
であり、
b≡b^2(mod10)
であることがわかる。



111 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:02:28.06 ID:OJ9xT8J+.net]
10進数の位取りでは自然数nは、
n=Σ_{k=0}^m 10^k * a_k
と表せる。任意の正の整数pに対して
n≡n^p (mod 10)
n≡n^p (mod 100)
...
n≡n^p (mod 10^m)

112 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:12:11.82 ID:OJ9xT8J+.net]
1の位a_0は、明らかに0、1、5のいずれかである。
なぜなら0≡0^2かつ1≡1^2かつ5≡5^2 (mod 10)であり、それ以外は考えられないから。

113 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:15:35.02 ID:mg6U+sOG.net]
>>107
n^2の結果の最後がnで終わっていれば何乗しても結果の最後がnで終わる
言い換えればn^2の場合についてのみ調べれば良い。
n^2の結果の最後がnで終わっていないようなnは題意にそぐわない
言語・ライブラリレベルで多倍長演算をサポートしてる言語を使うといいと思うよ

114 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:18:19.92 ID:2RvUZ1HO.net]
>>111
6…

115 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:20:39.98 ID:OJ9xT8J+.net]
n≡n^2ならばn≡n^3である。
なぜならn≡n^2の両側にnを掛ける

116 名前:ニn^2≡n^3が得られ、
これとn≡n^2の推移律より明らか。
数学的帰納法より、n≡n^2ならばn≡n^pである。
[]
[ここ壊れてます]

117 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:21:12.97 ID:Tt5I2ZgM.net]
変数xに0〜360までの角度を保持したいんですが、場合によってはこの範囲外の値が入る事が有ります。例えば500や-100など。そういう場合はそれぞれ140、260にしたいんですが、ifで場合分けする方法以外にスマートなやり方有りますか?

118 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:40:32.15 ID:2RvUZ1HO.net]
x=(x%360+360)%360;
mod2回とかひどいコードw

119 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:54:26.23 ID:qVN3pWO7.net]
math.a.la9.jp/ansinc.htm

これの大学院生の証明を信用すると
A<10^nなるAに対してA^2=K*10^n+AとなるようなAは
各nに対してA=p*2^n(=α[n]),r*5^n(=β[n])の
ちょうど2つあり、α[n]+β[n]=10^n+1を満たすことになる
よって、α[n]かβ[n]のどちらか一方を求めればもう一方も求まる
β[n]の構成方法は>>103で求まるので、これで全ての解が網羅される…はず
(ただし、α[4]=α[5]=9376やβ[3]=β[4]=625のように異なるnで解が重複することはあり得る)

120 名前:100 mailto:sage [2015/11/13(金) 00:50:19.24 ID:lCbsoecE.net]
ここまで数学の話になると自分は門外漢だな。参ったなぁ。
自分はC/C++しか使えないので、C++に多倍長が入るまで待ちますです。
自分の能力を疑う。。。Orz



121 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 00:51:09.68 ID:lCbsoecE.net]
ホント、数学怖い。

122 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 01:48:47.99 ID:oAcUw9gl.net]
>>96
Ruby
16桁で2秒くらい。
ideone.com/DzwaXc

123 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 01:56:56.44 ID:oAcUw9gl.net]
>>115
Rubyで。
ideone.com/YK6n9K

124 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 03:44:01.38 ID:lCbsoecE.net]
>>96
ideone.com/GDW8iY
C++。>>109-112の話を信じてコードにした。
だいたい>>102の劣化版になった。
>>102優秀!

125 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 03:44:43.48 ID:lCbsoecE.net]
1と5と6の倍数のどれかって結論になるんかねー。

126 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 17:25:00.01 ID:3TzLZ92T.net]
>>116
>>121
ありがとうございました。
JavaScriptでやりたいので 115 さんの方式でやることにしました。
Rubyの文法は良く分からないのですが、整数剰余 % は常に正の値を
返すのでしょうか?

127 名前:デフォルトの名無しさん [2015/11/13(金) 21:39:51.30 ID:VcgxUV6t.net]
お題:お財布軽算法
レジの買い物で財布の中身が最も軽くなるような支払い方を求めよ

条件:
・買い物の金額は999円以下
・硬貨(一円玉〜五百円玉)の重さは1とし、千円札の重さは0とする
・財布の中には、各硬貨が20枚以下と、千円札がちょうど1枚入っている
 (法律により同一硬貨20枚を超える支払いは店側が拒否できるらしい)
・お釣りはできるだけ価値の高い硬貨にまとめて支払われる
 (例:お釣り17円→十円玉1枚、五円玉1枚、一円玉2枚)
・両替目的の余分な支払いは禁止(例えば、10円の買い物で
 一円玉20枚支払ってお釣りとして十円玉1枚を受け取るのは禁止)

入力:
財布の中の各硬貨の枚数と買い物の金額が空欄区切りで順番に与えられる
(千円札は必ず1枚入っているので入力には含めない)
出力:
各硬貨および千円札の支払い枚数を空欄区切りで順番に返す

例:
0 0 0 0 0 0 1 -> 0 0 0 0 0 0 1
5 5 5 5 5 5 176 -> 1 1 2 1 1 0 0
1 2 3 4 5 6 789 -> 0 2 3 3 1 1 0
20 20 10 10 0 0 999 -> ?

128 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:05:01.72 ID:lCbsoecE.net]
>>125
ナップザック問題よく見るなー。

129 名前:126 mailto:sage [2015/11/14(土) 04:44:47.09 ID:ruukGtIx.net]
お題ボツ案

次に示すbrainf*ck亜種用のプログラムコードcode.txtを生成するプログラムを作成せよ

brainf*ck亜種の仕様
命令対応表table.txtに記載された文字列を命令ワードとしてcode.txtを解釈する
命令ワード以外の文字はコメント文字として無視して読み飛ばす

命令対応表table.txtの仕様
1行目に>に相当する命令を表す文字列がコロン区切りで並べられる
2行目に<に相当する命令を表す文字列がコロン区切りで並べられる
3行目に+、4行目に-、5行目に[、6行目に]、7行目に,、8行目に.、のが同様に示される
未定義の命令はないものとする(つまりどの命令にも必ず対応する命令ワードが与えられる)
命令ワードに使えるのは半角の英大文字・英小文字・スペースで構成される1文字以上の文字列

生成するプログラムコードcode.txtについて
(1) こちらが提示するtable.txtを命令ワードとするbrainf*ck亜種でcode.txtを実行する
この実行でcode.txtは新しい命令対応表を生成する(リダイレクトでtable2.txtに保存される)
(2) 先ほど生成されたtable2.txtを命令ワードとするbrainf*ck亜種で先ほどのcode.txtを実行する
この実行でcodetxtはこちらが指定した文字列を出力する
※つまりcode.txtは同一のファイルで2種類のbrainf*ck亜種用のプログラムコードとして解釈されるということである
※code.txtはどちらの実行でも必ず停止するようにする(無限ループさせてはならない)

code.txtのフォーマット
1文字のスペース区切りで並べられた実在する2文字以上の英単語と改行で構成される
各行2文字以上65文字以下で構成する必要がある、行末にスペースが来てはならない
※つまり人がcode.txtを開いて見た場合は英単語がでたらめに並べられているだけの文書ファイルのように見える

130 名前:126 mailto:sage [2015/11/14(土) 04:45:20.39 ID:ruukGtIx.net]
お題ボツ案 続き

(1)で使うtable.txt
====table.txt ここから
en:an:me
ry:ly:to
ea:ro:at
ou:is:



131 名前:of
ed:oo:we
es:ee:he
ff:qu
ll:th
====table.txt ここまで
(2)で出力する文字列
Hello
の5文字

例えば
road eat attacked meet seat early of he month

+++[>++<-].
と解釈される

評価ポイント
・code.txtの英大文字を英小文字に変換した状態において単語の平均出現頻度が3以下になるほど加点、逆は減点
・code.txtに出現する単語のうち「最短の長さの単語」の長さが4以上になるほど加点、逆は減点
・code.txtのファイルサイズ(ようは全体の文字数)が小さくなるほど加点、逆は減点

ボツになった理由
評価ポイントは俺自身が出した答えのcode.txtのファイルサイズを基準に点数付けする予定だったが
俺自身がこの課題を満足するコードを書けなかった
[]
[ここ壊れてます]

132 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 07:36:05.43 ID:HECTDRcm.net]
>>125
2つ目の例間違ってました

5 2 5 2 5 2 176 -> 1 1 2 1 1 0 0

133 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 01:14:20.57 ID:iZq4VH3S.net]
>>127
いくらチューリング完全とはいえ、こんな暗号何に使うんだよ。
IS関係かよ。

134 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 13:23:12.14 ID:qzaifS3v.net]
キレイにあいにいこう

135 名前:デフォルトの名無しさん [2015/11/17(火) 22:19:23.76 ID:qSlbRl0V.net]
突っ込みどころが幾つもあるからそりゃ書けんだろ

136 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 10:07:53.97 ID:MW0MQlR6.net]
お題:以下を出力する
ABBACACBBA
CBCBBBABC
AAABBCCA
AACBACB
ABACBA
CCBAC
CACB
BBA
BC
A

137 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 11:15:42.88 ID:4sFoEFSe.net]
>>133 Squeak/Pharo Smalltalk

| str |
str := 'ABBACACBBA'.
Transcript open.
[str isEmpty] whileFalse: [
 Transcript cr; show: str.
 str := str overlappingPairsCollect: [:a :b |
  a = b ifTrue: [a] ifFalse: [('ABC' copyWithoutAll: {a. b}) first]]]

138 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 16:23:59.84 ID:6s10vQob.net]
>>133 C
ideone.com/DJzS47

139 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 18:06:15.56 ID:D8fsp1uM.net]
>>133 c
#include <stdio.h>
int main() {
char buff[] =

140 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 18:23:26.04 ID:D8fsp1uM.net]
>>133 c
https://ideone.com/UAnRhr



141 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 21:29:20.89 ID:4nC9re2c.net]
>>133 Emacs Lisp

(require 'cl-lib)
cl-lib

(defun f (l)
(while l
(let (m)
(cl-mapl (lambda (s)
(princ (car s))
(let ((s (let ((x (nth 0 s)) (y (nth 1 s)))
(and y (if (eq x y) x (car (remove x (remove y '(A B C)))))))))
(and s (push s m))))
l)
(terpri)
(setq l (reverse m)))))
f

(f '(A B B A C A C B B A))
ABBACACBBA
CBCBBBABC
AAABBCCA
AACBACB
ABACBA
CCBAC
CACB
BBA
BC
A
nil

142 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 23:42:26.25 ID:YAZwGvpo.net]
>>133 Haskell
import Data.List

main = putStr . unlines . takeWhile (/= []) $ iterate f "ABBACACBBA"

f [_] = ""
f (x:x':xs) = (if x == x' then x else head ("ABC" \\ [x, x'])) : f (x':xs)

143 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 03:34:56.68 ID:phHpIHjD.net]
よく法則性わかったな。全く分からんぞ。

144 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 22:16:34.51 ID:uJ/1LVHK.net]
隣接した文字が同じならその文字、違うならそれ以外の文字

という法則性で書いてるようだけど問題中に指定はないから同じ出力ならなんでもいい
この類の出題に対する簡単な解決法は出力例をそのままコピペすること

145 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 12:08:27.30 ID:GuOf3/Bz.net]
>>141
だよねw

それよりも長くなってしまうコードは冗長なのかも。

146 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 12:28:08.45 ID:FQy8dcw9.net]
>>141-142
短いコード…つまりこうだな
ideone.com/PrSnh2

147 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 01:49:25.12 ID:HxaRKQeG.net]
>>133
Rubyで。
ideone.com/4sQ3ws

148 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 10:43:36.89 ID:jCDsTAiM.net]
>>133 ruby 2.0.0
s = 'ABBACACBBA'
s = s.tap {|s| puts s}.chars.each_cons(2).map() {|(a, b)| a == b ? a : 'ABC'.delete(a + b) }.join until s.empty?

149 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 21:57:54.41 ID:VKmO+9+0.net]
JavaScriptスレで、以下の質問をしました。
 1/3=0.33333
 1/2=0.5
 1/4=0.25
 みたいに、実数値を文字列化する時に、割り切れない時は四捨五入で小数点以下5桁で、割り切れるならその全桁数をそのまま文字列化したいんですが、一発で出来る関数や手法は有りますか?
と質問したら、曖昧で分かり辛いようだったので、もう少し詳しく、

 では、桁数n (n<=30)を指定するとして、
 割り切れない場合は小数点以下n+1桁目を四捨五入してn桁までを求める。
 割り切れる場合は、その全部を文字列化する。ただしnを超える部分が有る場合は、四捨五入の方法を用いる。
 これでいいかな?

と質問したのですが、浮動小数演算の世界では割り切れるかどうか判定できないので無理だよ、という意見なのですが、
私としては、浮動小数点演算で割り切れるかどうか判定出来なくても、プログラムは書けると思います。
それが出力する結果が数学的な意味での正しい解答になっていればいいと思うので。
でも良く分からないので、レベルの高いここで質問します。よろしく。

150 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 23:57:27.64 ID:BzULhZcd.net]
適当に10^n倍して整数の範囲でやれ
てかJavaScriptで簡単に30桁も扱いたいなら外部ライブラリでも使えよ



151 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 00:04:10.27 ID:O+sc6fcj.net]
>>147
出来ないならレスしなくても良い

152 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 00:20:18.37 ID:B5r/QkfM.net]
俺は出来ないから禁止じゃなくてよかったわ

153 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 01:02:10.19 ID:DvsQmrmL.net]
>>147
自分も10^N思いついたわ。
泥臭いけど、正しい数字がほしかったら急がば回れだと思うわな。

154 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 02:12:43.93 ID:DvsQmrmL.net]
うーん。暇だからいじってたけど失敗した。改良案募集中。
ideone.com/kC2jUa
C++。指数いじってるだけなのに明確に誤差が出る。
一番楽なのはsprintfのソース嫁。だと思う。

155 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 02:34:57.37 ID:WgXGKPIm.net]
>>146
有理数が割り切れるかどうかという話なら、既約分数の形で分母に2と5以外の素因数が含まれると
循環小数になる

整数に乗る範囲なら>>147で同じことができる

156 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 03:14:52.14 ID:DvsQmrmL.net]
>>146
ideone.com/MJYOa4
C++。数学ムズイな。log10(0.1)が-inf返す。理屈は知らん。
基本的なことは、 okwave.jp/qa/q3050160.html からパクってきた。
これ以上は俺のキャパ超えてますわ。頑張ってー。

157 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 08:08:20.28 ID:DvsQmrmL.net]
寝ようとしたらバグ思いついたのでフィックス。
ideone.com/KEG8so

158 名前: []
[ここ壊れてます]

159 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 09:36:21.17 ID:O+sc6fcj.net]
>>154
素晴らしい。完璧です。

160 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 21:34:13.25 ID:DvsQmrmL.net]
一応、最初に案だした>>147にも言っとけー。
それと何も違わんからな。



161 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 06:44:11.07 ID:et7wKfDy.net]
お題:2ビットバイナリのソートと復元。
ideone.com/aBSpRb
こういうコードを書きました。
不完全ですが、実用化に至ればどんなファイルも1kb程度に収まるすさまじい圧縮規格の草案デス。(妄想です)
さて、ソートと復元にパーミテーションを使っているのですがこれが超重たいです。困りました。
そこでこれを差し替えて、ソートと復元を軽くしたいと思っています。
さてなんかいい方法ありませんでしょうか。処理速度はあんまり重視していません。
その代わり序数などを用意する場合、64BIT整数の範囲に入ることが望ましいです。
自由な発想で何か思いついてください。お願いします。

ちなみに、このコードの弱点はメモリ使用量で、元バイナリの256倍メモリを消費します。

162 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 00:48:49.92 ID:KmrpGp6z.net]
>>157
その文章はネタなのかマジなのか…
ideone.com/4EkJzF

163 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 04:53:54.49 ID:6OpYz5rj.net]
ideone.com/nFKJnK
メモリ使用量を256倍から8倍に抑えた。
そしたら、>>158のコードが動かなくなった。Orz
っていうか、序数が簡単に64ビット突破してしまうなぁ。
N!をどうにかしないと。

>>158
乗ってくれてありがとう。

164 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 06:33:12.85 ID:6OpYz5rj.net]
序数なくしたい・・・。(^q^)

165 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 23:19:41.07 ID:Wkj8zlJv.net]
>>146
[実数値]は2進数の浮動小数点数で受け取るの?
それとも分母と分子の2個の整数で受け取る?

166 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 11:53:42.59 ID:2flNGmiy.net]
お題:楕円の長径と短径が与えられたとき、円周の長さを求める

167 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:05:37.72 ID:OagebEri.net]
>>162
それは楕円積分じゃね?
セイガクのとき勉強してうろ覚えだけど。

168 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:09:09.73 ID:4dGrKabk.net]
https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%86%E7%A9%8D%E5%88%86

169 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:17:32.62 ID:OagebEri.net]
楕円の外周の計算方法- 数学 | 教えて!goo
oshiete.goo.ne.jp/qa/439398.html

楕円の周の長さの求め方と近似公式 | 高校数学の美しい物語
mathtrain.jp/daennagasa

こういった近似解法の存在を知らないと、
自力でアルゴリズムを発見するのは天才級の頭脳がいる問題だぜょ
セニョール

170 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 23:34:24.64 ID:4dGrKabk.net]
「天才級」は言い過ぎでしょ



171 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 04:57:10.08 ID:3EaU/rl6.net]
>>162
ideone.com/cjVSmk
2分法かつモンテカルロ。
数学的に正しいかは知らんけど、一応近似はしてるんじゃないかと。
数学わかんねー。積分わかんねー。

172 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 05:22:43.49 ID:3EaU/rl6.net]
あれ?各種計算サイトと数字があわね・・・。
>>165の計算法あってる?

173 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 05:44:52.78 ID:3EaU/rl6.net]
ideone.com/gtoI4q
と、思ったら。
俺が計算パラメータ勘違いしてるだけだった。Orz
うごごごご。すまん。

174 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 09:59:25.88 ID:/HebolMS.net]
天才現る

175 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 19:56:53.86 ID:3EaU/rl6.net]
e!?

176 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:17:02.87 ID:3EaU/rl6.net]
いやいやいやいやいやいや・・・・・。
式パクってきて2分法書いて、モンテカルロやっただけですぜ。
天才とかとは程遠い。っていうか無縁。
天才っていうのは式を作る人。

177 名前:164 mailto:sage [2015/12/08(火) 20:20:16.07 ID:a07369ql.net]
おお、モンテカルロも手だな
解析的近似ばかりじゃなく
数値計算の力技もコンピューターならではの解法だ
したがって天才はコンピューターである。

なんちゃって

178 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:40:17.60 ID:3EaU/rl6.net]
実際、叩かれるつもりで投稿したんだがなんか怒られる兆しがないな。
いやー、コンピュータはすごいよ。

俺がじまんしたいのはモンテカルロより綺麗にかけた2分法のほうなんだよな。
まぁそれもベースはパクってきたわけなんだけど。Orz

179 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:44:12.32 ID:3EaU/rl6.net]
>>173
ちょうどいいから聞きたいんだけど、
一般的に積分に限らずデルタってどっから引っ張ってくるの?
わからなかったからランダム適応したんだけど。勘で・・・。Orz
作法あるんだったら知りたい。

180 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:53:40.72 ID:k5FAaYPJ.net]
モンテカルロよりはマシだろ

#include <math.h>
#include <stdio.h>
#define DIV_NUM 16777216
#define PI 3.14159265358979323846
#define A 3
#define B 2
int main(){
double x0 = A;
double y0 = 0.0;
double length = 0.0;
for (int i = 0; i < DIV_NUM; i++) {
double ang = i * (PI / 2 / DIV_NUM);
double x1 = A * cos(ang);
double y1 = B * sin(ang);
double dx = x1 - x0;
double dy = y1 - y0;
length += sqrt(dx * dx + dy * dy);
x0 = x1;
y0 = y1;
}
printf("%f", length*4);
return 0;
}



181 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:57:35.31 ID:k5FAaYPJ.net]
なんか微妙に間違ったな
値は大体あってるけど

for (int i = 1 ; i <= DIV_NUM ; i++){

こうだね

182 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 21:14:08.51 ID:3EaU/rl6.net]
俺の悩みは一体。もっといい理屈があるじゃないか!Orz

183 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 22:02:09.84 ID:k5FAaYPJ.net]
一番原始的な積分値の求め方だよ

184 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 22:08:33.54 ID:3EaU/rl6.net]
なるほど。勉強になるわ。

185 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 02:46:42.95 ID:WkKrcfNI.net]
>>162
ideone.com/Fpqwn1
C++。実はこれでよかったのか?
ゲーム世代だから、こう、もっと複雑なものを想像してたんだけど。
こんな感じでいいの?シンプルね。

スペシャルサンクス >>179@積分について教えてもらった。

186 名前:164 mailto:sage [2015/12/09(水) 21:24:48.15 ID:ZhIEYZLO.net]
>>175
台形式による数値積分の積分幅に応じた誤差は関数の
二次微分値(曲率)に応じて変化するので、積分幅を調整することによって
誤差を抑制したければ関数の二次微分に相当する値に応じた
幅を使えばいいとおも
あるいは区間の関数自体を非直線近似によって真の値からの乖離による
誤差を減らしかつ計算量を抑えるにはシンプソンとか二次曲線近似とか

187 名前:164 mailto:sage [2015/12/09(水) 22:44:23.10 ID:92NQQkZk.net]
いや、でも円を等分割したときの誤差率は
完全に分割角依存で
曲率半径には依らないか
なんか間違えちゃったかもwテヘペロ

188 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 22:53:48.61 ID:EF8HxpWM.net]
>>182
なんか素人が痛いからそろそろ止めた方が
板違いだし

189 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 00:24:50.66 ID:FNI4SdQA.net]
>>182-183
解説ありがと。
でも、数学わからんので数学用語がこんなに出てくると爆発しちゃうお。

190 名前:デフォルトの名無しさん [2015/12/10(木) 20:15:14.98 ID:qXWtOvvK.net]
お題:
西暦が与えられるので
その年の十月一日から翌年の二月末日までに
平日の月曜がいくつあるか求めよ



191 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:05:45.07 ID:1swodkqj.net]
>>186
>>平日の月曜がいくつあるか求めよ

平日の月曜というのがよくわからないのですが、
たとえば、春分の日とか秋分の日が月曜日ならばそれを除く
ということですか。
春分や秋分の日が日曜日のときは、月曜日が振り替え休日に
なりますが、その場合も除くのでしょうか。

192 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:14:37.28 ID:qXWtOvvK.net]
>>187
はい、祝日と振り替え休日を除いた日数です

193 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:26:01.14 ID:IEwdtYYT.net]
祝日って施行された年月日の表を持たないといけないね
決め方も途中で日にち固定じゃなくなった祝日もあるし

194 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 00:00:09.46 ID:QFhJl34b.net]
江戸時代には、祝日というものは正月ぐらいしかないだろうし、
祝日も明治5年の改歴以来いろいろと変わってきているので、
西暦をインプットして求めるといったって、そういう祝日が何年から
改訂されたかの表が必要でしょうし、第一天文学的に決める春分と
秋分の日が今日では、地球の自転を一定とした力学字で計算し、そして
その力学時と世界時との差を予測して世界時に直して日にちを決めて
いるわけだから、過去の世界時と力学時との差は判っているけれど
将来の差はあくまでも予測にしか過ぎないから、将来の春分や秋分の日
を求めて、それが月曜日にあたっていないと計算ではでても、その時の
世界時と力学時との差はその年にならなければ判らないから、将来
については、厳密にいうと計算できないことになります。
西暦を与えてということだから、たとえば西暦1000年については
どのように計算すればいいのですか。その頃の祝日というのは、どうすれば
わかりますか。

195 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 00:27:12.79 ID:eVuXsWSu.net]
日本国という縛りもありませんし。

196 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:26:06.24 ID:tt4EKsw8.net]
これアルゴリズムとか関係なくね?

DBに自分で登録するかそういうWebサービスを探して利用するしか

197 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:32:51.11 ID:tt4EKsw8.net]
>>189の言うように予め配列等に祝日のデータが入ってると仮定すれば答えようがあるかも

宿題や仕事で使うコードなら他人に投げるのは感心しない

198 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:40:36.76 ID:kB8+oJGq.net]
どこかで見た問題に適当に制約付けただけじゃね?
ちょっとでも考える能力あればこりゃ無理と分かるだろうし

199 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 09:08:34.35 ID:eVuXsWSu.net]
俺ニートだから、全部休日な。答えは0だ。

200 名前:デフォルトの名無しさん [2015/12/11(金) 13:06:30.20 ID:L6hqxofP.net]
paiza、「プログラミングで彼女をつくる」オンラインハッカソンを開催 | マイナビニュース
エムアウトグループのギノは12月8日、IT/Webエンジニアに特化したプログラミング転職サイト「paiza」にて、恋愛プログラミングゲーム「paiza オンラインハッカソンVol.7 プログラミングで彼女をつくる」を公開したことを発表した。
開催期間は、2015年12月8日12時00分から2016年1月13日23時59分まで。
news.mynavi.jp/photo/news/2015/12/09/611/images/001l.jpg
news.mynavi.jp/photo/news/2015/12/09/611/images/002l.jpg
news.mynavi.jp/news/2015/12/09/611/




恋愛SLG: プログラミングで彼女をつくる|paizaオンラインハッカソン7
https://paiza.jp/poh/ando



201 名前:デフォルトの名無しさん mailto:sage [2015/12/12(土) 00:02:55.04 ID:epBUOQqG.net]
ニッポンバンザーイ!!!

202 名前:デフォルトの名無しさん mailto:sage [2015/12/12(土) 01:49:09.61 ID:g+kFVlkS.net]
>>196
全部解くのに70分、水着に30分かかってもーた

203 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 07:17:29.28 ID:O2iUJZml.net]
>>162
ideone.com/gPjeg8
C++。意味も分からずパラメータをいじっていたらより模範解答に近づいたのでアップ。
なぜかGCCではコンパイルできない。
メルセンヌツイスタは優秀だな。さすがモンテカルロ用乱数。

204 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 07:23:54.61 ID:O2iUJZml.net]
今見て思ったんだけど、このコード乱数使ってるのにこの精度だと値がほとんど一意なんだな。
これどれくらいあってるんだろう??

205 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 14:41:46.73 ID:X4YbRsnm.net]
お題:モンテカルロ法でドーナツから切り取った部分の体積と表面積を求めなさい
uproda.2ch-library.com/909700o0Q/lib909700.bmp
参考:
3次元CADでは
体積  194#.##・・・
表面積 99#.##・・・

206 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 16:48:49.04 ID:sP1yS+qf.net]
>>201 C++
体積だけ
ideoneが調子悪くてせっかく書いたのが消えた
出力にはそれらしい数字が表示されてるでしょ
ideone.com/NK8Obe

207 名前:201 mailto:sage [2015/12/13(日) 16:58:32.34 ID:sP1yS+qf.net]
ついイライラしてクソ解答を書き込んでしまったが、コード書きなおした
ideone.com/l7avA0

208 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 22:16:08.38 ID:O2iUJZml.net]
ideone.com/9dojVw
C++。謎の係数に轟け。

209 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 02:29:21.98 ID:eVz/xHue.net]
>>201
ideone.com/jTXuFD
ちょい、リファレンス間違ってねーか?
詳しくはウィキペディア見てくれ。
https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%BC%E3%83%A9%E3%82%B9

210 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 02:30:05.61 ID:eVz/xHue.net]
あー切り取った部分だった。Orz



211 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 03:09:34.83 ID:eVz/xHue.net]
真面目に考えると結構難しいなぁ。

212 名前:200 mailto:sage [2015/12/14(月) 09:45:09.75 ID:qfulNci3.net]
正確な値:
体積   1946.99
表面積  992.95
(±0.5%ぐらいなら正解かな)
1937〜1956
988〜998

213 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 14:54:41.43 ID:0wzBU9LM.net]
>>201 C++
表面積だけ
アプローチが間違ってるのでだいぶ誤差があるんだけど、正しいアプローチがわからん
ideone.com/Z07oLX

214 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 15:51:49.07 ID:qltyQEb4.net]
(ヒント)
バナナの表面積はわからないけど
バナナの皮を剥いてミキサーにかけて
どろどろにして軽量カップに移せば体積はわかる。
バナナの皮が極めて薄ければ
(あまり薄くするとモンテカルロが不安定になるから0.1ぐらいがいいかな?)
軽量カップの体積=バナナの表面積×皮の薄さ
よって、
バナナの表面積=軽量カップの体積/皮の薄さ

215 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 21:26:29.60 ID:LGdp/ous.net]
>>210
おいおい,体積(と密度)を一定にしても表面積はいかようにもかえられるぞ‥

216 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 22:01:47.63 ID:5mSwVQ2V.net]
>>201
ideone.com/mYkufI

まあまあかな
表面は>>210の方法じゃなくて2個に分けてみた
平面の方は簡単だけど、曲面の方はちょっと複雑

>>210じゃさすがに誤差が大きいんじゃ?

217 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 22:50:43.48 ID:A0mNKi9L.net]
>>211
表面境界の方程式がわかってるんだから
そこから薄い0.1厚範囲の体積がモンテカルロでわかれば
その体積÷0.1でほぼ表面積なんじゃないかな。
精密にするには(外側0.1厚+内側0.1厚の範囲の体積)÷0.2のほうがいいけど。

218 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 19:16:41.27 ID:HlYC/kU7.net]
薄膜に当たる率が低くて非効率すぎる

219 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 19:17:41.82 ID:HlYC/kU7.net]
面は面の率でやらないと

220 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 21:37:30.34 ID:HlYC/kU7.net]
ideone.com/GqQTYQ
普通に積分を使ってやるとこんな感じ

>>208
CADの誤差って結構大きいね



221 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 21:51:36.86 ID:HlYC/kU7.net]
ideone.com/fYxQyU
薄皮方式

>>212 に比べて誤差は大して変わらなかった

222 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 21:59:12.88 ID:HlYC/kU7.net]
>>212の曲面部分の効率が悪いのが原因か
60度の範囲だけ調べれば十分だから同じ精度で3倍は早くなる
同じ時間だと誤差は1/√3に

223 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 14:09:16.90 ID:8FwsYmi7.net]
>>216
CADも高価(50万以上ぐらい)なのは正確
Autocad体験版(70万)で試したらは正確だった。
自分のは6万の安物

224 名前:デフォルトの名無しさん mailto:sage [2015/12/17(木) 07:16:30.79 ID:MUNBX9mT.net]
>>219
正確な値はどうやって調べました?

225 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:37:34.32 ID:R5LeEZzK.net]
6あれば9あり

226 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 21:50:12.68 ID:+ldhkJyO.net]
お題:丸括弧を行頭か行末にしかかけないルールで整形する

227 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 00:42:27.39 ID:uvgJJP9n.net]
意味不明

228 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:24:49.38 ID:zvvbCA1Y.net]
与えられた文字列を適当な個所で改行して整形してください
ただし、丸括弧は必ず行頭か行末にくるようにすること

229 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:47:27.56 ID:+one86k3.net]
いわゆる禁則処理を実装しろって事か?

230 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:52:26.53 ID:uvgJJP9n.net]
>>224
ideone.com/of1XGC
C++。Lispのインタプリタでも作ってるのか?
これくらいできないと先は暗いな。



231 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:08:45.49 ID:V7QFceGd.net]
>>226
39~40行目で改行から80文字数えてるけど、ここにも改行処理入れるつもりだったのでは…?

232 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:09:49.09 ID:V7QFceGd.net]
>>227書いて、ideone更新したら改行処理入ってたw

233 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:19:55.66 ID:JMFsFNWO.net]
あぁ、すまん。
ちょっとコードに不満あったから修正してた。
ソーリー。たぶんこれでおk。

234 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 09:05:47.31 ID:q7MBupA+.net]
>>229
あなたGitHubやらんの?

235 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:06:02.54 ID:T+sfUcIf.net]
>>230
アカウントはもってるが、コマンドが不理解で使えてない。
VSでコンパイルするたびにプッシュしてほしいんだけど、
そういうことのやり方がさっぱりで諦めた。

236 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:36:01.27 ID:Rf5WBlJJ.net]
>>231
VSもGitはコマンドライン操作?
あなたコード書くの好きそうだしGitHubで公開した方がいいんでない

237 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 00:04:03.34 ID:zkqY07q7.net]
>>232
一応GUI統合のパッケージがあるのだけど、
使い方がVSのそれじゃない感じなので挫折したっていうね。
今は治ってるのかなぁ・・・。

まぁ、コード書くのはきらいじゃないんだけど、
タマに書くコードとかはお遊戯なので公開してもあんまりメリットないと思います。
まぁちょっと試してみるか。

238 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 01:06:22.14 ID:zkqY07q7.net]
一応、VS上からサバに送ることはできた。
しかし、鯖側が何やってるか把握してないので、頭沸騰しそうだよぉ。
すごい、怖いです。

239 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 15:27:55.80 ID:B86ZwWUs.net]
個人開発ならadd, commit, pushだけ使えればおkじゃない

240 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 23:56:47.54 ID:zkqY07q7.net]
ググるならそれで困らないと思う。
だが、VS上では日本語なので何をやってるかさっぱりでやり直しなのだ。
勘でこういうことだろう。っていうのを類推しながら昨日やってたが、頭沸騰する。
マジ、苦行だ。



241 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 06:03:10.21 ID:HSsTu4WU.net]
Gitのプロジェクトを管理してる日本人が本出してるからお布施してみれば

242 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 08:15:12.42 ID:BOREIzQ4.net]
気が向いたらやりまっす。

243 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 00:17:22.29 ID:1GOOzyNm.net]
お題:猿から餌を守る。
動物園では猿の餌を3桁の回転ダイヤル式鍵で保管管理しています。
各桁は0〜9までのどちらの方向にも回せるタイプです。
しかし猿は定期的に鍵を開けようと試みます。
猿は各桁のダイヤルをそれぞれ1操作回転させてからU字部を引きます。
もちろん、設定と合った場合は開錠してしまい餌を盗られてしまいます。
猿は番号を覚えたり、ダイヤルを順番に試すような知恵は無いので
常に操作は無作為です、また回転させる方向も無作為です。
しかし、この鍵は特殊で作られていて、回転の摩擦抵抗を(弱・中・強)
に設定出来るようになっています。
弱の場合は1操作で、10〜20までのランダムなステップ数が回ります。
中の場合は1操作で、5〜10までのランダムなステップ数が回ります。
強の場合は1操作で、0(回せなかった)又は、1ステップ数が回ります。
ここで、3桁の設定をどのようにすれば、猿が最も開錠する確率が低くなるでしょうか?
3桁の順番は関係ないと思うので、例えば
(2桁を中、1桁を強)または(2桁を弱、1桁を強)などと答えてください。

244 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 00:33:02.82 ID:kHVCdoOu.net]
ドンだけランダム必要なんだ。ちょっと面倒だなぁ。

245 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 02:00:08.64 ID:kHVCdoOu.net]
>>239
ideone.com/NBUZIw
C++。ローカルでデバッグしたら収束しなかったので、ほとんどデバッグしてない。
なぜかイデオン上では速攻オワタ。
大丈夫かこれ???

246 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 02:00:55.35 ID:kHVCdoOu.net]
ところで、GITHUB公開したらメールばれするじゃないか。
そんな趣味はありませんですことよ。

247 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 02:52:11.77 ID:kHVCdoOu.net]
ちょ、誰かいない?
>>241検証できる人いませんかー。
デバッグできないので何ができるわけでもないけど。

248 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 09:45:56.04 ID:gJy9w4AY.net]
新年問題きたか

249 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 12:42:50.44 ID:2anvHRU0.net]
>>239 Java
ideone.com/ZAAHRo

250 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 13:19:32.68 ID:/Zl81OUL.net]
数学的に解きたくなってしまうな・・・



251 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 00:32:27.90 ID:9G3HgWpt.net]
>>239
ideone.com/XqmuP4
C++。ちょっとバグってたの修正。0〜8までしか選択できてなかった。

252 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 00:34:34.13 ID:9G3HgWpt.net]
あけましておめでとうございます。

253 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 01:02:54.81 ID:yxxZ1kbC.net]
おめでとうございます

254 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 13:06:55.68 ID:eZmmhQ/k.net]
あけましておめでとうございます。今年もよろしく。
新年最初の問題なので簡単そうで難問に挑戦してください。

お題:直角三角形ABCがあります。
∠Cが直角とします。
ACの長さは5cmです。
ABの線上に点Pを取りました。
APの長さは2cmです。
ここでPからCに線分を引きました。
PCの長さを測るとちょうど4cmでした。
この直角三角形ABCのBCの長さは何cmでしょうか?
なるべく正確に出しなさい。

255 名前:249 mailto:sage [2016/01/01(金) 13:23:06.00 ID:eZmmhQ/k.net]
訂正
問題ミスです。簡単ですねw

256 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 14:48:21.26 ID:BqDq7bML.net]
余弦定理よりcosA=13/20
1+(tanA)^2=(1/cosA)^2 よりtanA=√31/13
BC=5tanA=5√31/13

257 名前:249 mailto:sage [2016/01/01(金) 20:25:54.12 ID:eZmmhQ/k.net]
訂正お題:△ABCがあります。辺BCが底辺です。
(それぞれの角は90°以上にならない普通の三角形です。)
BCの長さは8cmです。
CからABの線上に垂線を下ろし点Pを取りました。
APの長さはちょうど1cmなりました。
さらにPからBCの線上に垂線を下ろし点Qを取りました。
PQの垂線の長さはちょうど3cmなりました。
さてBQの長さは何cmでしょうか?(注意:解が1つとは限りません。)
小数点以下6桁まで出しなさい。

258 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 08:23:10.74 ID:R8CGoUf/.net]
>>239 Java
ideone.com/4144a7
5秒に収まらなかったでござる…だが精確にはなったと思う

259 名前:249 mailto:sage [2016/01/02(土) 16:54:58.87 ID:qBZ4J2GA.net]
どうもm(_ _)mごめんなさい、簡単そうで定規コンパスで絶対作図出来ない三角形
やっと思い出しました。(恐らくCADでも作図できない。)
お題:△ABCがあります。辺BCが底辺です。
(それぞれの角は90°以上にならない普通の三角形とします。)
三角形の高さは7cmです。
BCの長さは10cmです。
ABの線上に点Pを取りました。
APの長さは1cmです。
ここでPCの線分を引き長さを計るとちょうど8cmなりました。
さてPBの長さは何cmでしょうか?
小数点以下6桁まで出して下さい。

260 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 18:31:25.74 ID:R8CGoUf/.net]
>>255 Java
ideone.com/NJYMYX
よーわからんがこれでええのん?



261 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 21:36:26.87 ID:qBZ4J2GA.net]
>>256
Goodです。やはりプログラムは簡便に求まりますね。
確か、方程式にすると4次方程式だったかな。

262 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 23:12:30.77 ID:wbcMORBx.net]
6次にはなったけど、4次になる?
どうやるの?

263 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 23:57:06.31 ID:wbcMORBx.net]
6553600 x^6 -22937600 x^5 +30353664 x^4 -18575872 x^3 +5301408 x^2 -889056 x +194481 = 0
の解(の1個)に対して、
8x / (7-8x) が求める長さ

264 名前:255 mailto:sage [2016/01/03(日) 00:02:35.63 ID:j2CXypF5.net]
うん、さっぱりわからんww

265 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 00:10:58.01 ID:o15FFH+r.net]
普通にpyを8xと置いて方程式を立てて整理しただけ

266 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 00:35:54.90 ID:TvE7D5Dq.net]
>>255 Emacs Lisp

(require 'cl-lib)
cl-lib

(let ((Ay 7.0) (Bx 0.0) (By 0.0) (Cx 10.0) (Cy 0.0) (AP 1.0) (PC0 8.0))
(let ((Axmin Bx) (Axmax Cx) PB0)
(cl-loop
(let ((Ax (/ (+ Axmin Axmax) 2)))
(let* ((Px (let ((a (+ 1 (expt (/ Ay Ax) 2)))
(b (+ (* -2 Ax) (/ (* -2 Ay Ay) Ax)))
(c (+ (expt Ax 2) (expt Ay 2) (- AP))))
(/ (- (- b) (sqrt (- (expt b 2) (* 4 a c)))) (* 2 a))))
(Py (* (/ Ay Ax) Px)))
(let ((PB (sqrt (+ (expt (- Px Bx) 2) (expt (- Py By) 2))))
(PC (sqrt (+ (expt (- Px Cx) 2) (expt (- Py Cy) 2)))))
(and PB0 (< (abs (- PB0 PB)) 0.000001) (return (format "%f" PB)))
(setf (if (< PC0 PC) Axmin Axmax) Ax)
(setq PB0 PB)))))))
"7.959000"

267 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 02:58:05.62 ID:o15FFH+r.net]
>>249 をニュートン法で解くのが良い
100万桁くらい求められる

268 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 15:15:54.32 ID:gIFHPruM.net]
>>255 Haskell
適当にやったけどそれなりの値に収束したぞ

main = print $ f 3 1 !! 10000
f x d = x : f (x - g x * d) (d * 0.9)
g x = sqrt(1-((x^2+10^2-8^2)/(x*10*2))^2)*(x+1)-7

--
7.958400097301163

269 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 17:50:09.78 ID:cbZEOl3j.net]
249とかは、プログラミングの話題とはあんまり関係ないと思うんだが

270 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 18:16:31.23 ID:mH8w9NDh.net]
正しい値
7.958999540670207177702263965366890868924353898555
7799452182420944176743383277819472811732768796743
8318898738257814428173492288313392264554506228517
666119...



271 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 18:19:15.52 ID:mH8w9NDh.net]
>>201 の正しい値
1947.11807954634173960535758830613451914405126679271213882
533811635602148727751327773910199748046019861942974251070
215931647320721843150204685782788027005081182762594264937
472455162842376624181590647736961208708004693388297869382...

992.957114044052359738684758693502096892477144491881820261
461861302037924597815356848916173956940410685796740490976
075326082780973939688404480667490868665288270999173692699
242549879611533131497908524170290199136162010153658336901...

272 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:15:21.96 ID:2qKIN/Bt.net]
お題: 1~n行の文字列が入力されます。'*'の矩形で囲って出力してください
例:(出力は左詰め半角スペースでパディングしてるつもり)
in < ab
in < abc
in < a
out >
******
* ab *
* abc *
* a *
*****

以下のオプションは取捨選択自由です
a. タブ文字への対応(矩形が崩れなければおk)
b. 右詰め、中央詰めの選択可能な実装
c. 日本語への対応

273 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:21:33.67 ID:XS9KJKDz.net]
aは4タブか8タブかで宗教戦争に入るからなぁ。
bは割とできる方。
cはC++だとめちゃくちゃ大変。ウニコードコンテナ入らないと難しい。
あと、等幅フォントじゃないと難しい。

274 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:37:44.81 ID:2qKIN/Bt.net]
>>269
ですね。追加で

d. a.で半角スペースに変換する場合、半角スペース数の選択可能な実装

275 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:46:59.74 ID:2qKIN/Bt.net]
c. は確かに等幅フォントじゃないとアレですね、環境依存ですね
等幅フォント前提でおなしゃす

276 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 02:58:33.88 ID:XS9KJKDz.net]
>>268
ideone.com/is1MNF
C++。" ab"は判断が分かれるので何もしなかった。
大体あってると思うが、適当に手を抜いた。かしこ。

277 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 21:17:40.87 ID:0oN+Zp9M.net]
>>268 rust 1.5
ideone.com/eVtL4a

278 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 23:31:52.04 ID:XgHkIVxU.net]
>>268 J
echo '*',~'*',('* ' , ,&' *')

279 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 23:42:05.32 ID:XgHkIVxU.net]
>>274 なぜか途中できれちゃったのでもう一回

>>268 J
echo '*',~'*',('* ' , ,&' *')"1,;._2 toJ stdin ''

280 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 00:43:09.92 ID:So/btKLV.net]
お題:ウラムの螺旋(素数螺旋)にて
上下左右が素数で囲まれている数(偶数なので素数でない)
の若い方から順番で1000番目の数を求めなさい。
(参考)
1番目  6
2番目 12
3番目 72



281 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 00:57:27.35 ID:iy9dE6+2.net]
ttp://sim.okawa-denshi.jp/teikokeisan.htm
こちらのサイトの

282 名前:一番上の抵抗分圧の抵抗の組み合わせを抽出するプログラム
をC言語で作りたいのですが、いまいちどういう風に作ったらいいか
わかりません。
このプログラムは与えられたV1とV2からV2に近くなるR1とR2の組み合わせ抽出するというプログラムです。
抵抗分圧の公式はV2=V1*R2/(R1+R2)です。
E24系列というのはRの基本値で、1, 1.2, 1.3・・という決まった値でそれの10倍値や100倍値も存在し、
MAXだと100万倍ぐらいまであります。(1MΩとか10MΩ)
R1とR2の全組み合わから一度Voutを計算して、V2と一番近くなる組み合わせをだそう
かと思ったのですが、Rの組み合わせが膨大で現実的ではありません。
なにかいい方法はないでしょうか?
[]
[ここ壊れてます]

283 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 00:58:35.84 ID:864z2gB2.net]
いつから1が素数になったんだ?

284 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:02:29.55 ID:864z2gB2.net]
>>277
普通に全組合せでも一瞬で終わるとおもう
R2を決めれば、理想のR1が求まって、それ以上の最小の抵抗と、それ以下の最大の抵抗をR1とすればかなり絞れる

285 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:12:29.69 ID:So/btKLV.net]
>>278
じゃあ
1番が12で

286 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:16:09.22 ID:864z2gB2.net]
1000個以上存在することはわかってるの?

287 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:17:14.81 ID:LSwKLHy0.net]
>>277
例えばE24の場合、抵抗値の全パターンは168。

@ループ条件として、168個の抵抗値を順にR1とする。
A目標の比率になる理想的な抵抗値を算出する。
Bそれに近い前後の抵抗値を見つけ、前後で目標に近い値を候補として残す。
C前回のループで見つけた候補と比較し、より目標値に近い値を候補として残す。

ループを抜けると、「チン」と音がして、料理ができあがる。

こんな感じかな?

288 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 01:20:02.16 ID:So/btKLV.net]
>>281
わかってる。2分で計算できた。

289 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 09:42:10.08 ID:XJFbEDkM.net]
>>276 Java
ideone.com/k4Ixhh
あってるかどうかはしらんw

290 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 18:37:16.70 ID:864z2gB2.net]
>>284
そのコードって答えを知ってるから書けるんであって、
それなら以下でも本質的には同じと思う
int main(){return 13833270;}



291 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 19:08:13.72 ID:XJFbEDkM.net]
>>285が何を言いたいのかがわからん

292 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 20:08:35.41 ID:JaO9gEs7.net]
上限を定めない素数生成をどうするかもポイントだろうに
16777216が上限と決めうちなのが気にくわないんだろ

293 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 01:08:51.74 ID:POOOZq0F.net]
>>285
ideone.com/9Gd7Fg
これで満足か?

294 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 09:54:57.98 ID:ZDlTAjvh.net]
君が満足ならいいんじゃない?
>>284でも

295 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 10:01:36.42 ID:ZDlTAjvh.net]
>>285で満足ならそれでも

コンパイラの最適化で>>284>>285>>288が同じコードになる日も来るかもしれない

ちなみに、>>276のような数が無限個ある証明は現代では誰も出来ない
(出来たら歴史に名が残るレベル)
有限個である証明はもしかしたら出来るかも

296 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 10:11:43.67 ID:ZDlTAjvh.net]
おれは出題者でも審査員でもないからな
おれの機嫌を伺う必要は無いよ

297 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 16:49:42.83 ID:264QGEmB.net]
ケチつけといて、修正したら機嫌をうかがう必要はないとかキチガイかよw

298 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:24:43.51 ID:qXOiofIi.net]
ただの感想だ
>>284で満足なら良いんじゃない?
出題者の意見は?

299 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:39:56.92 ID:kmeCYvLc.net]
プログラマってアスペなのか何様?って奴多いよな

300 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 22:53:14.83 ID:vCzR1C5c.net]
>>277
総当たりでやってもE192の場合でもそんなにかからず終わるよ。



301 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 23:46:05.37 ID:2OCOgJAF.net]
>>293
感想より自分のコードは?

302 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 06:47:36.82 ID:9RGbGjss.net]
ideone.com/HsphGH
特に関係ないのだけど、追記型素数検出器作った。
まあ、何かに使うわけじゃないけど、一応作ったのでアップ。
暇だったんだよ。

303 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 09:45:56.17 ID:a60MvDTP.net]
>>293
>>285

304 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 15:24:29.41 ID:lhTTumXW.net]
276ですが、
総当りでやってみたのですが、プログラムが悪いせいか
結構時間がかかってしまいます。
抵抗の系列の基数をdoble型の配列にしたのがよくない上に
dobleだと誤差がでて、丸めの処理を入れないといけなくなって
さらに時間がかかってしまう状況です。

305 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 15:47:41.33 ID:qvsZxuE5.net]
>>299
E192の場合で書いてみた。これで試してみて

ideone.com/nwNvID

306 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 16:09:41.53 ID:5rhebb ]
[ここ壊れてます]

307 名前:dV.net mailto: 総当たり168*168=28224パターンに時間がかかる298のコードが気になる []
[ここ壊れてます]

308 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 17:35:41.78 ID:lhTTumXW.net]
>>301
すみません。補足します。
実はCだとそんなに遅くなかったのですが、
今はjavaでも書いてまして。
doubleの誤差を丸めるためにループ分ビッグデシマルで
四捨五入したら時間かかるようになってしまったんです。

>>300
ありがとうございます。
参考にします。

309 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 17:38:57.83 ID:qvsZxuE5.net]
Javaで書いても、根幹部分は変わらないでしょ。
そんなに丸目誤差を気にするところないと思うけどな。

310 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:12:14.88 ID:qvsZxuE5.net]
>>302
>>277で紹介したサイトなんだけど、
例えばE24で、1000V,と0.01Vを指定したときの答えがおかしくないですか?
こういう回答をする内部ロジックがとても気になってきました。



311 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:26:12.91 ID:lhTTumXW.net]
>>303
たとえばdoubleでとったR1の配列を表示しようとしただけでも
110としてるはずなのに110.0000000001みたいに表示してしまうし、
原理的に3Ωと2.7Ωの組み合わせがOKだったら、30kと2.7kΩの
組み合わせでも誤差は同じはずなのに計算過程で小数点以下
が微妙に異なってしまい結果にでてこなくなったりしてしまいます。

312 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:27:23.21 ID:lhTTumXW.net]
原理的に3Ωと2.7Ωの組み合わせがOKだったら、30kと2.7kΩの

原理的に3Ωと2.7Ωの組み合わせがOKだったら、3KΩと2.7kΩの
に訂正します。

313 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 20:43:02.29 ID:SFsRUuPo.net]
decimal使うか丸め処理入れるか

314 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 21:14:00.89 ID:5rhebbdV.net]
誤差が嫌なら整数(を使った分数)で計算すれば?

315 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 23:02:11.31 ID:lhTTumXW.net]
276ですが、
極端に遅くなるのはバグでした。
すみません。
比較用の全リスト作成をループ毎で実行していたせいでした。
ということでデシマル使ってもそこまで遅くならないみたいです。

316 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 01:00:32.10 ID:WeGPRoDh.net]
1000 13833270
2000 36950448
3000 62765388
4000 92605770
5000 122764008

これであってる?

317 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 10:47:18.56 ID:ClOdxYy7.net]
>>310
出題者ですが1000はあってる。1000以上は計算していないが
1 12
2 72
3 1152
4 1452
5 1950
6 3672
・・・
を計算する数列なら恐らくあっている。
1000までの間隔の最小は12で最大は96360で不規則。

318 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 21:26:25.48 ID:PJcKfdaW.net]
出題者じゃありませんが、合ってます
こんな感じ
1000 13833270
2000 36950448
3000 62765388
4000 92605770
5000 122764008
10000 299498628
20000 717493758
50000 2306937132
100000 5427079830
200000 12675688842
500000 38766060522
1000000 89373316260
2000000 204583856130
5000000 606668296320
10000000 1374073119822
20000000 3099496478412

319 名前:デフォルトの名無しさん [2016/02/02(火) 05:04:22.87 ID:+n78UQ/o.net]
定期age

320 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:age [2016/02/02(火) 15:21:32.92 ID:CI2b+eqR.net]
お題:ファイルやフォルダの名前、ファイルの中身に含まれて
いる複数のタグ({{AppName}}や{{Authors}}など)を一括置換した結果の
フォルダを作成するプログラム。
文字コードは少なくともUTF-8をサポートせよ。



321 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 16:02:19.62 ID:5quLb8ti.net]
>>314
環境依存なので嫌どす。
頑張ってください。

322 名前:デフォルトの名無しさん [2016/02/23(火) 11:02:15.31 ID:ltvQNGjy.net]
>>2
過去スレ
7 peace.2ch.net/test/read.cgi/tech/1429195275/

前スレを、テンプレに追加して

323 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 07:21:11.33 ID:052J+z1F.net]
止まっちゃったなぁ。
最近はギトハブに上げてるわ。趣味プロを・・・。

324 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 09:12:07.86 ID:i+krYFXY.net]
2ch過疎ってるねぇ

325 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 12:30:35.23 ID:Q5mbPZul.net]
お題:ウラムの螺旋(続き)
ウラムの螺旋にて、素数が斜めに隣接(2と3,2と11以外は斜めしかない。)
したものを以下の図のように線分で結びます。
ttp://www.dotup.org/uploda/www.dotup.org758222.jpg
なぜか、1個の非素数を囲んでる最小の ◇ 図形以外で
(ちょうど前問の上下左右が素数に囲まれた位置になります。)
複数の非素数が囲まれている閉じた図形は存在しないようです。
例えば、仮に203が素数ならば11個の非素数を囲めたことになりますし、
また例えば、仮に141が素数ならば2個の非素数を囲めたことになります。
(正確には"日"の文字が45度傾いたような図になりますが外枠だけを考えて2個囲めたと
します。)しかし、203も141も素数でないので、成立しません。
以下は約30000までの図。(中心の赤が1の位置)
ttp://www.dotup.org/uploda/www.dotup.org758224.jpg
さて、複数の非素数が囲まれている閉じた図形は本当に存在しないのでしょうか?
それとも、数を多くすればどこかにあるのでしょうか?
プログラムで検証してみてください。
例えばいくつまで検証したが無かったとか、いくつで初めて出てきたとか
(その場合は囲む素数を列挙してください。)

326 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 13:38:15.98 ID:052J+z1F.net]
今手持ちのライブラリで実現できそうだから32bitmaxまでの設計を試案してみた。
しかし、今日は寝ないといけないのでまた明日やるかも。確約はしないけど。
タートルグラフィック作った

327 名前:ですよタートルグラフィック。
それと追記型素数検出器でできるかもなーと、青写真を描いただけだけど。
ただ、メモリが足りるかわからん。
[]
[ここ壊れてます]

328 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 16:26:13.84 ID:052J+z1F.net]
light.dotup.org/uploda/light.dotup.org302431.png
眠れなかったので、コード書いてた。
デバッグがてらに16ビット求めてみた。
厳密な数字は計算してないのでどこで何番が出現したかは知らない。ただ絵を生成している。
メモリ18GBも使うアプリ作ったの初めてだよ。ホラブルホラブル。
一応、仕込んで寝るけど、落ちないようにお祈りしておこうかな。

329 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 23:11:37.20 ID:052J+z1F.net]
終わらないよー。現在7時間で7000万カウント。
どんどんペース落ちてる。素数列挙重い・・・。Orz

330 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 02:54:24.43 ID:p8lHTaCd.net]
いったん止めます。



331 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 03:24:10.39 ID:p8lHTaCd.net]
レッツリトライ。アルゴリズムを見直した。

332 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 04:56:48.77 ID:p8lHTaCd.net]
さらに見直し。速度低減をなくした。
結果的に10倍ぐらい早くなった。かな?

333 名前:デフォルトの名無しさん [2016/02/29(月) 05:17:02.90 ID:I3HQeNlK.net]
素数列挙ではダメで囲いサーチだろ。

334 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 05:36:03.42 ID:p8lHTaCd.net]
画像生成するので目で確かめようと思ってます。
ただ、それが何番かはわかりません・・・。Orz

335 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 06:39:18.63 ID:wRRlOVxG.net]
コマネチ!

336 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 18:22:11.19 ID:p8lHTaCd.net]
うぅ。13時間回して1.9億カウント10日かかりますわ。
ソース公開するからやめていい?

337 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 18:24:23.39 ID:p8lHTaCd.net]
並列化してもうまくいって二日か・・・。

338 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 19:36:07.25 ID:p8lHTaCd.net]
26bitで再計算。こっちは2時間半で終わる予定。もーヤダー。
最新PCでも10日とか、俺ってタコ。

339 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 21:54:34.42 ID:gY4tu7UX.net]
試しに28bitで計算させてみたけど1つも見つからなかったよ。

プログラムのバグじゃ無きゃ良いけど。

340 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 21:59:36.65 ID:gY4tu7UX.net]
コードはこんな感じ
35行目のNに対し、2N bits空間の素数について調べる。
https://ideone.com/C2FulF



341 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 22:24:57.60 ID:p8lHTaCd.net]
生成物:www.dotup.org/uploda/www.dotup.org760416.png
そーす:www.dotup.org/uploda/www.dotup.org760433.zip
やーっと終わった。26ビット計算。
縁に黒いのあるのは境界線系のバグの可能性が高いので精査よろしく。
燃え尽きたぜ。

>>332-333
先越された・・・。Orz

342 名前:デフォルトの名無しさん mailto:sage [2016/03/01(火) 04:48:06.87 ID:/oGISoD7.net]
>>334
中心に緑の点を打ってくれんかのう‥

343 名前:デフォルトの名無しさん mailto:sage [2016/03/01(火) 07:17:18.80 ID:iONc0Loh.net]
無いってことは規則的に循環でもしてるのか?
お前らリーマン予想解いたんか?

344 名前:332 mailto:sage [2016/03/01(火) 09:07:57.31 ID:fxkt5PE4.net]
>>334
なんだか無駄な処理が多いように見える
素数性判定を1個1個するよりエラトステネスの篩を使うとかしようぜ。

# 32bitで見つからんかった

345 名前:332 mailto:sage [2016/03/01(火) 22:38:46.95 ID:fxkt5PE4.net]
36bitで見つからんかった。
もう辞めるわ。

346 名前:デフォルトの名無しさん mailto:sage [2016/03/02(水) 06:33:06.17 ID:2mV+3fZd.net]
>>338
お疲れ様です。
出題者ですが、自分も無いんじゃないかなで
答えはわかりませんm(_ _)m

347 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 15:01:26.06 ID:6dBXddTu.net]
お題:以下の式の□に+または-を入れて成立する式をすべて求める。
1□2□3□4□5□6□7□8□9=1

348 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 18:29:47.32 ID:t9z0z44u.net]
>>340 Bash
ideone.com/qzonZ1

349 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 19:58:32.83 ID:SkSUFtdJ.net]
お題:リストを重複の多い順に並び替える
重複個数が同じ場合はリストに登場するのが早い順とする

"Hello world" -> "lllooHe wrd"

[3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6]
-> [3,3,3,3,5,5,5,9,9,9,1,1,4,4,2,2,6,6,8,8,7]

350 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 20:40:38.92 ID:rLQVucBG.net]
>>340 Rust 今日来る1.7を待ちながら
https://play.rust-lang.org/?gist=121b9b2dc7ff0dbdacdb&version=stable



351 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 21:43:53.21 ID:GzhlChId.net]
>>342
C++
ideone.com/VFxH37

352 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 22:03:26.12 ID:LBKN89dL.net]
>>342
Python3
https://ideone.com/Icn8Vj

353 名前:デフォルトの名無しさん mailto:sage [2016/03/03(木) 23:17:39.49 ID:fGqRJK5H.net]
>>342
haskell
import Data.List (sortBy)
main = do
 putStrLn $ s "Hello World"
 print $ s [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6]

s xs=concat.sortBy(\x y -> compare (length y) (length x))$gs xs
gs :: Eq a => [a] -> [[a]]
gs[]=[]
gs (x:xs)=(x:a) : gs b
 where (a,b)=(filter(== x)xs,filter(/= x)xs)

354 名前:デフォルトの名無しさん [2016/03/04(金) 15:28:38.54 ID:7Zl+7QrX.net]
お題:
配列Bを配列Aの規則順に従って整列。Aに含まれ無い物は最後尾にアルファベット順に整列。

例:
配列A ary_a=["d","b","e","f","a","c"]
配列B ary_b=["a","b","c","h","m"]
結果:["b","a","c","h","m"]

言語:
rubyかpython

355 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 15:49:17.83 ID:DX3xeB7o.net]
>>347
楽すぎない?

356 名前:346 [2016/03/04(金) 16:33:45.39 ID:7Zl+7QrX.net]
このままだったら適当でもそんなに時間がかからないから自分でもできるんですが、
配列の数が多い場合だとどんなやり方があるのと思いまして。

じゃあちょっと増やしてこのぐらいで。
答えはわかりません。

お題:
配列Bを配列Aの規則順に従って整列。Aに含まれ無い物は最後尾にアルファベット順に整列。

例:
長いのでこちら
ideone.com/xnetIb

結果:?

言語:
rubyかpython

357 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 18:38:25.99 ID:pEnisYEU.net]
お前の業務?

358 名前:デフォルトの名無しさん mailto:sage [2016/03/04(金) 18:46:32.50 ID:9GjrgxFP.net]
>>349
ideone.com/LlnUM2

359 名前:デフォルトの名無しさん mailto:sage [2016/03/05(土) 19:06:23.29 ID:CXefnPD8.net]
>>342 J
f =: 3 : 0
a =. (\: +/"1 =/~ y) { y
b =. ~. a
(/:~ b i. a) { b
)

f 'Hello world'
lllooHe wrd

f 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6
3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7

360 名前:デフォルトの名無しさん mailto:sage [2016/03/06(日) 00:31:45.05 ID:WEeJcjtE.net]
>>340
haskell
main = mapM(putStrLn) [p x|x<- sequence $ [1]:[[x,-x]|x<-[2..9]],1==sum x]

p=concat.map(\x ->if x>1 then "+"++show x else show x)



361 名前:デフォルトの名無しさん mailto:sage [2016/03/06(日) 15:24:05.92 ID:/EFFTfcH.net]
>>342 C
>>344 を参考に
ideone.com/7vKXrk

362 名前:デフォルトの名無しさん mailto:sage [2016/03/07(月) 10:29:38.19 ID:+tQLURZK.net]
>>351
ありがとうございます。自分で作ったのに比べると格段にすっきりしてます。
each_with_indexもto_hもgroup_byも初めて知りました。勉強になります。

363 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 08:14:24.51 ID:fvdAjVDF.net]
あら、新規来ないと思ったら移動してたか。

>>335
ある程度起動してから気づいたから遅かった。

>>337
別の目的で作ったコードなので、これ用というわけじゃなかったのです。
追記型がほしかったので作りました。

364 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 08:17:33.24 ID:fvdAjVDF.net]
>>340
ideone.com/H6yZDw
C++。作ってあったコードをいじっただけなので変なコードになってます。
多分あってると思います。

365 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 08:49:31.19 ID:fvdAjVDF.net]
>>347,348
ideone.com/VaNTzl
C++。デバッグはほとんどしてない。手を抜いたから遅いよ。

366 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 09:16:36.16 ID:fvdAjVDF.net]
>>342
ideone.com/fpJYFp
C++。最近、あんまり効率考慮したコードが書けてないな〜。

367 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:07:01.52 ID:4PxK/ADg.net]
変数A1, A2, A3, A4, A5 に整数が入っているとして、
全部同じか、そうでないかを判定したいのですが、
もっとも効率よい方法教えて下さい。
if(A1==A2&&A2==A3&&A3==A4&&A4==A5){
 ...
}else{
 ...
}
みたいなのしか思いつきません。

368 名前:デフォルトの名無しさん mailto:sage [2016/03/11(金) 23:55:40.35 ID:fvdAjVDF.net]
それ以外だとSIMD使うとかになりそうな・・・。

369 名前:デフォルトの名無しさん [2016/03/14(月) 11:38:06.21 ID:7hslT/Gl.net]
お題:平和な動物園を作ろう
www.hisenkei.net/~tohru/LaTeX/Poster/whatisQAPa4.pdf

370 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 12:34:29.93 ID:DTR/fUtN.net]
宿題じゃね?



371 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 13:20:59.04 ID:W5wCaIkX.net]
NP困難問題とか総当りするぞ

372 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 19:24:58.74 ID:MNFRtT1Y.net]
>>362
相性度の大小が逆じゃない?相性が悪いほど相性度の数値が大きくならないと‥

373 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 22:37:30.95 ID:DTR/fUtN.net]
よーしぱぱ、ねくすとぱーみゅてーしょんつかっちゃうぞー。

374 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 23:24:37.10 ID:DTR/fUtN.net]
>>362
ideone.com/YXrksL
C++。かき捨て。デバッグ一切してないのでバグってたら御免。
だって、スカイレークのリリースで11秒かかるんだもん。

375 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 00:17:53.91 ID:a7Xs+q4N.net]
不満度2160であってるんかね

376 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 00:31:47.47 ID:a7Xs+q4N.net]
>>367
Calc内のstd::vector<DType> Angryとstd::vector<DType> Lengthが毎回作られてるから遅いんじゃね?

377 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 00:40:17.12 ID:6w3U5gAP.net]
std::arrayを使ってはどうか

378 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:13:48.78 ID:PW1OJjjf.net]
>>368
知らんよ。適当に書き捨てただけだし。

>>370
リリースで消えてる事をただ願うだけ。2重ループ何回も起動してるから遅いもんだと・・・。

>>370
カスタマイズはご自分で。
特にこだわりはないから、MITライセンスでどうぞ。

379 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:14:38.03 ID:mfi8kYDa.net]
>>368
俺も(2160,[6,9,3,8,7,4,1,5,10,2])になった。

380 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:19:02.65 ID:PW1OJjjf.net]
あ、バグってら。たぶん。
2重ループの中ループの初期値間違ってるかも。
今、ひらめいた。
多分不満度結果の半分くらいだと思う。
まぁいいや。



381 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:23:09.89 ID:a7Xs+q4N.net]
ideone.com/Jb9lqV
何も考えずにstd::vector<DType> Angryとstd::vector<DType> Lengthを外に出しただけで1.74s

382 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:24:01.73 ID:PW1OJjjf.net]
ideone.com/aZUgRP
こうかもしれん。
静的変数にしたら超絶早くなった。

383 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:25:15.50 ID:PW1OJjjf.net]
あいたたた・・・・。
まぁ、宿題を真面目にやる気はないんで、適当にごまかしてください。

384 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 05:12:24.47 ID:/v9qNF/y.net]
arrayにしたらかえって遅くなった

ideone.com/mHquNO

385 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 07:06:29.01 ID:PW1OJjjf.net]
>>377
>>375は微妙にコード最適化してるからねぇ。
リザルト変わってるし。
一応それとしては早くなってるんじゃないかと。

386 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 11:48:35.59 ID:j8iobkYx.net]
>>362 Squeak/Pharo Smalltalk

| N animals cages ans |

N := 10.

animals := #(
 (0 2 6 4 6 2 4 4 2 4) (2 0 4 2 2 2 2 2 2 6)
 (6 4 0 2 6 8 8 6 4 8) (4 2 2 0 4 2 6 6 2 6)
 (6 2 6 4 0 2 4 4 2 4) (2 2 8 2 2 0 6 6 6 8)
 (4 2 8 6 4 6 0 6 6 4) (4 2 8 6 4 6 6 0 6 6)
 (2 2 4 2 2 6 6 6 0 6) (4 6 8 6 4 8 4 6 6 0)).

cages := #(
 (0 3 4 5 8 10 9 6 2 4) (3 0 4 4 7 9 9 8 5 9)
 (4 4 0 2 4 7 5 4 4 8) (5 4 2 0 3 5 5 5 5 9)
 (8 7 4 3 0 3 5 6 8 12) (10 9 7 5 3 0 4 7 10 14)
 (9 9 5 5 5 4 0 3 8 11) (6 8 4 5 6 7 3 0 5 8)
 (2 5 4 5 8 10 8 5 0 4) (4 9 8 9 12 14 11 8 4 0)).

ans := Set new -> Float infinity.

(1 to: N) permutationsDo: [:perm |
 | sum |
 sum := 0.
 1 to: N do: [:i |
  1 to: N do: [:j |
   sum := ((animals at: (perm at: i)) at: (perm at: j)) * ((cages at: i) at: j) + sum]].
 ans value = sum ifTrue: [ans key add: perm copy].
 ans value > sum ifTrue: [ans := (Set with: perm copy) -> sum]].

^ans "=> a Set(#(6 9 3 8 7 4 5 1 10 2) #(6 9 3 8 7 4 1 5 10 2))->2160 "

387 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 13:31:34.17 ID:NZyRjPzO.net]
>>377
VSでプロファイラ取ってみたらCalcとstd::next_permutationの2つで全体の半分位
時間食ってんな
特に単純ループのCalcが全体の1/3ほど食ってる
std::next_permutationは仕方ないとしてCalcはどこか改善できんかな
配列の配列の要素取ってるから出来るだけ連続したキャッシュに乗る単なる配列の方がいいのかも
連続してないクラスの配列の配列取るもんだから、こういう単純なループがインライン展開されてないのも
原因の一つかと

388 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 15:44:17.23 ID:NZyRjPzO.net]
×インライン展開
○ループのアンロール

389 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 17:59:47.71 ID:PW1OJjjf.net]
ねくすとぱーみゅてーしょん切って動的計画法に切り替えるとかがベターかもしれん。
アッチはメモリめちゃくちゃ食うけど、早い。
しかし、俺は動的計画法を理解してないのだ・・・。Orz

390 名前:デフォルトの名無しさん [2016/03/16(水) 18:03:36.31 ID:VFJu78ei.net]
>>362
なんか計算が微妙に合わないなと思ったら
ニシキヘビとカバの相性度が対象になってないわ

あー時間を無駄にした



391 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 18:37:37.89 ID:PW1OJjjf.net]
>>362の資料いくつか間違いがあるっぽい。
不満度も重複に計算してるし、なんか仕様表として欠陥がある。

392 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 08:30:05.20 ID:e/Ot8AcY.net]
お題:ダーツのダブルアウトの組み合わせ

問題の前にダーツのルール(501ゲーム)を簡単に説明。

1〜20のマス目があって、それぞれにダブル(最外周の細い領域)と
トリプル(中間の細い領域)があり、ダブル、トリプルは得点が2倍、3倍になります。
中心の2重円は最内の円がダブルブル(50点)、その外側の円がブル(25点)。
持ち点501点から1ターン(1ラウンド)3投ずつプレイして当たった得点を減算していき、
最後残り点数がちょうど0になれば勝ち。
ただし、最後はダブルに当ててフィニッシュする必要があります(ダブルアウトという)。
例:最後5点残っていた場合は、5点は直接狙えず、1点を当ててから2点のダブル(計5点)、
あるいは3点を当てて1点のダブル(計5点)のように最後がダブルになるようにフィニッシュします。



393 名前:考動画 https://www.youtube.com/watch?v=GfC17dQntFA
この動画の下のスコアで、残り点数が少なくなってくると左側にT20 T18 D16のような表示が
出てきますが、これは次の3投で上がれる組み合わせの一例を示しています。
この動画だと1:45あたりで残り146点のフィニッシュの組み合わせ例として出ていますね。
(数字の頭のDはダブル Tはトリプル 20x3 + 18x3 + 16x2 = 146)

問題:
1.残り点数を与えられた場合に、1ラウンド3投でフィニッシュできる全ての
組み合わせを求めてください。
例:残り4の場合は[D2][2 D1][D1 D1][1 1 D1]の4通り
例として残り10の場合を求めてみてください。

2.1ラウンド3投以内のフィニッシュで最も組み合わせの多い残り点数を求めてください。

解答例:http://ideone.com/LWu1WM (C言語 合ってるかちょっと自信ない)
[]
[ここ壊れてます]

394 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 09:03:48.16 ID:e/Ot8AcY.net]
>>385
外した場合を考えてませんでした。

残り10をD5でフィニッシュする場合、1投目でフィニッシュと、1投目はずして(0点)
2投目でフィニッシュ、同じく1,2投目はずして3投目でフィニッシュがありますが、
これは全て[D5]に含むこととします。(外した分は無視)

外した分も考慮して組み合わせを考えてみても面白いかもしれません。
(上の例だと[D5][0 D5][0 0 D5]に分かれることになります)

395 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 03:54:21.46 ID:SSV1rQef.net]
お題:配列やリストの累積和を求める
90 10 54 3 6 22 77 78 75 16 -> 90 100 154 157 163 185 262 340 415 431

396 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 04:48:29.17 ID:dWvJC0mF.net]
>>387
ideone.com/mik4Ne
C++。適当に書いた。結構短くかけたと思う。

397 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 16:03:47.29 ID:NkT0dmTC.net]
>>387
haskell
map sum.tile.inits

398 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 19:13:26.12 ID:l5rfZdo+.net]
>>387
C++
ideone.com/xtXdpi

399 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 20:01:16.70 ID:1UFsClL1.net]
>>387 F#
Seq.scan (+) 0

400 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 20:59:24.58 ID:NkT0dmTC.net]
scanいいなーと思って探してみたらhaskellにもあった
しかも標準ライブラリだった。

scanl1(+)



401 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 21:07:05.34 ID:NkT0dmTC.net]
標準ライブラリじゃなくて、Preludeでした、すみません。

402 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 21:24:19.74 ID:jwiGmJgq.net]
>>387 Python3
itertools.accumulate(L)
もはや標準ライブラリの紹介、ジェネレーターを返すので煮るなり焼くなりして使う

403 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 13:07:49.70 ID:5hctbNOo.net]
>>387
C
ideone.com/QBhptw

404 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 14:14:51.89 ID:BKOgASSO.net]
>>387
C++
ideone.com/98mJmC

長くなり過ぎワロタ

405 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 23:54:10.03 ID:aGSq1f0l.net]
>>387
PowerShell
もっと短くできなかったものかなあ

function Accumulate() {
$t = @(); $args | % {$t += $t[-1] + $_}; $t
}

406 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 00:50:33.88 ID:/XUmDgkC.net]
>>342
PowerShell

function SortGroupByCount($o) {
 $o.GetEnumerator() | group | sort Count -d | select Group | %{ Write-Host -n "$($_.Group) " }
}

> SortGroupByCount "Hello world"
l l l o o H e w r d
> SortGroupByCount 3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6
3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7

407 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 00:57:47.15 ID:/XUmDgkC.net]
>>398
よく見たらselect Groupいらんかった

function SortGroupByCount($o) {
 $o.GetEnumerator() | group | sort Count -d | %{ Write-Host -n "$($_.Group) " }
}

408 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 06:52:33.07 ID:lsHN8L8S.net]
@Mathematica

In[1] := x = {90, 10, 54, 3, 6, 22, 77, 78, 75, 16};
In[2] := x//
     Accumulate
Out[2] = {90, 100, 154, 157, 163, 185, 262, 340, 415, 431}

409 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 01:17:51.47 ID:7ndxGIoM.net]
>>387 Io
f := method(a,
s := 0
a map(v, s = s + v)
)

410 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 00:26:57.54 ID:K457tFb7.net]
>>387
Ruby
a=%w(90 10 54 3 6 22 77 78 75 16).map(&:to_i)
a.inject(0){|acc,e|acc+=e;p acc}



411 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 13:28:14.63 ID:ObwLfSdF.net]
>>387 Squeak/Pharo Smalltalk

| fn |
fn := [:arr | arr inject: #() into: [:a :x | a, {x + (a at: a size ifAbsent: 0)}]].

fn value: #(90 10 54 3 6 22 77 78 75 16)
"=> #(90 100 154 157 163 185 262 340 415 431) "

412 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 13:51:42.42 ID:ObwLfSdF.net]
>>342 Squeak/Pharo Smalltalk

| fn |
fn := [:seq |
 | rule |
 rule := [:a :b |
  a key > b key or: [
   a key = b key and: [(seq indexOf: a value) < (seq indexOf: b value)]]].
 seq class streamContents: [:ss |
  (seq asBag sortedCounts sort: rule) do: [:kv |
   kv key timesRepeat: [ss nextPut: kv value]]]
].

fn value: 'Hello world'.
"=> 'lllooHe wrd' "

fn value: #(3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6).
"=> #(3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7) "

413 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 23:25:45.53 ID:UAhYeBNf.net]
sage>>402
>a.inject(0){|acc,e|acc+=e;p acc}
これって
a.inject(0){|acc,e|p acc+e}
でいいんじゃないの

414 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 02:01:04.35 ID:00BHzwP5.net]
>>342
Rubyで。
a=[3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6]
a=a.inject({}){|acc,e|
acc[e]||=0
acc[e]+=1
acc
}
p a
.to_a
.sort_by
.with_index{|s,i| [s[1], i] }
.reverse
.map{|e|e[0].to_s*e[1]}
.join

415 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 05:39:51.79 ID:ij4V+9+M.net]
>>>342 Python3

def f(L):
 return sorted(L, key=lambda x: (-L.count(x), L.index(x)))

print("".join(f("Hello world")))

416 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 08:05:32.53 ID:ZA7ECi0z.net]
ideone.com/AjZqQq
どうでもいいんだけど、追記型素数検出器を書き直した。
爆速になった。イデオンで動かす感じで27ビット2.4秒。
要するにエラトステネスの篩なんだけど、思ったより早かったなぁ。
肝心の追記はまだ試してない・・・。Orz

417 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 09:35:35.02 ID:ZA7ECi0z.net]
www.dotup.org/uploda/www.dotup.org798848.zip
ウラム螺旋に移植した。一応小さい解像度では試してるがデカいのは知らん。
素数列挙は超早くなったが、画像生成がまだ重ひ。
暇な人むけ。

418 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 00:36:24.19 ID:oZji/N9B.net]
>>406
実行結果が
"333399955588662244117"
になってしまいます

419 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 21:56:44.86 ID:w9r+G2YN.net]
お題:nで始まる最小の素数を求める
n=4 -> 41
n=777 -> 77711
n=403 -> 40343

420 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 22:48:25.37 ID:mfUNWB3k.net]
>>411 Java
ideone.com/vV7Vs9



421 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 21:02:49.40 ID:V1X87Hw6.net]
>>411 C
ideone.com/OtX2Wc

422 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 21:05:24.30 ID:ZlseDTbh.net]
フリーセルソルバー
問題によっては1秒内で終るものもあれば3分かかったり
評価関数色々用意したがすべて1秒以内にできるようにしたいが...

423 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 01:55:40.63 ID:HGCmMFVS.net]
>>411
ideone.com/eqFkbn
C++。コードの半分は以前のものを流用した。
なんかランタイムエラーになってるけど、よくわからん。
答えはあってると思う。

424 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 02:00:45.11 ID:HGCmMFVS.net]
>>414
フリーセル自作しないといけないのでめんどくさい。
フリーセルってここ数年やってないなー。

425 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 13:12:03.72 ID:opSE2XAx.net]
>>411
Rubyで。

require 'prime'
def func1 n
nStr = n.to_s
nLen = nStr.length
Prime::instance.each{|e|
return e if e.to_s[0, nLen] == nStr
}
end

p func1 4
p func1 777
p func1 403

426 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 20:22:10.75 ID:JfY7ulrA.net]
>>415
20 32 51 あたりの結果がおかしいんじゃないかな?
20 -> 2003になるところが2011になってる。

427 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 20:59:33.30 ID:OyooKXkj.net]
>>411 Io
isPrime := method(n,
if(n < 2, return(false))
if(n < 4, return(true))
if(n % 2 == 0, return(true))
for(i, 3, n sqrt, 2, if(n % i == 0,return(false)))
true
)

f := method(n,
a := 1
loop(
for(i, n * a + 1, n * a + a - 1, 2,
if(isPrime(i), return(i))
)
a = a * 10
)
)

Io> list(1,777,403)map(v,f(v))
==> list(11, 77711, 40343)

428 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 00:47:11.89 ID:8UqsZWln.net]
>>418
あーそれバグですな。失礼。
ゼロ埋めは試してないのでそういう結果になってます。
思いつきもしませんでした。ごめんなさい。
どう書けばいいかちょっと妙案が思いつかないので保留。

429 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 23:01:46.01 ID:UGeAL8lU.net]
お題:各桁の数字が奇数、偶数、奇数、偶数...のように
最上位の桁から奇数と偶数が交互並ぶ自然数を考える。
小さい方からn番目のこのような数を求める
n=1 -> 1
n=10 -> 18
n=1000 -> ?

430 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:12:29.27 ID:0xtkUQ3n.net]
>>421 Java
ideone.com/V6gNa4



431 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 03:27:38.19 ID:GVWrhGxP.net]
>>411
>>418
ideone.com/oAQHTp
C++。半ば暇なのとか色々まざってぶち切れ気味に書き直した結果。
なおったかな?
手を抜いて新規構造考えたまではよかったが結局古い道を選ばざるを得なかった。
ゼロパティングなんてふつう考えないがこういうケースもあるんだな。勉強になった。
以上。

432 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 04:31:37.37 ID:GVWrhGxP.net]
>>421
ideone.com/W3pgTU
C++。なんかつじつまが合わないので>>422をの結果を参考にさせてもらった。
どうにも盛大に勘違いしてたようだ。
しかし、先頭が必ず奇数であるとは書いてないので混乱した。

433 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 11:04:10.71 ID:yfpRB3fX.net]
>>421
@Mathematica

ideone.com/JtmqOO

434 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 22:30:50.62 ID:SKXiL2tD.net]
>>421
F#
ideone.com/AKL4fU

お題スレ参加は半年ぶりくらい。。。
さらにF#の勉強開始して1ヶ月程度なので、ちょっとアレな感じかもしれませんが・・・

435 名前:425 mailto:sage [2016/04/10(日) 23:49:40.35 ID:SKXiL2tD.net]
>>421
F#
ideone.com/2pgKqN

たびたびスマン・・・ちょっとブラッシュアップしました
見た目がちょっとキレイになった

436 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 19:11:43.16 ID:U9aEtrvs.net]
>>411 Squeak/Pharo Smalltalk

| primeStartsWith |
primeStartsWith := [:n |
 | exp min max ans |
 exp := 0.
 [ min := n * (10 raisedTo: exp).
  max := n+1 * (10 raisedTo: exp).
  ans := (Integer primesUpTo: max) detect: [:prime | prime >= min] ifNone: nil.
  exp := exp + 1.
  ans notNil.
 ] whileFalse.
 ans
].

primeStartsWith value: 4. "=> 41 "
primeStartsWith value: 777. "=> 77711 "
primeStartsWith value: 403. "=> 40343 "

437 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 19:31:44.71 ID:U9aEtrvs.net]
>>421 Squeak/Pharo Smalltalk

ideone.com/hCH8lT

438 名前:デフォルトの名無しさん [2016/04/12(火) 06:07:51.10 ID:IvlGS ]
[ここ壊れてます]

439 名前:XDX.net mailto: たまにage []
[ここ壊れてます]

440 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 23:39:53.84 ID:xdVnQQp5.net]
>>387
F# 勉強中

ideone.com/h9oJuH

ローカル環境だとList使って実装して動いたんだけど
ideoneだと動かなくて、調べたらideoneのF#のバージョンが低いのかもしれない
Arrayを使って書き直したら動いた



441 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 23:56:54.81 ID:49N/1I8V.net]
>>421 Io
f := method(n,
a := list
while(n > 0,
n = n - 1
a = a prepend(n % 5)
n = (n / 5) floor
)
a map(i, v, v * 2 + (i + 1) % 2) join asNumber
)

442 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 22:38:40.17 ID:hWzlQv+3.net]
お題:効率は無視してコードをできるだけ単純にしたバブルソート

443 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 23:39:12.31 ID:rplj63Da.net]
>>4
F# 勉強中

ideone.com/UtnUWJ

プログラム自体はちゃんと動いてるっぽいが、
コードがF#的になんかいろいろと間違えてるような気がする・・・

444 名前:デフォルトの名無しさん [2016/04/15(金) 02:29:59.73 ID:7tix3D6p.net]
>>433
Ruby

def mysort a
(a.length - 1).times{|i|
if a[i] > a[i + 1]
a[i], a[i + 1] = a[i + 1], a[i]
mysort a
end
}
a
end

a = (1..10).map{rand(10000)}
p a

p mysort a

445 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 05:28:13.90 ID:UEolzSKG.net]
>>433
ideone.com/Xjvay4
C++。残念なコードになった。こんなコード書きたくなーい。Orz

446 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 21:30:03.75 ID:uCMMU+7S.net]
>>433 F#
let rec sort = function
| ([] | [_]) as x -> x
| l::rs ->
let r::rs = sort rs
if l < r then l::sort(r::rs) else r::sort(l::rs)

let r = System.Random()
let xs = List.init 10 <| fun _ -> r.Next 10
printfn "%A = sort %A" xs <| sort xs

447 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 01:41:35.90 ID:8gZGJMh1.net]
>>433

F# 勉強中

ideone.com/mHKjpZ

勉強中ゆえ(?)、>>437のコードとか正直よく分からん・・・
とりあえず、自分の理解できる範囲で書いてみたら
殆ど手続き型と変わらん作りになってしまったw

448 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 21:13:38.41 ID:uCxyrvwI.net]
>>436
選択ソート?

449 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:39:51.82 ID:LiAu7R50.net]
>>439
え?バブルソートでしょ。ちょっと調べてくる。

450 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:43:07.03 ID:LiAu7R50.net]
https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%96%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88
これの疑似コードのちょっと悪い感じ?
シンプルにするためにオーダー悪くなってる。



451 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:47:56.31 ID:LiAu7R50.net]
おっとー、交換条件がおかしいか。
そんなの些細な違いよ!

452 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:56:43.13 ID:8gZGJMh1.net]
>>37
F# 勉強中

ideone.com/Q1ZFMv

2進⇔10進変換の復習ができてよかった

453 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 20:39:22.16 ID:cB2Ml+fZ.net]
>>433
@Mathematica

ideone.com/hKhw79

454 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 20:55:49.84 ID:cB2Ml+fZ.net]
調べたらこんなのもあった。

@Mathematica
「パターンと規則を使ってバブルソートアルゴリズムを実装する」
https://reference.wolfram.com/language/example/ImplementTheBubbleSortAlgorithmWithPatternsAndRules.html

455 名前:デフォルトの名無しさん [2016/04/17(日) 21:55:03.28 ID:8hbCthlc.net]
>>440
隣同士の要素を比較・交換するのがバブルソートだと思うけど

456 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 22:19:43.05 ID:chPSqpJT.net]
>>411
F# 勉強中

ideone.com/3e3eOt

素数判定はWikipediaの同名項目に書かれてるCソースの丸パクリです・・・
あと、最初に挑戦したときは>>418と全く同じ症状だったので断念・・・
なんだか、イマイチな感じなので後でコッソリとリファクタリングするかもです

457 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 22:30:35.60 ID:DiLcHZEv.net]
4×4の15パズルの、解ける盤面を作るのに、
空いているマスに、ランダムに100回ほど移動して、
盤面を作っている本を読んだが、

ランダムに盤面を作って、それが解ける問題かどうか、簡単に判別できる方法はないの?

3×3の盤面で、ランダムに盤面を作って、解ける問題かどうかを判別して。
上は解ける。下は解けない

0,1,2
3,4,5
6,7,空

0,1,2
3,4,5
7,6,空

458 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 01:55:07.16 ID:v1FL9ptr.net]
>>448
c++で適当に書いた。ideone.com/eJKGw8
以下を参照したが実装が少し違うのであってるかわからん
homepage2.nifty.com/TOMOMI/text/14-15.pdf

459 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/04/18(月) 14:39:50.41 ID:6ER+VIie.net]
15パズルの偶奇性
www.geocities.jp/m_hiroi/puzzle/parity.html

460 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 15:49:05.97 ID:vrHU0PJO.net]
1と4と空白を所定に合わせて
あとは偶奇性



461 名前: ◆QZaw55cn4c mailto:sage [2016/04/18(月) 19:33:23.43 ID:h2Yzyofc.net]
>>441
いや,オーダーはやはりΟ(n^2)で変わらない.
どんなコードを想定していたの?

462 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 20:53:46.45 ID:zW4NHiQV.net]
>>452
デバッグなしで書くと。
for(i=0;i<size-1;i++){
for(j=i+1;j<size;j++){
if(a[i]<a[j]) swap(&a[i],&a[j]);
}}
こういうコードを初心者のころどうも発明(バグ製造)したらしくてずーっと使ってるんだけど、それの簡略版。
forの間にIssorted相当を仕込めばオーダ不安定ソートになる。
俺は長い間これをバブルソートだと思っていた。Orz

463 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 20:57:27.48 ID:zW4NHiQV.net]
バブルソートからどうやってコムソート創造したんだよ。
と長い間思っていたが、ベースから間違っていた。Orz

464 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 21:02:36.79 ID:zW4NHiQV.net]
オーダーっていうか、実行効率だな。些細なことだけど。

465 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 22:43:04.02 ID:h2Yzyofc.net]
>>455
そうそう,オーダー表現は n!, n^2(n^c), nlogn, 1 などで表現する.定数倍は無視するんだ, 正確な定義は知らないがたぶん極限が収束するかどうかで見るんだろう.
>>453 もΟ(n^2)

466 名前:デフォルトの名無しさん mailto:sage [2016/04/18(月) 23:45:25.46 ID:zW4NHiQV.net]
>>456
なるほどわからん。
まぁ、そういう勘違いを積み重ねるだけの人生だった。Orz
いや、死んでないけどさ。

467 名前:デフォルトの名無しさん mailto:sage [2016/04/19(火) 00:24:10.72 ID:5fHK1dXS.net]
>>456
n>cのときg(n)<d*f(n)が成り立つようなc,dが存在すれば関数g(n)=O(f(n))って感じじゃね
イメージ的に

468 名前:デフォルトの名無しさん mailto:sage [2016/04/19(火) 01:07:43.67 ID:ZMwgfCfL.net]
数学で会話できる人かっこいいなー。

469 名前:デフォルトの名無しさん mailto:sage [2016/04/19(火) 17:18:01.67 ID:93zFzB0Z.net]
>>458
かっこいいー
もしかして大学出ですか?

470 名前:デフォルトの名無しさん mailto:sage [2016/04/19(火) 23:30:31.84 ID:iVQa/t2n.net]
>>342
F# 勉強中

ideone.com/TfJghl

なんかSQLいじってる気分になった



471 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 16:20:19.87 ID:bv/Q/2uG.net]
>>433 Squeak/Pharo Smalltalk

| simpleBubble |

simpleBubble := [:arr |
 | stream |
 stream := arr readStream.
 arr size - 1 timesRepeat: [
  arr size - 1 timesRepeat: [
   stream next > stream peek ifTrue: [
    arr swap: stream position with: stream position + 1]].
  stream reset
 ].
 arr
].

simpleBubble value: (1 to: 10) asArray shuffled "=> #(1 2 3 4 5 6 7 8 9 10) "

472 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 20:06:02.61 ID:ARUL8qdV.net]
>>433 c
https://ideone.com/NRFb3z

473 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 22:18:59.00 ID:+sWW+qMV.net]
>>433 Io
f := method(a,
 i := 0
 while(i < a size,
  if(a at(i) > a at(i + 1),
   a swapIndices(i, i + 1)
   i = 0
  ,
   i = i + 1
  )
 )  
 a
)

474 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 13:03:18.17 ID:5MDUs+Ed.net]
>>433 Squeak Smalltalk (PositionableStream>#lastが無いのでPharoではNG。為念)
>>464 等を参考にループを >>462 よりシンプルにした版。

| simplerBubble |

simplerBubble := [:arr |
 | stream |
 stream := arr readStream position: 1.
 [stream atEnd] whileFalse: [
  stream last > stream next ifTrue: [
   arr swap: stream position - 1 with: stream position.
   stream position: 1
  ]
 ].
 arr
].

simplerBubble value: (1 to: 10) asArray shuffled "=> #(1 2 3 4 5 6 7 8 9 10) "

475 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 01:46:03.15 ID:3vhuTo00.net]
>>433 Rust
https://ideone.com/gOLw6K

476 名前:デフォルトの名無しさん [2016/04/30(土) 21:02:40.94 ID:f9UktSYx.net]
お題:170の階乗の先頭10桁を求める

477 名前:デフォルトの名無しさん [2016/04/30(土) 21:05:19.27 ID:f9UktSYx.net]
お題:170の階乗の先頭10桁を求める

478 名前:デフォルトの名無しさん [2016/04/30(土) 22:13:46.81 ID:ih9K+Dlj.net]
>>467
Rubyで
p (1..170).inject(&:*).to_s[0,10]

# 実行結果
# "7257415615"
# [Finished in 0.1s]

479 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 23:37:54.35 ID:DWppbW2i.net]
>>467
F# 勉強中

ideone.com/8Mcpmd

少しはF#分かってきたような、そうでもないような・・・

480 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 00:25:30.55 ID:3nNxkvii.net]
>>468
FBasic
'170!
Dim i As Integer
Dim ii As Double
Dim f As Double
f= 1.0
For i= 2 To 170
ii = CDbl(i)
f = f * ii
Next
Print f
Sleep
End

7.257415615307994e+306



481 名前:デフォルトの名無しさん [2016/05/01(日) 01:30:49.70 ID:PVJV1HwV.net]
>>467 Io
Io> a:=1;for(i,1,170,a=a*i);(a/(10**(a log10 floor-9)) )floor asString(10,0)
==> 7257415615

482 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 05:22:39.61 ID:k8Y2io+T.net]
>>467 Python3
関数を定義したり制御構文を使ったりライブラリをimportしたりするのは負けた気がするので捻った

>>> str((lambda f, n: f(f, n))((lambda g, m: m * g(g, m-1) if m > 0 else 1), 170))[:10]
'7257415615'

483 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 07:00:07.79 ID:Jp0j1ueK.net]
>>467 Squeak/Pharo Smalltalk

170 factorial asString first: 10 "=> '7257415615' "

484 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 09:24:40.00 ID:i1tpwyoc.net]
>>467
@Mathematica

170 // Factorial // ToString // StringTake[#, 10] &

485 名前:デフォルトの名無しさん [2016/05/01(日) 09:37:49.41 ID:tKi6j9CT.net]
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


486 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 14:28:23.75 ID:XECCJNE2.net]
>>467 F#
printfn "%s" <| (Seq.reduce (*) {1I..170I}).ToString().[..9]

487 名前:デフォルトの名無しさん [2016/05/01(日) 21:02:15.79 ID:PVJV1HwV.net]
>>467 R
> substr(sprintf("%f",prod(1:170)),1,10)
[1] "7257415615"

488 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 07:53:08.55 ID:JrdSjVB4.net]
お題: n!の上位桁が10^x-1になる最小のnを求める (xは正の整数)


x=1: n=96 (9916779348...)
x=2: n=96 (9916779348...)
x=3: n=261 (9996811196...)
x=4: n=17411 (9999777368...)
x=5: n=583104?

489 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 11:11:18.30 ID:ybUtGNCd.net]
>>479 Squeak/Pharo Smalltalk

| fn |
fn := [:x |
 | factFloat factStr n nines |
 n := 0.
 factFloat := 1.0.
 nines := String new: x withAll: $9.
 [ n := n + 1.
  factFloat := factFloat * n.
  factFloat := factFloat / (10 raisedTo: factFloat log asInteger).
  factStr := factFloat asString copyWithout: $. .
  factStr first = $0 ifTrue: [factStr := factStr allButFirst].
  factStr size >= x and: [(factStr first: x) = nines]
 ] whileFalse.
 {#x->x. #n->n. factStr truncateWithElipsisTo: 13}
].

fn value: 1. "=> {#x->1 . #n->97 . '9916779348...'} "
fn value: 2. "=> {#x->2 . #n->97 . '9916779348...'}"
fn value: 3. "=> {#x->3 . #n->262 . '9996811196...'} "
fn value: 4. "=> {#x->4 . #n->17411 . '9999777368...'} "
fn value: 5. "=> {#x->5 . #n->583104 . '9999906872...'} "
fn value: 6. "=> {#x->6 . #n->2064173 . '9999993058...'} "

490 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 08:45:55.56 ID:GSs/8kUx.net]
>>479
@Mathematica

ideone.com/4LfZ8E



491 名前:デフォルトの名無しさん [2016/05/04(水) 21:22:23.48 ID:WvfFbq7M.net]
>>479 Io
f := method(x,
 d := 10 ** (x - 1)
 q := 10 ** x - 1
 a := 1
 n := 0
 while(q != (a * d) floor,
  n = n + 1
  a = a * n
  a = a / 10 ** a log10 floor
 )
 n
)

Io> f(1)
==> 96
Io> f(3)
==> 261
Io> f(5)
==> 583104

492 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 22:35:23.32 ID:qgnKpMBO.net]
//┏┳┳┳┳┓
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┗┻┻┻┻┛
//上記の6X6の通路を左上から右下へ到達する時に
//同じ場所を通らずにたどり着くルートは何通りあるか?

嫌儲のプログラミングスレで盛り上がってるこの問題どうすかね

493 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 22:37:44.31 ID:h5NbJg5S.net]
おねえさん・・・

494 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 00:59:50.49 ID:muAMBl7W.net]
>>483
以前、お題スレ Part6の984 の問題で作ったものをそのまま流用。
左上から部屋番号1,2,3,...36(右下)として、部屋同士の接続を定義。
言語C++: ideone.com/1Nj1eU
5x5なら1秒以内で終わるのですが、6x6はideoneではタイムオーバーでした。
計算するときはn=6にして計算して下さい。自分のところでは計算に70秒程度。
正直合ってるかどうかわかりません。

結果:
6x6:
全1262816通り
最短距離10(252通り)
最長距離34(10180通り)

ちなみに・・・
2x2:全2通り
最短距離2(2通り)
最長距離2(2通り)
3x3:全12通り
最短距離4(6通り)
最長距離8(2通り)
4x4:全184通り
最短距離6(20通り)
最長距離14(32通り)
5x5:全8512通り
最短距離8(70通り)
最長距離24(104通り)

495 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 01:32:14.77 ID:muAMBl7W.net]
>>483
元のスレ見にいったら、問題にもう1行あったよ
//ただし、同じ交差点は何度通ってもいい
これあるなら>>485は取り消しします

496 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 02:48:54.24 ID:PH/e0da8.net]
>>479
F# 勉強中

ideone.com/vWueIT
※ただし、UInt64(Max 10進数で19桁)で計算してるので誤差が生じはじめると・・・

ideone上だとx=5が限界、以下ローカルでの実行結果
x=1: n=96 (9916779348...)
x=2: n=96 (9916779348...)
x=3: n=261 (9996811196...)
x=4: n=17411 (9999777368...)
x=5: n=583104 (9999906872...)
x=6: n=2064173 (9999993058...)

ちなみに、x=5がローカル(i7-3537U)で30秒くらいかかるのにideoneだと6秒未満だし
やっぱ性能いいのねぇ・・・
あと、階乗の手抜きっぽい計算はPAIZAの彼女を作るゲームの水着ゲット問題で研究しますたw

497 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 15:33:45.25 ID:SQKTrz0M.net]
>>486
それは発展版の方でですね

最初は482で次問が交差点を何度もです
ちなみに交差点を何度もではかなり気をつけないとCではスタックオーバーみたいですね

498 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 17:16:35.94 ID:PH/e0da8.net]
>>483
F# 勉強中

ideone.com/31G3C2

ideoneでは残念ながら制限時間超過・・・
ローカル(i7-3537U 8GB mem)では1,262,816通り、実行時間およそ42秒

末尾再起にするため、やむを得ずmutableを使ったのだが、もっとうまいやり方はあるのだろうか・・・・

499 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 18:24:52.73 ID:ZdWJcfSQ.net]
>>488

482発展版? by c++ n=6まで
ideone.com/J22mpj

手元で時間がかかったがn=7も確認

500 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 07:33:20.07 ID:+i3ap6tD.net]
>>490

489は、非発展版でした。
発展版はn=5が限界だった。あのビデオ通りの動きだな
ideone.com/J22mpj 上書き

n=3の経路見てみてあっているような感じ。
それ以上のnは確認ができてない。

数列辞典で引ける程度でたので、これかな
https://oeis.org/A013990



501 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 23:52:58.29 ID:qCADCCRG.net]
>>467
ideone.com/P7XHHt
C++。スレが専ブラの画面外に行ってたのでチェックしてなかった。
C++で作った割には誤差が出なくてよかった。たぶん。
>>469つかって検算させてもらった。thx.

502 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 00:03:58.77 ID:r8xFef3w.net]
>>483はC++やってる人がいるのでパス。
それ以上のコードはかけなさそう。Orz

503 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 00:04:20.89 ID:r8xFef3w.net]
あ、日付かわった。

504 名前:デフォルトの名無しさん [2016/05/08(日) 21:11:37.01 ID:WelKIVWp.net]
お題:1から16までの連続した自然数をA,Bの二つのグループに分ける。
Aの要素の総和とBの要素の総和が等しく、Aの要素の2乗の総和と
Bの要素の2乗の総和も等しく、さらにAの要素の3乗の総和と
Bの要素の3乗の総和も等しくする。

505 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:07:10.56 ID:3m2Dr+7v.net]
{2,3,5,8,9,12,14,15}

{1,4,6,7,10,11,13,16}
だけ?

506 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:23:03.64 ID:3m2Dr+7v.net]
あ、共通部分があってもいいんだな

A=B={1,2,...,16}とか

まだありそう

507 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 23:38:34.59 ID:r8xFef3w.net]
5秒では終わらんなー。まぁ暇だからやってみようかなぁ・・・。

508 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 00:30:22.73 ID:pUXvKib1.net]
>>495
ideone.com/gzHjPK
C++。一応こういうコードを書いてみた。ろくにデバッグできなかったのでバグってる可能性が高い。
コンビネーションほしー。16!とかほぼ無理なので、絶望した。

509 名前:デフォルトの名無しさん [2016/05/09(月) 01:03:48.60 ID:yYTJyO7B.net]
Haskellならマイクロ秒のオーダーで計算できますよ?
未だにC++に固執するのは宗教ですか?

510 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 01:22:53.38 ID:pUXvKib1.net]
特に宗教じゃないけど、ほかの言語を覚える気にならないだけ。
真面目にゲーム作るときに使おうと思って覚えたのが動機だから、ゲーム基準なの。
constexprがもうちょっと高機能になったらいいなーと思ってる。



511 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 01:25:19.28 ID:pUXvKib1.net]
>>500
というか、煽ってないでコードだしてよ。
ハスケール読めないけど。

512 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 03:01:39.37 ID:2YrVj7rY.net]
>>497
グループ分けだから共通は無しじゃないの

513 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 15:09:43.81 ID:9C2z/2Vf.net]
>>495
ideone.com/kcTdlh

16だけだと寂しかったので、答えが多数出てくる24も追加してみた。
1は必ずAグループに入るようにしている。
(A,Bを特定した時、全く逆の組み合わせも存在するが、今回は表示してない)

514 名前:デフォルトの名無しさん [2016/05/09(月) 20:05:26.31 ID:t+bzhO52.net]
>>495 Io
for(i, 1, 2 ** 15,
 a := list
 for(j, 1, 16,a push(if(i at(j - 1) == 1, j, -j)))
 if(a map(**3) sum == 0, a println)
)

実行結果
list(-1, 2, 3, -4, 5, -6, -7, 8, 9, -10, -11, 12, -13, 14, 15, -16)

正の数をひとつのグループ、負の数をもうひとつのグループというこで

515 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 00:08:20.11 ID:E+X0dc0Z.net]
>>495
ideone.com/3boCML
C++。重複なし版。相変わらず16!は解決してない。
>>504 これ早いなー。すごいなー。Orz

516 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 19:41:46.28 ID:2fCl6+HU.net]
31の場合は何通り?

517 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 20:56:18.35 ID:0+ZmZvza.net]
40通り

518 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 21:01:50.08 ID:TdrM46fl.net]
>>495
@Mathematica

ideone.com/TPGKEh

519 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 02:23:15.24 ID:zcj8oTfj.net]
>>495 Java
ideone.com/J6hgFy

520 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 05:59:04.20 ID:71pkMQnc.net]
>>510
爆速だね。Core i7 4Gで
n=40で3646
n=47で173351
n=48で291482
個見つかった。所要時間1分くらいか



521 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 21:27:01.99 ID:zcj8oTfj.net]
listupがメモ化とかで速くできそうな気がするけど頭が動いちょらん

522 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 19:27:31.92 ID:fkcp4aHY.net]
>>495 Squeak/Pharo Smalltalk

| elems sets |
sets := Set new.
elems := (1 to: 16) asArray.
(1 to: elems size - 1) do: [:n |
 elems combinations: n atATimeDo: [:comb |
  | rest |
  rest := elems difference: comb.
  ((1 to: 3) allSatisfy: [:pow | (comb raisedTo: pow) sum = (rest raisedTo: pow) sum])
   ifTrue: [sets add: {comb copy. rest} asSet]
 ]
].
^sets "=> a Set(a Set(#(2 3 5 8 9 12 14 15) #(1 4 6 7 10 11 13 16))) "

523 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 20:53:50.90 ID:6rd1u1gc.net]
>>495
@Mathematica, リファクタリング後

ideone.com/QFce6S

524 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 16:09:50.16 ID:LEy4i3xG.net]
>>495
スレ汚しスマソ

@Mathematica, さらにリファクタリング

ideone.com/gvxa8t

testGroup の条件を書き換えて、枝刈り。
計算時間が半分に。

525 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 16:51:30.35 ID:QTcku1ZG.net]
昔ダイナムで雪降ってたのでゴム長で行って
朝一大ヤマト1/498で一発入ったら艦長が
『戦闘配置につけ!』って出たのを思い出した。
2連で終わったけど。

526 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 16:52:01.87 ID:UXQjq3mC.net]
どこの誤爆だw

527 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 16:59:37.57 ID:ZCteEarO.net]
そういや昔のパチンコ雑誌はZ80のアセンブラの解析記事とか載ってたなw

528 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 05:32:56.17 ID:4GANdY7B.net]
>>483
@Mathematica

ideone.com/4FZXRG

529 名前:デフォルトの名無しさん [2016/05/27(金) 20:18:44.31 ID:2AExo9Gt.net]
お題:n角形を隣接行列で表す

530 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 04:06:02.91 ID:t8+ZEFcK.net]
>>520
ideone.com/GcMBSl
C++。こういうこと?かしらかしらごぞんじかしら。



531 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 12:17:02.17 ID:MAzFniKU.net]
全然違うし何でそういう発想になったかわからん

532 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 16:19:17.65 ID:XDR4NRkL.net]
おれはこれ以外に解釈できない

533 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 18:12:21.03 ID:t8+ZEFcK.net]
>>522
線引いてみればわかるけど、N角形になるよ。
問題文が端的過ぎる。

534 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 18:15:28.59 ID:t8+ZEFcK.net]
出題者でてきてー。

535 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 01:35:58.98 ID:l7Z0+24R.net]
マジで出題者どこ行った。解こうにも解けないじゃないか。
ダメならダメでいいから出てこい。

536 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 20:35:38.46 ID:4RXp3JbO.net]
>>520 J
f=:(_1&|. +. 1&|.) @ = @ i.

f 4
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0

537 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/06/04(土) 22:13:22.70 ID:9azu721e.net]
お題:C/C++とWindowsに限定。レジストリ全体を記憶し、
変更があれば変更点を表示する。
Windows 2000で動作しなければならない。
GUIは必要ない。Enterキーを押したタイミングで差分を表示する。
報酬3000円。銀行振込、WebMoney、ビットキャッシュ、Amazonギフト券の中から選べる。
ただし、メールで連絡が取れること。

538 名前:デフォルトの名無しさん mailto:age [2016/06/04(土) 22:13:38.13 ID:9azu721e.net]
あげ

539 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 00:23:56.68 ID:bEHxSIM9.net]
DB全体のスナップショット機能と同じやん

540 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 07:15:50.35 ID:VJ6TUrY4.net]
ブラック企業かよw



541 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 08:41:23.90 ID:6BPcdog/.net]
Windows7以上?ではレジストリにアクセス権が設定できるんですが?

542 名前:デフォルトの名無しさん [2016/06/14(火) 17:21:21.81 ID:ylR65uF/.net]
N個の具材を3つ選んでハンバーガーにトッピングすることが出来ます。
合計285通りの組み合わせが出来ます。
必要な具材の最低個数と最高個数を求めてください。

543 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 19:38:38.50 ID:Eohj2elN.net]
286個では

544 名前:532 [2016/06/14(火) 20:27:38.82 ID:Wnl/zMEq.net]
いいえ285であってるはずです
「マクドナルド 裏メニュー」の285通りから問題を作りました

545 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 21:21:13.32 ID:F0Va16Jg.net]
この出題じゃその例にはならないぞ

546 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:44:42.75 ID:43s0H04y.net]
>>533
ちょっと言ってる意味が解らないですね。
オーダーしてくる確率が決まってるならまだしも、イーブンに注文してくるなら最高値と最低値は一緒になるのでは?
初見でそう思った。

C++にコンビネーションを・・・。Orz

547 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:46:00.30 ID:sBc8t+V7.net]
ハンバーガーにも種類があるのはググって分かったけど、それでも何を解答させんとしているのかはよくわからないね

ideone.com/etvHKm

548 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:43:08.29 ID:ZJPgf/2E.net]
>>535
表に1個有るんだろ。
計286通り。

549 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:19:32.87 ID:BV3PG4b+.net]
お題: 2つの異なる字幕ファイルをマージする
映画の字幕ファイルが2つ(日本語版と英語版)あります
また、2つのファイルはそれぞれ別の人が同じ映画から作成しました
ファイルのフォーマットは以下のように決まっています

[ フォーマット ]
発声開始時間 --> 発声終了時間
台詞1

発声開始時間 --> 発声終了時間
台詞2



550 名前:[ フォーマット例 ]
00:02:11,706 --> 00:02:13,196
banana.

00:02:14,509 --> 00:02:17,842
apple.

1つのファイルには台詞が1000以上あります
作成者が異なるのでぞれぞれのファイルの台詞の時間はバラバラに記録されています
近しい時間帯の台詞が出来るだけ綺麗に連なるように2つのファイルをマージしてください
[]
[ここ壊れてます]



551 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:27:48.70 ID:ifKGTnOo.net]
データをフォーマット通り読んでってソートするお仕事?

552 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:33:13.09 ID:BV3PG4b+.net]
>>541
作者が異なるので記録する台詞も個人差(詳細だったり大雑把だったり)があります
ソートしたらダメでした…(´・ω・`)

553 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:37:53.46 ID:ifKGTnOo.net]
データがなさ過ぎてなんとも言い難いなぁ。一抜け。

554 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 01:55:05.38 ID:ifKGTnOo.net]
まぁ、ぼやっと思う感じでは、
1、ファイルAソート。時間で。
2、ファイルBソート。時間で。
3、両方を別バッファに取り込み。
4、一本化バッファ作成。
5、バッファA[i]の時間とバッファB[j]の時間を比較。
6、小さいほうを一本化バッファの後ろに追加。
7、追加したほうのインデックサをインクリメント。追加しなかった方はそのまま。
8、5にループ。
9、余ってるほうを全部突っ込む。
end。
って感じに思えるが。メンドクセー。

555 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 02:35:16.23 ID:xbYmT3r1.net]
>>542
ソートしてダメならプログラムでやる意味ないじゃん
よくわからんお題だな

556 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 08:12:11.46 ID:a+kSsv7i.net]
>>540
二つのファイルをマージするとどんなメリットがあるの?

557 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 13:48:43.10 ID:kOUAeqMS.net]
とりあえずそのファイルをどこかに置いて見れるようにしとけよ。話はそれからだ。

558 名前:デフォルトの名無しさん mailto:sage [2016/06/26(日) 14:42:47.48 ID:VC0ezbuZ.net]
>>540
発生開始時刻と発生終了時刻の相加平均値でソートしてはどうでしょうか?

559 名前:デフォルトの名無しさん mailto:sage [2016/06/28(火) 21:40:42.79 ID:JU4eR3PY.net]
レス遅れてすまんが、お題としてはイマイチだったかな
ttp://www.opensubtitles.org/ja/subtitleserve/sub/5904174
ttp://www.opensubtitles.org/ja/subtitleserve/sub/6525137
>>546
英語の練習がしやすい

560 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 02:19:12.68 ID:sVTYBpM+.net]
タダの準備不足。
人を動かす材料が足りない。



561 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 23:31:32.20 ID:OPqpBspr.net]
そうか。すまんかった

562 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 23:49:35.70 ID:frOOdHyw.net]
入力だけじゃなく出力も提示しないとわからんよ

563 名前:デフォルトの名無しさん mailto:sage [2016/07/03(日) 21:08:39.04 ID:KvQk5E4z.net]
>>540
JAVA ソース
ttp://ideone.com/vxIcvL

jarなど
ttp://www1.axfc.net/u/3686951.zip

564 名前:デフォルトの名無しさん mailto:sage [2016/07/05(火) 11:21:22.75 ID:ALuHk1mL.net]
レスがつかないのでいいのか悪いのかさっぱりわからん
無責任なやつだな

565 名前:デフォルトの名無しさん [2016/07/21(木) 20:01:41.38 ID:rb76Qzme.net]
お題:
いくつかの非負整数を区切り記号を略して書き並べてあります。
区切り記号の挿入箇所の組み合わせは全部で

566 名前:何通りありますか? []
[ここ壊れてます]

567 名前:デフォルトの名無しさん [2016/07/21(木) 20:05:24.57 ID:rb76Qzme.net]
>>555
あれ、例が抜けてた↓

"150301" -> 18
"150031" -> 16
"015000" -> 8
"2432902008176640000" -> ?

568 名前:デフォルトの名無しさん mailto:sage [2016/07/21(木) 23:07:45.64 ID:8Nf0PhCE.net]
>>555-556
C++
あってるかどうかは知らん
ideone.com/F28LZS

569 名前:デフォルトの名無しさん [2016/07/22(金) 12:57:04.31 ID:M/7Z6G3a.net]
>>556
↓のような分割かと思ったが・・・

0,15000
01,5000
015,000
0150,00
01500,0
0,1,5000
0,15,000
0,150,00
0,1500,0
0,1,5,000
0,1,50,00
0,1,500,0
0,15,0,00


570 名前:デフォルトの名無しさん mailto:sage [2016/07/22(金) 15:32:49.00 ID:JXjdchXx.net]
>>555
C言語 ideone.com/rIkKvv
例からすると区切り無しも含むのですかね



571 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 06:35:51.96 ID:el9EgK1j.net]
>>555
Haskell
ideone.com/PsZ9vn

572 名前:デフォルトの名無しさん [2016/07/24(日) 23:19:04.90 ID:IHR53C+P.net]
久しぶりにこのスレ開いたけど
何か過疎ってね?

573 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 23:34:50.13 ID:253cC3eo.net]
俺は最近はyukicoderとかpaizaとかでお題解いてるよ

574 名前:デフォルトの名無しさん mailto:sage [2016/07/25(月) 03:46:54.86 ID:0UVAPYM3.net]
「プログラマ脳を鍛える数学パズル」
2016、技術書部門の大賞、受賞作

図書館では、予約している人が10人ぐらいいて、
とても読めそうにないので、今日、買ってきた

Ruby, JS などで書いてある

575 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 11:19:50.57 ID:XvUIxyvW.net]
>>555
ideone.com/r93ULh
ideone.com/PrKxyj
C++。数字が合わんがな。何か間違えてるかなぁ。
ルールの把握があいまいなのであってるか知らん。
もしかしたら、stringstreamでやってるwhileでカウントすればいいかもしれん。
それと対象ナンバーが64ビット超えたらたぶん動かない。
まぁいいや。せっかく作ったのでそれだけ認めてくれ。

576 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 20:19:22.73 ID:IfzkZoT6.net]
>>564
150301だったら

1,5,0,3,0,1
1,5,0,30,1
1,5,0,301
1,50,3,0,1
1,50,30,1
1,50,301
1,503,0,1
1,5030,1
1,50301
15,0,3,0,1
15,0,30,1
15,0,301
150,3,0,1
150,30,1
150,301
1503,0,1
15030,1
150301

の18通りだと思うけど

577 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 03:27:05.93 ID:11+SH8DV.net]
>>555
>>565
ideone.com/JHsovR
ideone.com/gz38Ko
C++。いじってみたけど、数字が合わず。何が間違ってるのかもわからない。
ルールを把握できないって、ぼけてきてるのかなぁ・・・。Orz
最近、思考してないし。

578 名前:デフォルトの名無しさん [2016/08/01(月) 04:25:27.15 ID:4Q/skcnH.net]
>>555
Pythonの勉強がてらやってみました
codepad.org/vszENnrW

>>566
最も愚直な方法は考えられる分け方を全て列挙し、その中から認められない分け方を除外して数えればいい
1,5,03,01の03と01のように二桁以上で先頭が0であるような分け方は認められないと思われる

579 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 02:02:12.74 ID:YLg91Q2/.net]
>>555
>>567
ideone.com/8TbvLG
C++。やっと数字があった。
皆さま、愚かなワタクシメをお許しください。ラーメン。Orz

580 名前:デフォルトの名無しさん mailto:sage [2016/08/07(日) 22:49:29.00 ID:K0guDqg3.net]
>>555
>>567
ideone.com/ftx1M2
C++でさっくりと。
>>557にあるファイルからの入力受け取る方法いいすね



581 名前:デフォルトの名無しさん [2016/08/09(火) 11:14:00.48 ID:92/o3tci.net]
>>569
checkの返り値はboolなのにそのまま足しちゃうの?

582 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 03:08:08.02 ID:inQKn798.net]
>>570
bool型はtrue=1,false=0なので次のコードは同じ
if(flag)ans++;
ans+=flag;

583 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 07:54:16.90 ID:rXBd1I+h.net]
>>571
ん?

584 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 11:18:58.21 ID:eCSVoJoG.net]
三流のROM専だけど、trueはnot0と思ってたし、trueを数値として扱うのは違和感すごいの。

585 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 11:21:37.91 ID:eCSVoJoG.net]
少し訂正
boolを数値として使うのは違和感

586 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 12:30:53.29 ID:Gdje5e7d.net]
言語による。Cなら普通におk

587 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 12:35:35.23 ID:j6o9ee9V.net]
普通でもおkでもねえよw

588 名前:デフォルトの名無しさん [2016/08/10(水) 19:34:37.97 ID:87OBHkNz.net]
c++のbool型のtrueは1
if文のtrueがnon0であることとbool型の定義は別ってことを理解していれば使っていいんじゃないの?
ideone.com/s3uiYC

589 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:05:43.36 ID:6wlopmtf.net]
じゃあ\0とNULLを混同して使っても(実際こんな人わんさといるけど)何も問題ないな

590 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:20:05.28 ID:R4BTC7dG.net]
つか0(0x30)とNULL(0x00=\0)を混同だろ、お前まで間違えても何ら問題ない



591 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:22:43.02 ID:5BOEqgkW.net]
Pythonのboolはintのサブクラスで数値演算に混ざっても警告やエラーなし
互換性捨てたPython3でもそのままでintから独立させる気配がない

592 名前:デフォルトの名無しさん [2016/08/10(水) 20:29:02.04 ID:sHDHYt88.net]
偽ではないものが真です。言語によって偽の定義が異なる。

593 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:48:14.92 ID:qB+vEzvD.net]
if(韓国人の言うこと==true)
return false;
else if(中国人の言うこと==true)
return false;
else
return true;

594 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 20:48:26.57 ID:O/fexyuH.net]
>>576
C に bool はない,だから普通にOKだ,C99 はしらんが

595 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 21:08:56.81 ID:6wlopmtf.net]
>>579
言ってるそばから混同してる奴が出て来たけど、
\0とNULLはまったく意味が違う。

596 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 21:12:11.66 ID:6wlopmtf.net]
>>583
型としてboolはなくても真偽の概念はある。

597 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 21:23:29.03 ID:6bflnq0j.net]
boolをintにキャストして使うとお前らが怒ることはわかった
じゃあなんのためにキャスト出来るようになってるん?数値として扱うべきでないならキャストを禁止すべきだ

598 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 21:56:03.25 ID:6wlopmtf.net]
>>586
別に目的があってキャストできるようにしてるわけじゃない。
単にif文等を機械語に翻訳する時に都合がいいからfalseを0にしてるだけ。

599 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 22:17:30.88 ID:aUoQ61q7.net]
ブール値が無い、C89でも、実質的なブール値という概念がある。
真偽値を返す、比較演算 if(a == b)

これを、if(int型)などと書くのは、MISRA-Cなどではコーディング規則違反

偽は0だが、真は0以外で、1とは限らないかも

\0 は、NUL文字。文字列の最後に使う、番兵。
NULL は、無効なポインタで、0とは限らないかも

600 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 22:33:17.47 ID:20SNjYRS.net]
C++なら問題ないよ
検索すりゃ分かるけどbool->intは0/1になることが言語仕様で決まってる



601 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 22:48:50.81 ID:6wlopmtf.net]
>>589
だからそういう「問題」じゃないってばw
そういう話ならNULLと\0も混同しても問題ないことになるよ。

602 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 23:10:16.36 ID:aUoQ61q7.net]
まあ、0, 1 とか暗号みたいな数値は、使わない方がいい

false, \0, NULL, 全ビット0 など、意図がわかるようにすべき

603 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 00:10:30.93 ID:yzOHsc1F.net]
「私」は「言語」として考えたらboolをboolとして使いたいし、intとしては無しだと思ってます。
でも「プログラミング」としては有りだと思ってます。
宜しければ、bool論争をここで終結としませんか?

604 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 09:47:35.13 ID:EgW5aVb5.net]
return (韓国人の言うこと)?false:!中国人の言うこと;

605 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 10:23:51.85 ID:TQheNK/m.net]
>>586
べつにキャストする必要はない

606 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 18:35:49.99 ID:5aKqGy8m.net]
くだらないことで争ってんな
正しく動きゃいいんだよ、んなもん

607 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 12:46:03.49 ID:W0ObG9Gv.net]
これだから型安全でない言語は糞なんだよ

608 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 11:38:09.80 ID:uRifR0NT.net]
YukiCoderたのしー。
3問目を解説見ながら解いた。
幅優先探索は苦手だ。Orz

609 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 19:57:07.32 ID:HA8B0Krx.net]
縦H横Wのマスの中に現れるa→b→cの順に辿れる道は全部で何通りあるか出力しなさい。
存在しない場合は-1と出力しなさい。
移動は縦横のみできる。斜めに移動はできない。
H==W、3<=(H,W)<=1000とする

問題例
--c-
cab-
cbac

答え 4
--c-|----|--c-|----
-ab-|----|--b-|-a--
----|cba-|--a-|cb--

610 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 20:29:36.17 ID:itqO338w.net]
>>598
問題例に不備があるじゃないか。



611 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 21:16:51.46 ID:HA8B0Krx.net]
訂正


問題例
--c-
cab-
cbac
----

答え 4
--c-|----|--c-|----
-ab-|----|--b-|-a--
----|cba-|--a-|cb--
----|----|----|----

612 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 01:18:23.97 ID:ATOVcA82.net]
全てのbの上下左右にあるaの数*cの数を足せば良いんだな。

613 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 05:08:48.91 ID:VvgCdVoy.net]
>>598
>>600
ideone.com/AW6YTZ
C++。Yukiだとサンプルしか通らなそうなコード。
まぁ、これが俺の地だしなぁ。
俺は俺にガッカリだよ。Orz

614 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 05:19:59.98 ID:VvgCdVoy.net]
>>598
>>600
ideone.com/oUQbfM
C++。>>601メソッド??
ちょっとすっきりした。

615 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:40:01.81 ID:YWGtPoG/.net]
お題

ズッカーマン数(Wikipediaより)
ズッカーマン数(-すう、Zuckerman number)は自然数で、各桁の数字の総乗が元の数の約数
であるような数である。例えば315は各桁の数字の積が 3×1×5=15 であり、15は

616 名前:315の約数で
あるので315はズッカーマン数である。

ズッカーマン数を最初から100個求めよ。
[]
[ここ壊れてます]

617 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:49:14.49 ID:/RUSPZDT.net]
梅干し食べて...

なんか力技でやるしかなさそうな感じだな

618 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 14:10:04.63 ID:VvgCdVoy.net]
>>604
ideone.com/t6xXhj
C++。あってるかな?

619 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 20:11:53.65 ID:NvOrOVSG.net]
こんな感じでいいのか?
ideone.com/NJ6rGr

620 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 20:38:01.87 ID:/9WWz1kS.net]
なぜいいと思った



621 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 21:21:48.34 ID:cQHsobNS.net]
C
ideone.com/peczRr

622 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 01:56:24.06 ID:fBfaZTKr.net]
>>604 F#勉強中@半年

https://paiza.io/projects/Zt_Tw1LaKtiB93Fi6dWkJQ

Wikipediaに書いてある数字との照らし合わせはしました
あと、paiza.ioのを貼るのは初めてなのでうまく貼れてるかどうか・・・
ちなみに、F#は主にyukicoderで鍛えてます、少しは分かってきたかも

623 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 02:08:11.71 ID:q0PyZcrj.net]
>>598 >>601のやり方で C言語
ideone.com/wkEP9Z

>>604 C言語
ideone.com/Pxskoy

624 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 14:43:03.45 ID:9WgV32AQ.net]
>>604
@Mathematica

ideone.com/tq9juG

625 名前:デフォルトの名無しさん mailto:sage [2016/08/17(水) 08:55:07.31 ID:5k4XIPv4.net]
>>604 Squeak Smalltalk

| Zuckerman |

Zuckerman := Generator on: [:g |
 1 to: Float infinity do: [:n |
  (n isDivisibleBy: ((n asString asArray collect: #digitValue) reduce: #*))
   ifTrue: [g yield: n]
 ]
].

Zuckerman next: 100

626 名前:デフォルトの名無しさん [2016/08/20(土) 20:32:51.59 ID:vgYTWLvl.net]
>>604
Rubyで。
class Zuckerman
# @param [Int] num チェック対象数値
# @return [Bool] true:入力値がズッカーマン数, false:ズッカーマン数でない
def self.zuckerman num
w = num.to_s
.split(//)
.map {|e|e.to_i}
.reduce(:*)
w == 0 ? false : num % w == 0
end

def self.func1
cnt = 0
(1..Float::INFINITY).map { |e|
(cnt += 1; p e) if self.zuckerman e
break if cnt >= 100
}
end
end

Zuckerman.func1

627 名前:デフォルトの名無しさん mailto:sage [2016/08/21(日) 01:56:15.80 ID:bS7dpt9A.net]
プログラミングのお題で言語間のコード量競うってか
いかに数学的アルゴリズムを考えるスレか?

628 名前:デフォルトの名無しさん mailto:sage [2016/08/21(日) 04:07:51.39 ID://fxd30H.net]
競プロの故郷じゃよ。なんて。
俺算数で解いてるんだぞ・・・。Orz

629 名前:デフォルトの名無しさん mailto:sage [2016/08/21(日) 07:18:31.83 ID:DtQd7MF/.net]
問題を解く早さ、

計算時間の速さ、

コードの短さ、

コードの美しさ、

色々あるね。

630 名前:デフォルトの名無しさん [2016/08/22(月) 00:07:09.67 ID:x59Y2UAa.net]
お題
フィボナッチ数列の先頭に近い数字の合計が、入力値になるように求める。
入力値の例--->出力
1 ---> 1
2 ---> 1,1
3 ---> 1,2
4 ---> 1,3
5 ---> 1,1,3
6 ---> 1,2,3
7 ---> 1,1,2,3
8 ---> 1,2,5



631 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 00:37:32.44 ID:RW2M/REU.net]
30人の生徒がいるクラスで、同じ誕生日の子がいる、確立を求めて

1年を365日とする

632 名前:デフォルトの名無しさん [2016/08/22(月) 00:49:12.07 ID:3wW8ItwJ.net]
>>619

「確立」は求められないけれど,「確率」なら求められる…というのはさておき,

同じクラスで誕生日が同じ子がいる確率の問題は,
森口繁一『応用数学夜話』
に解説があるのだが,その本が本の山の中に
埋もれていて,いま探し出せないのが残念。

633 名前:618 mailto:sage [2016/08/22(月) 01:14:27.85 ID:RW2M/REU.net]
1 - 全員が異なる誕生日である確率

で求めて

634 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 01:18:50.34 ID:38ySFfYc.net]
ideone.com/54J6iS
C++。数列に1を含んでいるので、例のようにやろうとすると全部1で分解しようとする。かも。
例がちょっと懇意なので、俺にはこれが限界やったわ。

635 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 01:27:31.25 ID:38ySFfYc.net]
>>622 -> >>618
安価忘れた。

636 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 01:53:51.46 ID:38ySFfYc.net]
>>619
>>621
ideone.com/BPf9XW
C++。確率の問題なんてだーいきらい。あってるか知らんけど大体こんな感じか?

637 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 02:06:45.94 ID:P8rthkb+.net]
>>621を出された時点で理論的確率を求めて欲しいのは明らかだけど、それだとプログラムを組む意味がない
要するにスレチ

638 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 02:15:23.57 ID:38ySFfYc.net]
>>625
算数でそれは無理なので、俺には無理だー。
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

639 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 02:31:12.36 ID:ze8O1aG1.net]
>>625
いやいや、簡単な数式で表現できても人力で数値解を求めるのは
大変なんだから、それってまさに計算機の出番ではあるよ。

お題として楽しいかどうかは別にしてw

640 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 03:39:29.64 ID:PiS6AnEW.net]
>>619 Java
https://ideone.com/Qmn3oZ



641 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 03:55:16.97 ID:38ySFfYc.net]
あ、勘違いしてた。>>624の結果逆だ・・・。Orz

642 名前:デフォルトの名無しさん [2016/08/22(月) 10:05:22.23 ID:6SPK9Sy9.net]
お題
やじろべえの左右の腕に交互に重りを吊るしていく
ただし、左右の重りの重量差が10gを超えたらバランスを崩してしまう
重りの重量が順に与えられるので最後までバランスを保ったままかどうか判定せよ

643 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 10:32:46.57 ID:38ySFfYc.net]
>>630
右と左を引き算してABS取ればいいのはわかるんだけど、重りのサンプル無いかい?

644 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 18:46:34.40 ID:FFKbVhI+.net]
>>618 Common Lisp
https://ideone.com/A0NXTP

64個でタイムアウト
遅すぎるよねこれ
もっと速く解ける気がするけど分からなかった

645 名前:デフォルトの名無しさん [2016/08/22(月) 19:23:14.70 ID:3wW8ItwJ.net]
>>619

森口繁一『応用数学夜話』(ようやく見付けました)によると、この問題は、von Misesとのことです。
結果だけ書くと、k人からなるクラスで誕生日がだれひとりとして同じにならない確率は
(1/n^2):*(n!/(n-k)!)
で、kはひとクラスjの人数、nは場合の数で、閏年を考えなければ
n=365となります。
この本によると、この確率が0.5を超えるのは
k=23
の時だそうです、つまり24人以上のクラスからなる学校では、
誕生日の重なるクラスが多くなるということになります。

646 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 22:39:24.73 ID:RW2M/REU.net]
24人で、0.5を超えるのか。不思議な感覚だな

漏れの感覚では、24人で、0.15ぐらい

647 名前:デフォルトの名無しさん [2016/08/23(火) 00:06:33.47 ID:nbfEIr8Y.net]
>>618
DP?

C言語
https://paiza.io/projects/NpNLBMGoxV-tDcmm4CycBQ
https://out.paiza.io/projects/NpNLBMGoxV-tDcmm4CycBQ/output.txt

648 名前:デフォルトの名無しさん [2016/08/23(火) 00:26:56.57 ID:nbfEIr8Y.net]
>>635
出力整形した

https://paiza.io/projects/rXzmboNl1gbBZflK_j8BrA
https://out.paiza.io/projects/rXzmboNl1gbBZflK_j8BrA/output.txt

649 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 05:09:43.19 ID:1XZ2ZUlZ.net]
ideone.com/RLDrpn
ベンチマークしようとしたら、先に出力エラーになった。

650 名前:デフォルトの名無しさん [2016/08/23(火) 13:54:31.44 ID:nbfEIr8Y.net]
>>637
5,6,7は>>618の結果と違うようだけど



651 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:03:36.67 ID:nbfEIr8Y.net]
そうかフィボナッチ数列はすぐ大きくなるから項数はそんなに大きくならないからgreedyでもいいのか
オーダーのことは未だよく分からないけど
たぶんDPよりgreedyのほうがいいのかな?
>>637がgreedyで求めてたので何となくそう思いました

652 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:13:51.47 ID:nbfEIr8Y.net]
>>639
あ、greedyだから題意を完全に満たさない結果になってるのか
やはりメモ化探索か
brute forceはキツそうだし

653 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:21:20.64 ID:1XZ2ZUlZ.net]
>>638
ちょっとよくわからないけど、バグかなぁ。>>635とかできてるしなぁ。
俺が悪かった。忘れてくれ。

654 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:47:31.03 ID:nbfEIr8Y.net]
自分の解答>>635>>636は題意を満たしてに可能性があるかも
先頭に近い数字という条件を
構成数が最も多くなるうち最初に見つかったものという勝手解釈したが
そうじゃなく辞書順的に小さい数を含むほうを選択する必要あるなら構成数が最大になるとは限らないかも
俺も自分の解答>>635>>636を取り下げます

655 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 14:52:37.15 ID:nbfEIr8Y.net]
>>642
となると、今のところbrute forceしかアイデアない

656 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 15:46:43.07 ID:8juwdgVG.net]
>>618
C++で貪欲法
フィボナッチ数を小さなフィボナッチ数に分解するところはもっといいやり方があると思う
https://paiza.io/projects/4gT7Vzo3rwr-d2V0q_vK3w

657 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 16:13:11.72 ID:1XZ2ZUlZ.net]
>>644
おぉ、すごいな。上手い。

658 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 16:59:17.93 ID:nbfEIr8Y.net]
>>642のさらに考察してDPで問題なさそうだと思って>>636のを辞書順に選択するように変えてみたけど結果変わらなかった
https://paiza.io/projects/E3IiR1BZVilAaTnBITTY-w
https://out.paiza.io/projects/E3IiR1BZVilAaTnBITTY-w/output.txt

>>636とのdiff取った、同じと出た
https://paiza.io/projects/R-vSh83dQSqE0kq0WGagTA

659 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 17:06:57.99 ID:Z+VJIz/8.net]
>>618 Squeak Smalltalk

| fn |
fn := [:N |
 | fibonacciUpTo elems ans |
 fibonacciUpTo := [:m |
  Array streamContents: [:ss |
   | a b |
   ss nextPut: (a := b := 1).
   [(a := b flag: (b := a + b)) < m] whileTrue: [ss nextPut: a]
  ]
 ].

 ans := nil.
 elems := fibonacciUpTo value: N.
 [:exit |
  elems size to: 1 by: -1 do: [:m |
   elems combinations: m atATimeDo: [:comb |
    comb sum = N ifTrue: [ans := comb. exit value]
   ]
  ]
 ] valueWithExit.
 ans
].

^(1 to: 10), {100. 1000} collect: [:N | N -> (fn value: N)]

"=> {1->#(1) . 2->#(1 1) . 3->#(1 2) . 4->#(1 1 2) . 5->#(1 1 3) . 6->#(1 2 3) .
7->#(1 1 2 3) . 8->#(1 2 5) . 9->#(1 1 2 5) . 10->#(1 1 3 5) . 100->#(1 2 3 5 13 21 55) .
1000->#(1 1 3 8 21 34 89 233 610)} "

660 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 17:07:07.82 ID:nbfEIr8Y.net]
>>644
何これめっちゃすごいな・・・
フィボナッチ数列に関する定理があるのか



661 名前:デフォルトの名無しさん [2016/08/23(火) 22:31:24.67 ID:xhPJKCKw.net]
>>618
Rubyで。
https://ideone.com/3XA5Qw

662 名前:デフォルトの名無しさん [2016/08/24(水) 00:02:28.52 ID:hGPUmbYi.net]
良問まとめありますか?

663 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 00:04:45.93 ID:IQL/zjWi.net]
競プロなんてどうでしょう

664 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 06:31:48.04 ID:emWUYHC0.net]
>>618 C言語
ideone.com/3s4puY
>>619 C言語
ideone.com/n6mblc
>>630 C言語
ideone.com/bPehld

665 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 12:37:09.73 ID:IQL/zjWi.net]
>>652
N =< f(0) + f(1) + ... +f(k) となるkを見つけたときにf(k-1)が>>618の題意を満たすフィボナッチの数の1つで再帰的にN := N - f(k-1)で貪欲法的に求められるのか
理屈が全然分からん
数学は奥が深すぎ

666 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 15:34:01.41 ID:DjG9ToKL.net]
f(0)+f(1)+...+f(k)=f(k+2)-1だから
N>=f(k+1)&&N<f(k+2)を満たすkを探してf(k-1)を選びN-f(k-1)を次のNとして再帰と言い換えたほうがわかりやすい

条件を満たす場合をちょっと式変形すると2f(k)>N-f(k-1)>=f(k)で
フィボナッチ数列の今てきとーに考えたガバ不等式だと2f(k)>=f(k+1)>=f(k)で考えたら再帰の途中で
N-f(kー1)>=f(k+1) && N-f(k-1)<f(k+2)
みたいなkが存在しててもおかしくなさそうだけど大丈夫なのかー

667 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 16:45:04.33 ID:38RcxOvs.net]
>>653 N:=N-f(k)やんか!ならf(k+1)>N-f(k)>=f(k-1)になるから帰納法で展開可能なことはすぐに証明出来そうだね
おそらく>>652はフィボナッチ数の大きい方から順に、自然数をフィボナッチ部分列で展開できるギリギリの大きさのフィボナッチ数を選んでる

668 名前:デフォルトの名無しさん [2016/08/24(水) 17:22:27.06 ID:hGPUmbYi.net]
そもそも理解があやしいから確認したいが・・・
フィボナッチ数列でなるべく小さいNをとって、集合{f(1), ・・・,f(N)}で
その部分の和をある数と一致させるって話?

669 名前:デフォルトの名無しさん [2016/08/24(水) 17:30:24.68 ID:hGPUmbYi.net]
>>656とすると、Nの下限は>>652のように総和を計算すればすぐ求まるな。
しかし、任意の数はフィボナッチ数列の部分集合の和で表現できるかとか、
上でf(N)を引き算した数がN-1以下の部分集合の和で表現できるとかは簡単か?

670 名前:651 mailto:sage [2016/08/24(水) 20:06:38.41 ID:emWUYHC0.net]
>>655の言うように展開できるぎりぎりの数を順に選んでます。

とりあえず、f(0)+f(1)+...+f(n)=sum(n) とした場合、
1〜sum(n)の整数はf(0)〜f(n)の部分和で表すことができる
例)フィボナッチ数列の最初の6つ[0,1,1,2,3,5]を使えば1〜12までの数を表せる
というのを前提に、与えられた数がsum(n)より大きくsum(n+1)以内なら
必ずf(n+1)が含まれるということを、残りの数が0になるまで再帰的に計算しています。

最初の前提は、数列を一辺とした正方形をつなげていくというあの形から
直感的になんとなく。1〜sum(n)がf(0)〜f(n)の数列の組み合わせで表せるなら
sum(n)>=f(n+1)(n>=1の場合)
なので1〜sum(n+1)もf(0)〜f(n+1)の数列の組み合わせで表せるということに
なるんじゃないのかなぁと。正直全く自信ないです。

自分が書いたコードは、求めたフィボナッチ数列を配列に保存していたけど
その必要全くなかったですね。 ideone.com/oUIvN8



671 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 20:50:39.06 ID:Gt3DCYIG.net]
>>618
@Mathematica

ideone.com/jtWvsW

672 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 19:55:54.39 ID:1lQyPTY4.net]
>>657
>上でf(N)を引き算した数がN-1以下の部分集合の和で表現できるとかは簡単か?
f(0)=0,f(1)=1,f(2)=1,f(3)=2,...のようにインデックスを決めておく。
命題:k>=1のときf(k+2) > N >=f(k+1)を満たす任意の自然数Nは{f(0),...,f(k)}の部分集合の和で表せる。
k=1のとき自明
k>=1で成立を仮定しk+1で命題が成り立つことを示す。
書き下すとf(f+3)>N>=f(k+2)を{f(0),...,f(k+1)}の部分列の和で表せればおk。
そこで部分列の一番大きなf(k+1)で全体を引き算すると
f(k+3)-f(k+1)>N-f(k+1)>=f(k+2)-f(k+1) ⇔ f(k+2) >N-f(k+1) >=f(k)
となり仮定よりN-f(k+1)は{f(0),...,f(k+1)}の部分列の和で表せる。
以上から帰納法で命題は正しい。
簡単すぎwwww

673 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 19:59:23.41 ID:1lQyPTY4.net]
>>660
>となり仮定よりN-f(k+1)は{f(0),...,f(k+1)}の部分列の和で表せる。
×N-f(k+1)は{f(0),...,f(k+1)}
〇N-f(k+1)は{f(0),...,f(k)}

674 名前:デフォルトの名無しさん [2016/08/26(金) 00:23:54.59 ID:iNPRC5gr.net]
速度が向

675 名前:上したのかどうか計るためのベースとして簡単なベンチマークテスト作った。
適当にウェイトいれて、機種・コンパイラの偏りをなくすようにしてみた。
http://ideone.com/KceBs4


ここ参考にした。
http://www001.upp.so-net.ne.jp/y_yutaka/labo/math_algo/calcbench.html
[]
[ここ壊れてます]

676 名前:661 [2016/08/26(金) 00:28:49.61 ID:iNPRC5gr.net]
ちょい疑問がシフト演算は早いという定説はあるとおもうが。
実際、計測比較してみると足し算、引き算よりも遅い。
オーバーフローが原因で遅くなってる気はするが・・・

677 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:34:55.42 ID:46yZwIqt.net]
>>663
コンパイラが最適化しちゃうからじゃね?

678 名前:デフォルトの名無しさん [2016/08/26(金) 00:47:03.70 ID:iNPRC5gr.net]
最適化対策として、計算結果を引き継ぐことで、ループ無視は防止できてるはず・・・

679 名前:デフォルトの名無しさん [2016/08/26(金) 01:07:03.15 ID:iNPRC5gr.net]
計算途中で、内部でオーバーフローか型変換が起こって遅くなってると予測してみて、
整数値で扱えない範囲にならないように、足し算のところビットORで代替してみたけど同速度だった。
単純にシフト演算が遅いだけっぽい。

680 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 01:29:53.53 ID:rbtqc2qT.net]
gccのo3でコンパイルしてみたけど確かにShiftが一番遅かった
どうしてこうなるかはアセンブリみれば一瞬でわかるよ



681 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 01:53:05.11 ID:rbtqc2qT.net]
shiftも早くなるようにおまじないかけといたよ
ideone.com/t1qv2O

682 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 01:54:53.90 ID:rbtqc2qT.net]
すまんローカルだと早くなってたんだが
Shift 421.0ms → 101.0ms

683 名前:デフォルトの名無しさん [2016/08/26(金) 01:56:20.02 ID:iNPRC5gr.net]
アセンブラはわからないけど。
内部で型変換がおってる説が間違いとすると、計算回数だろな・・・
シフト測定はシフト+足し算をしてて、足し算測定のほうは足し算一つだけ。
足し算測定のほうを、足し算1つ上乗せして公平にしてみる。

684 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 02:01:15.45 ID:CVrNr9ea.net]
clang 3.7のCで動かしたらこんなんなったんだがどういうことだ?
ideone.com/5Cjgpy

ちゃんと動いてないのか最適化でばっさりなのか

685 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 02:02:55.47 ID:CVrNr9ea.net]
clangの方が普通に最適化が効いて、gccの方が効いてないだけか?

686 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 04:26:31.05 ID:Mbltetpr.net]
gcc6.2.0使ってコンパイルしたらAVX2命令使いまくりで激速になった

687 名前:デフォルトの名無しさん [2016/08/26(金) 22:19:12.01 ID:iNPRC5gr.net]
良いベンチマーク考案中。
実際の問題を解いたプログラム / 基準ベンチマーク 
の時間比がほぼ一定が良い。機種、コンパイラによらず。

688 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 01:33:01.65 ID:UE0kbjNO.net]
>>662
最適化対策のための出力っていうのが良く分からん
あと、各々の命令の重さの係数(weight)はどうやって決めてるの?

689 名前:デフォルトの名無しさん [2016/08/27(土) 01:40:19.24 ID:7nFiTNgH.net]
必要の計算は無視される最適化に対応。、
意味はないけど最後まで計算を引き継いで出力する。各計算を和でつなぐ。

690 名前:デフォルトの名無しさん [2016/08/27(土) 01:42:17.34 ID:7nFiTNgH.net]
必要のない計算は・・・



691 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 02:40:42.60 ID:UE0kbjNO.net]
なるほど、そういうことか。
シフト命令が遅いのは変数kでシフトしてるからじゃないかな。
kビットシフトするのではなく1ビットシフトをk回繰り返した方が早くなるかも?

692 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 11:38:15.27 ID:2qjvRKJV.net]
つづきは個人のブログかチラシの裏でやれ

693 名前:デフォルトの名無しさん [2016/08/27(土) 12:50:08.51 ID:8oHlLwTt.net]
お題: 数字が書かれたn枚の紙切れが袋に入っています。
この袋から紙切れを取り出し、数字を見て袋に戻すということをx回行います。
x回の紙切れの数字の和がmになる確率を返す関数fを定義してください。

(let ((k '(1 3 5)) (m 10) (x 4)) ; n = 3, m = 10, k = {1, 3, 5}, x = 4
(f k m x))
=> 16/81

(let ((k '(1 3 5)) (m 9) (x 4)) ; n = 3, m = 9, k = {1, 3, 5}, x = 4
(f k m x))
=> 0/81

(let ((k '(1 2 3 4 5)) (m 15) (x 5)) ; n = 5, m = 15, k = {1, 2, 3, 4, 5}, x = 5
(f k m x))
=> ?

694 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 14:21:38.42 ID:/lPBBpET.net]
同じ数字の紙は何枚あってもいいの?
全部違う数字?
入っている数字はmより小さいの?

695 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 14:28:53.21 ID:/lPBBpET.net]
ああ、ごめん。忘れてw

696 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 14:54:16.82 ID:9mBmz7KO.net]
>>680
ideone.com/6XEpQt
C++。モンテカルロ。サンプル数少なすぎて収束してない。
確立はよくわからん。

697 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 15:28:29.92 ID:9mBmz7KO.net]
>>683 をちょびっと整形した。
ideone.com/l9zgpe

698 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 16:50:12.54 ID:FbbA5YyG.net]
>>680 Java
ideone.com/6BEAKE

699 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 18:38:18.89 ID:F1nYMYS3.net]
>>680 C(C99)
ideone.com/IRsTjt

700 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 23:43:10.10 ID:8oHlLwTt.net]
>>630 Emacs Lisp

(defun g (l s i)
(if (null l)
t
(let ((x (funcall (nth (% i 2) '(+ -)) s (car l))))
(when (<= (abs x) 10.0)
(g (cdr l) x (1+ i))))))

(defun f (l)
(g l 0 0))
f

(f '(2 4 2 4 2 4 2 4 2 4 0))
t

(f '(2 4 2 4 2 4 2 4 2 4.1 0))
nil

(f '(2 4 1 10 10 1 4 2 0))
nil

(f '(3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3))
t



701 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:20:07.72 ID:9IFYhCBA.net]
あなたはN円分の商品を1個購入することになりました。
おサイフの中には1,5,10,50,100,500円玉がそれぞれ1000枚あります。
価値の高い硬貨を優先に支払いに回すときに、それぞれの支払いに使う硬貨の枚数を求めよ
出力はカンマ区切りで左から1,5,10,50,100,500円の順に枚数を出力しなさい

例題
N=1111

出力
1,0,1,0,1,2

1円が1枚、10円が1枚、100円が1枚、500円が2枚なのでこうなります

702 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:22:27.37 ID:gdb/jxff.net]
ちょっと財布を想像して吹いたw

703 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:26:10.45 ID:CCZyZi8n.net]
>>688
それ1000枚の条件いるの?

704 名前:デフォルトの名無しさん [2016/08/28(日) 22:06:25.06 ID:sxo5kh14.net]
>>688
Rubyで。
https://ideone.com/fRleLH

705 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 22:43:07.98 ID:FpzTx2tv.net]
>>688 Emacs Lisp

(require 'cl-lib)

(setq purse (sort (append (make-list 1000 1) (make-list 1000 5) (make-list 1000 10) (make-list 1000 50) (make-list 1000 100) (make-list 1000 500)) #'>))

(defun f (N purse payment)
(assert (and (integerp N) (> N 0)))
(if (null purse)
""
(let ((x (car purse)))
(cond
((> x N) (f N (cl-remove-if #'(lambda (c) (= c x)) purse) payment))
((< x N) (f (- N x) (cdr purse) (cons x payment)))
((= x N) (cl-reduce #'(lambda (a b) (concat a "," b)) (mapcar #'(lambda (c) (number-to-string (count c (cons x payment)))) '(1 5 10 50 100 500))))))))

(f 1111 purse '())
"1,0,1,0,1,2"

(let ((max-lisp-eval-depth most-positive-fixnum)
(max-specpdl-size most-positive-fixnum))
(f 500500 purse '()))
"0,0,0,0,5,1000"

(let ((max-lisp-eval-depth most-positive-fixnum)
(max-specpdl-size most-positive-fixnum))
(f 666001 purse '()))
""

706 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 00:10:36.80 ID:G+hsDqDY.net]
>>688
C++で

707 名前:
http://ideone.com/p4dwIW
>>690
まあ本質的な意味はないけど一応1000枚の条件で答えは変わるぐらい
N=500500
0,0,0,0,5,1000
[]
[ここ壊れてます]

708 名前:デフォルトの名無しさん [2016/08/29(月) 10:41:31.05 ID:6rwIECPC.net]
まえにあった問題の解法が不明。
nに対して、2次元平面の円で、その円周上の整数点がちょうどn個となる円の最小半径を求める問題。

709 名前:デフォルトの名無しさん mailto:sage [2016/08/29(月) 16:45:06.30 ID:fFx5B9de.net]
>>694
問題関係のレスと自分が書いたコード見直したが、何やってるのかわけわからんくなってたから困るww

710 名前:デフォルトの名無しさん [2016/08/30(火) 01:05:58.62 ID:0bBTSjL7.net]
整数 a(0)、・・・、a(n)が与えられた時、
すべてのi に対して、 a(i) + c ≡ 0 (mod m)が成り立つような
m、c >1を求める問題。



711 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 01:20:54.99 ID:XiF8vPmR.net]
はい。

712 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 03:54:00.29 ID:ccTd05WG.net]
>>694
前スレからもってきたけど円の中心点の情報は書いてくれよ、めちゃくちゃ重要だろ

41 :デフォルトの名無しさん:2015/05/01(金) 14:31:24.98 ID:9G1+bMO9.net
お題:ちょうどn個(1 < n)の格子点(x座標もy座標も整数の点)を通る円の半径の
最小値を求める。円の中心点は格子点でなくてよい。

n=2 -> 0.5
n=5 -> 16.170331
n=6 -> 2.5

713 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 07:35:24.70 ID:o3zijpP7.net]
>>680 Common Lisp
ideone.com/yyVA7g
>>688 C++11
ideone.com/rNuPAy

714 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 11:00:38.72 ID:bKDKxVCe.net]
>>698
そのn=5は間違えてるから訂正しとく
N=5 (1/6,1/6) R=5.892557 R^2=625/18

715 名前:デフォルトの名無しさん [2016/08/30(火) 11:59:20.10 ID:0bBTSjL7.net]
>>698

個数4N個のときは最小半径と整数点を簡単に求める方法見つかった。 個数4、8、12、16、20、24・・・・のとき。

4で割って1余る素数を最初に求めておく。 5、13、17、29、37、41・・・・・

Nを適当に積に分解して、N = a(1) * ・・・ *a(i) 、a(1) >= a(2) >= ・・を満たすようにして。

半径2乗を5^(a(1)-1) * 13^(a(2)-1) * 17^(a(3)-1)・・・・とする原点中心の円周の格子点の数は、4N個。

最小半径をあたえるNの積分解を一発で求めるアルゴリズムはしらんが、この方針で間違いないはず。

716 名前:デフォルトの名無しさん [2016/08/30(火) 12:11:16.96 ID:0bBTSjL7.net]
まちがってた・・・・これと比較してみたら。 たとえば
8個のときは (2x-1)^2 + (2y-1)^2 = 5
12個のときは、(2x-1)^2 + (2y-1)^2 = 5^2
16個のときは、(2x-1)^2 + (2y-1)^2 = 5*13
20個 のときは、(2x-1)^2 + (2y-1)^2 = 5^4
でいいらしい。

>>701を2で割ったらほぼ合ってるかと・・・





118 名前: 投稿日:2015/05/14(木) 19:56:36.53 ID:rp22TBsk
>>118
俺が計算したのではこんなん
ただし半径256以上は最小じゃないかも知れないから注意
ideone.com/2WBTbl

717 名前:デフォルトの名無しさん [2016/08/30(火) 12:28:56.64 ID:0bBTSjL7.net]
>>702によると、41個の場合の方程式は、
(14x-1)^2 + (14y-1)^2 = 5^2 * 13^2 * 17^2 * 41^2 らしい。

予想するとこれはより半径を縮められるはず。
たとえば、適当に a、b、cをとれば、 ( ax + b)^2 + ( ax + c)^2 = 5^2 * 13^2 * 17^2 * 29^2
の格子点数が41個にできる可能性。

右辺はこれに限るとは言い切れないけど。
最初の右辺でもいまのでも、原点を通る円 x^2 + y^2 = ・・・としてはどちらも格子点数は4*3*3*3*3=324個のはず。

718 名前:デフォルトの名無しさん [2016/08/30(火) 12:45:23.63 ID:0bBTSjL7.net]
324/7 = 46.28、
324/8 = 40.5なので、
>>703でaは8以上だと、41点以上生成できないはず・・
aは7もしくは14で決め打ちして。2倍するのだけは特別でこれは解個数を変化させない可能性。>>702と同様。
しかし2倍しないほうがよリみつかりやすいはず・・
適当にa、bをとれば
( 7x + a)^2 + ( 7x + b)^2 = 5^2 * 13^2 * 17^2 * 29^2 の形で41点生成できると予想。

719 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 13:17:27.27 ID:bKDKxVCe.net]
5^2 * 13^2 * 17^2 * 41^2で出てくるのは39点と42点じゃないかな?
数学の事よくわからないけど。

720 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 13:23:30.96 ID:bKDKxVCe.net]
おっと間違えた
5^2 * 13^2 * 17^2 * 29^2 の形で出てくるのが39点と42点な



721 名前:デフォルトの名無しさん [2016/08/30(火) 13:55:35.84 ID:0bBTSjL7.net]
いや数学的な裏付けなどなく、たんなる予測だけど・・
いま検証コード作成中。

722 名前:デフォルトの名無しさん [2016/08/30(火) 15:04:25.03 ID:0bBTSjL7.net]
>>706
そのとおりだったわ。どういう理屈?
あと、計算が間違ってなければ>>703は解なしで、41点でてくる方程式は

(7x-1)^2 + (7y)^2 = 5^2 * 13^2 * 17^2 * 41^2 だった。

723 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 15:29:46.99 ID:bKDKxVCe.net]
>>708
理屈はわからんw
昔書いた探索コードでそのまま格子点数出せそうな感じだったので、
5^2*13^2*17^2*29^2を突っ込んでみたら39と42が出ただけw

んで、半径として考えるとN=41は
(7x-1)^2 + (7y)^2 = 5^2 * 13^2 * 17^2 * 41^2ではなく、
(14x-1)^2 + (14y-1)^2 = 2 * 5^2 * 13^2 * 17^2 * 41^2になるんかな。

724 名前:デフォルトの名無しさん [2016/08/31(水) 16:46:14.27 ID:9ufvv7Gu.net]
円の格子点のやつは、P=NPとかいった計算理論の話題とみて、難しいクラスでは?
素因数分解とか、巡回セールスマン問題と較べても計算困難では?
( Ax + B)^2 + ( Ax + C)^2 = R^2は半径はR/Aだけど、RもAも無限大までしても、最小半径になる可能性があって。
一つ解けた半径が、最小値なのかすら調べられない気が・・
AかRに上限あるとでも証明できれば別だが。

725 名前:デフォルトの名無しさん [2016/08/31(水) 19:35:22.89 ID:9ufvv7Gu.net]
たとえば、2点のときの最小半径は0.5らしいが・・・ 方程式は(2x)^2 + (2y-1)^2 = 1で。

a 十分大で、r/a < 0.5 を満たすとして、( ax -b )^2 + ( ay -c )^2 = r^2の格子点数が2点のみとなる場合はないのか?
 

726 名前:デフォルトの名無しさん [2016/08/31(水) 19:38:46.35 ID:9ufvv7Gu.net]
>>711が合ってた場合、最小半径はいくらでも小さくできると予想。
>>711が合ってない事を証明できる人いる?

727 名前:デフォルトの名無しさん [2016/08/31(水) 19:40:33.34 ID:9ufvv7Gu.net]
すまん。そんなわけがなかった。半径が小さすぎれば図を書いてみて格子点が発生しない。

728 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 19:47:55.57 ID:p1K5Mzky.net]
半径が自然数で中心が原点ならピタゴラス数の数を調べればわかるんだけどな。

729 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 19:49:26.51 ID:NSLbELcw.net]
その相似形は等価?相似検出するのメンドクセーけど。

730 名前:デフォルトの名無しさん [2016/08/31(水) 20:41:09.29 ID:9ufvv7Gu.net]
円内部の格子点数を不等式で挟める式あった。 
少し大きい円、少し小さい円のドーナツ型にしたら、円周上の格子点数の理想値が求まるかと・・・



ガウスの円問題

原点を中心とした半径rの円の内部(境界を含む)にある整数点の個数をR(r)で表す.
R(r)は円の面積の推定値を与える.R(100)/100^2 = 3.1417
ガウスは |R(r)-πr^2|<crを示したが,|R(r)-πr^2|<cr^k
となるkの最小値を求める問題に一般化される.
シェルピンスキーはk≦2/3を証明し,ガウスのk=1を改善.
1963年に陳景潤はk≦24/37を,1990年にハクスリーはk≦46/73を得た.
k=1/2と予想されている.

www.geocities.jp/ikuro_kotaro/koramu/834_r2.htm



731 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:41:41.64 ID:p1K5Mzky.net]
半径rのときの点の最大数は
bごとにaを変化させていってx、yが同時に整数になる数の最大数だな。
x=r (cos a +cos b)
y=r(sin a+ sin b)

732 名前:デフォルトの名無しさん [2016/09/01(木) 00:30:32.18 ID:F9uf4uEu.net]
R(r) 半径rの円の内部の整数点の個数
L(r) 半径rの円の円周上の格子点の個数として。

rより小さいsをとれば、
L(r) <= πr^2 + cr^k - ( πs^2 - cs^k ) 、s -> rとして =2cr^k

>>716にはcの値が書いてないが適当にc=7/2として、
よりよい評価したいのでk=1/2とすると、L(r) <= 7√r
うまく円周上に格子点を配置できたときの上限が7√r。

円周上の格子点を
32点生成できるrはr^2 = 5*13*17/2
64点生成できるrはr^2 = 5^3*13*17/2 らしいので

上の公式で計算してみると
上 = 7√r = 33.9375
下 = 7√r = 75.8867

評価式の性能はいまいち。
評価値とぴったり一致すれば最小半径が証明できるとおもったが使えない。

733 名前:デフォルトの名無しさん [2016/09/01(木) 01:40:05.53 ID:F9uf4uEu.net]
しかし、評価式のべつの使い道があるな。 L(r) < 7√rは正しい前提として。

たとえば、100点生成できる半径を求めようとしたとき、

L(203) < 99.7346 だから、半径が203以下ではムリだと判明する。探索するとき幅は狹められる。

734 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 08:42:57.18 ID:d9inzlx2.net]
どこかほかでやってくれないかな…

735 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:50:15.31 ID:wr8HVpEY.net]
そうだな。そもそも単なる数学の問題を
お題化したって、どうせ宿題なんだろって思ってしまう

736 名前:デフォルトの名無しさん [2016/09/02(金) 16:08:29.58 ID:szLK569k.net]
円周の格子点は一年半弱まえのやつだし、数学、数学の宿題の範疇では解けるとはおもえない。
僅かでも円のイチをずらせば格子点がまったく無くなったりするわけで
コンピュータの力技は必要だろ? ある程度、探索範囲をせばめることはできても検証でプログラムいるとおもう。

737 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 19:02:35.81 ID:VYGld2xC.net]
思考垂れ流しうんこマンが自重してくれればそれでいい
一人で連投してんじゃねー

738 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:03:49.13 ID:enD9pirT.net]
「論よりコード」

739 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 21:05:07.04 ID:+wy8tThR.net]
この流れならむしろ数学板でもいいとおもう

740 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 21:52:48.00 ID:e1jBggiu.net]
お題:
下図のように山の麓(標高0)の両側にいるA君B君が頂上(標高10)を目指して同時に出発する
ただし、A君B君のいる位置の標高はどの時刻でも等しくなるように登らなければならない
(下図でA君が標高7の峠から標高3の谷へ下るときにはB君は来た道を引き返す必要がある)
標高1だけ上るor下るのに1時間かかるとして頂上まで最短で何時間かかるか求めよ

            10
       7   /\
     /\/3   \
A 0/            \0 B

山の形状は以下のような文字列で表現する
1)文字列の先頭と末尾はA君B君のスタート地点(標高0)を表し、必ず'0'である
2)ゴールの頂上(標高10)の位置は':'で表す(文字コードがちょうど':'='0'+10なので)
3)途中の峠と谷の標高を'1'〜'9'で表す(上図の山の形状は"073:0"と表される)
4)途中の峠と谷は交互に現れるようにする(例えば"037:0"は無し)

テスト例
"073:0" -> 18
"07362:450" -> 36
"06464:36470" -> 42
"0827171:28480" -> 66
"0737491:28180" -> 146
"05374734372747484:184618186912120" -> ?



741 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:34:33.91 ID:hbWVf6eK.net]
A:012101....
B:012123...
詰む気がするんだけど

742 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 04:18:59.59 ID:P0QwwpBf.net]
>>726
c++ https://ideone.com/2sIaGw

とりあえず、サンプルが通ったからsubmitって感じ。

743 名前:デフォルトの名無しさん [2016/09/03(土) 08:16:17.90 ID:QWBdU6+p.net]
一年半弱立っててもまともなコードがあがってない難問。 論、一部結果はでてるが有効打ゼロ。

744 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 18:06:05.39 ID:fVb/pFms.net]
>>728

https://ideone.com/2sIaGw (上書き修正)
BFS版を追加して、それを本採用

※依然として低い高さ制限=10に甘えたコードになっている

745 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 20:46:56.74 ID:hrFRXovl.net]
>>604 OCaml(勉強中)

ideone.com/fRBQlj

F#と並行してその元になってるOCamlの勉強も始めてみました
yukicoderで同じ問題やったらOCamlの方が実行時間8倍速、使用メモり1/7くらいだった・・・

746 名前:デフォルトの名無しさん [2016/09/04(日) 04:44:05.42 ID:swx+XD0y.net]
>>726
Ruby
https://ideone.com/LcrSC5

747 名前:デフォルトの名無しさん [2016/09/04(日) 10:12:56.94 ID:AIgtYd56.net]
円周の格子点は、
平面上の0-45度部分へ整数点の中心(a,b)を取って
原点を通る円、 (x-a)^2 + (y-b)^2 = r^2, (r^2 =a^2 + b^2)をベースに
整数mをとって解個数を1/m以下にする操作、
(mx-a)^2 + (my-b)^2 = r^2を考えればよさげ。
これならa,b,mは小さい順に無駄なく動かせ網羅できるかと。

748 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:51:14.83 ID:+9WebUQ3.net]
>>733
論よりコード もしくは演算結果

749 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 01:44:45.83 ID:Bbadz6db.net]
>>726 Emacs Lisp

(require 'cl-lib)

(defun f (s)
(let* ((e (reduce (lambda (a b) (concat a (substring b 1)))
(mapcar (lambda (x) (let ((a (car x)) (b (cdr x)))
(macrolet ((c (d) `(loop for i from a ,d b concat (string i)))) (if (< a b) (c to) (c downto)))))
(loop for i from 0 below (1- (length s)) collect (cons (aref s i) (aref s (1+ i)))))))
(f (position ?: e)) (g (substring e 0 (1+ f))) (h (apply #'string (reverse (string-to-list (substring e f)))))
(w 0) (y '(((0 . 0) 0 nil))))
(while y
(let ((i (caaar y)) (j (cdaar y)))
(if (and (= (aref g i) ?:) (= (aref h j) ?:))
(setq w (cadar y) y nil)
(setq y (append y (mapcar (lambda (x) (list x (1+ (cadar y)) (cons (cons i j) (caddar y))))
(remove-if (lambda (x) (or (< (car x) 0) (< (cdr x) 0) (find x (caddar y) :test 'equal) (/= (aref g (car x)) (aref h (cdr x)))))
(list (cons (1+ i) (1+ j)) (cons (1+ i) (1- j)) (cons (1- i) (1+ j)) (cons (1- i) (1- j)))))))))
(pop y))
w))

(f "073:0") 18
(f "07362:450") 36
(f "06464:36470") 42
(f "0827171:28480") 66
(f "0737491:28180") 146
(f "05374734372747484:184618186912120") 400
(f "021:120") 12
(f "091:280") 62

750 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:34:40.70 ID:U1OL4Uha.net]
>>726
Haskell
ideone.com/SHS7xc



751 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 09:47:06.73 ID:lP0lbdh9.net]
お題: Hello, World! を円形にして出力。
円形の定義、CUI, GUI どちらでやるかも自由。
丸くなっていれば良しとする。

752 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 16:48:28.87 ID:cNnBFZuZ.net]
>>737 Javascript
codepen.io/anon/pen/VKvNOg

753 名前: []
[ここ壊れてます]

754 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 03:30:08.30 ID:jvr3tDVu.net]
ideone.com/cGLp0X
C++。イデオンで再現しようと思ってエスケープシーケンス検索したら、
win10の以前のアップデートで限定的に復活してたので使ってみた。
イデオンでは通らなかった。Orz

755 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 03:30:44.87 ID:jvr3tDVu.net]
画像つけ忘れた。Orz
sssp://o.8ch.net/gsxd.png

756 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:28:14.57 ID:ziymAouq.net]
>>694
https://ideone.com/wVBe61 (コードではなく計算結果)
円周上の格子点、高速化頑張ったら15分でこれ位行けるようになった@PentiumG6950

https://ideone.com/lpXRWS
こっちは1年前にUPしたけどスレに貼らなかった計算結果…結構長い時間かけて計算したような覚えがある。

757 名前:デフォルトの名無しさん [2016/09/13(火) 11:57:17.52 ID:EheVVWlB.net]
円周の格子点問題は、数学でもプログラムでも一発で解答できる決定版はなさげで
力業をいかに高速化するかにかかってるとおもうな。

758 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:05:57.03 ID:UfB/Iygd.net]
直径nキロメートルの円があります。
手島と大嶋は時計回りに円周上を走ることになりました。
手島は秒速tセンチメートル、大嶋は分速oメートルで走ります。
0<n<100000000
0≦t≦10000000
0≦o≦10000
0<m<1000000
大嶋が円をm周した時に手島はn周出来たか出力しなさい。

■標準入力
1行目がn、2行目がtとo、3行目がm
n
t o
m

■標準出力
n

759 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:44:49.89 ID:c6Y5aSJz.net]
>>743
nが2回出てきてるんですが
っていうか、答えは整数実数どっち?
後者なら有効数字はどうするの?

760 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:45:20.45 ID:jvr3tDVu.net]
時計ですなー。



761 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 13:35:13.01 ID:ziymAouq.net]
>>743 Java
https://ideone.com/nWux6W
直径って出力に関係ないよね…?

762 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:16:40.62 ID:Hd4kFj6N.net]
>>737 C
ideone.com/JZTL1J
>>743 C
ideone.com/sIdSFq

763 名前:デフォルトの名無しさん [2016/09/14(水) 00:16:05.45 ID:U8aDu041.net]
>>743
Rubyで。
input =<<END
2.5
100 200
10
END
n, t, o, m = input.split.map { |e| e.to_f }
p 3 * m * t >= 5 * o * n

764 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 18:32:15.94 ID:XNPp97JV.net]
地球の半径ですら6400キロなのに
直径100000000キロまで設定している>>743って。。。

765 名前:デフォルトの名無しさん [2016/09/14(水) 21:22:01.11 ID:lCv5R5I7.net]
宇宙人なんだろう
観測史上最大の星 L1551 IRS5 だと1e8じゃあまだまだ足りんぞ

766 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:19:45.34 ID:9oYup838.net]
出題出来るオレ、カッケー
とか思って調子に乗ってやったんだろ、どうせ。
今頃恥ずかしくてこのスレも見ていないだろ。
こういう奴はdat落ちして新スレに移行するか、最新50くらいの
過去ログが流れてしまった頃に
素知らぬ顔してまた書き込み出すぜ。

767 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:44:49.56 ID:goOJLnhv.net]
山下雄介

768 名前:デフォルトの名無しさん [2016/09/21(水) 12:22:41.32 ID:Fil1hk+D.net]
Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS, Flash, PHP, C++, Java, C#, Python に書き出せる。
Windows8.1対応

IDEは、FlashDevelop

このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/

Haxeプログラミング入門、尾野政樹、2015

769 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 00:14:12.32 ID:x19ZT2Us.net]
お題:足がコンパスのロボット
足がコンパスのようになっており、片足を支点にして交互に回転しながら歩くようなロボットがあります。
回転半径は1メートルで固定です。その回転角度は10〜360°まで設定できるのですが、
実際に動かすと、その設定範囲内で1歩毎に常にランダムの角度で動いてしまいます。
例えば90°に設定すると、1〜90の範囲で1°間隔にてランダムな回転角度です。
スタート地点にこのロボットを置き、1000歩、歩かせた場合、
最もスタート地点から遠ざかってしまう可能性が高い設定角度は
10°、30°、45°、60°、90°、180°、270°、360°のうちどれでしょう?

770 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 00:25:35.81 ID:va8I6tp2.net]
回転角度は10度以上360度以下の整数で
設定がn度のとき、1,2,3,...,n度で歩く確率がそれぞれ1/nってこと?
設問がよくわからない



771 名前:753 mailto:sage [2016/09/28(水) 00:27:45.52 ID:x19ZT2Us.net]
>>754
訂正します。
最もスタート地点から遠ざかってしまう可能性×
最も歩く範囲面積が大きくなる可能性○

772 名前:753 mailto:sage [2016/09/28(水) 01:05:00.83 ID:x19ZT2Us.net]
>>756
面積は必要なかったw
最も歩く範囲が大きくなる可能性○

773 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 01:08:31.73 ID:va8I6tp2.net]
歩く範囲って何?
そしてその範囲にどういう順序を導入すんの?

774 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 01:31:23.36 ID:x19ZT2Us.net]
>>758
どうしようかな・・・
例えば、ロボットが大きな円盤に乗っている。ロボットを中心に置く。
1000歩歩かせた場合、一番大きな円盤を必要とする設定は概ね何度でしょう?
ってのがいいかな。

775 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 01:44:05.92 ID:vAKZVh2k.net]
なんという泥縄...

776 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 02:12:02.41 ID:E00q6b/l.net]
設定が360度の場合、1度〜360度でランダムなのか10度〜360度でランダムなのか

777 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 02:13:21.23 ID:E00q6b/l.net]
て書いてあったわすまん

778 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 02:18:42.43 ID:E00q6b/l.net]
>>754 Java
https://paiza.io/projects/CDqrMJ9Uzeu_xuPBk77a3Q
これで良いんかの

779 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 02:45:02.35 ID:E00q6b/l.net]
うん、>>763バグってるねw
https://paiza.io/projects/y_4Q-6RWYYRQul600Fxw7A

780 名前:753 mailto:sage [2016/09/28(水) 09:28:28.82 ID:5Q2VSD5F.net]
>>764
正解!



781 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/28(水) 23:43:35.22 ID:fvrxpn3K.net]
お題:X-Y散布図のデータが与えられると、データの特徴を出力するプログラムを作れ。

782 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 00:41:48.24 ID:jq9v4dMk.net]
質問。出力の型はな〜に?

783 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/29(木) 00:56:33.41 ID:4ynE22uh.net]
>>767
決まっていない。

784 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/29(木) 01:02:42.83 ID:4ynE22uh.net]
Xが変化しないなら、「Xは定数と思われます」。
統計的特徴として、最大値、最小値、平均値など。
相関の有無など。
データの特徴を学習させるときに使えたらなと思う。

785 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/29(木) 01:09:09.41 ID:4ynE22uh.net]
>>767
ごめんごめん、型は文字列がいいや。

786 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 01:18:25.34 ID:5Ed1CqY4.net]
プログラミングの問題じゃねーなそれ

787 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/29(木) 01:24:57.46 ID:4ynE22uh.net]
お題:数列の規則性を分析して一般項のC言語式を推定するプログラム。

788 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 01:26:33.81 ID:iWzko7DS.net]
変な奴きたなおい

789 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 11:07:09.92 ID:S1ISAJ/O.net]
お題:
次の文章が成り立つように( )の中に数を入れよ(10進数の算用数字の形で)。

『この文章の中に
0は( )文字、1は( )文字、2は( )文字、3は( )文字、4は( )文字、
5は( )文字、6は( )文字、7は( )文字、8は( )文字、9は( )文字、
算用数字は( )文字あります』

790 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 11:12:05.26 ID:3fQeuqpk.net]
前にそれ見たことあるけど。問題ちょっと違うけど。



791 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 13:26:29.91 ID:HDXVl+rI.net]
>>774
複数解あるから全部列挙しろって事?

Ruby 2.3.1

$><<'『この文章の中に
0は(%d)文字、1は(%d)文字、2は(%d)文字、3は(%d)文字、4は(%d)文字、
5は(%d)文字、6は(%d)文字、7は(%d)文字、8は(%d)文字、9は(%d)文字、
算用数字は( )文字あります』'%[1,7,5,1,1,2,1,2,1,1,22]

792 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 17:18:56.68 ID:Y6l190wq.net]
数字と漢数字を相互に変換するプログラムを作成お願いします。
出来ればC#でお願いします。

111231243235436 <==> 百十一兆二千三百十二億四千三百二十三万五千四百三十六

793 名前:デフォルトの名無しさん [2016/09/30(金) 17:34:05.09 ID:CijhFsAG.net]
じぶんでやれ

794 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 19:16:59.63 ID:GrCnAQwz.net]
おーくせんまんおーくせんまん

795 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 15:45:59.82 ID:g8fgU4gY.net]
お題と見せかけてプログラム作成依頼する奴って性格悪そう

796 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 17:22:57.31 ID:Hi+y6PXx.net]
じゃぱぁーん!

797 名前:デフォルトの名無しさん [2016/10/01(土) 23:29:57.15 ID:sU5CeuPC.net]
>>777
Ruby
ideone.com/fKqGcR

798 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 10:09:53.98 ID:tpSAAMa5.net]
逆方向が難しいな

799 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 10:28:30.05 ID:9tnsJKRL.net]
そうなの?
いまから取り組む予定だったけど
そんなに難しいんなら止めよっと

800 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 11:51:51.24 ID:QvMQ+uX0.net]
難しくはない
面倒くさいだけで



801 名前:デフォルトの名無しさん [2016/10/02(日) 17:21:53.04 ID:k1HK9CGy.net]
>>777
Rubyで両方向。
ideone.com/vTwBZc

802 名前:デフォルトの名無しさん [2016/10/02(日) 21:03:52.42 ID:YNMJXJ08.net]
お題:3×3×3のルービックキューブを最小手数で6面揃えるプログラム

803 名前:デフォルトの名無しさん [2016/10/02(日) 21:10:43.76 ID:w8w2bVqI.net]
すいません>>787は自己解決しました

804 名前:デフォルトの名無しさん mailto:sage [2016/10/02(日) 21:17:54.22 ID:YgSevYt1.net]
自己解決ってなんだ

805 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 02:19:06.57 ID:afA6oe1A.net]
>>777 ruby 2.0.0
ideone.com/uwKDDc
・マイナスを▲で表現するアイデアは>>786さんから無断で拝借しました
・テスト部分のコードも>>786さんから無断で拝借しました

806 名前:デフォルトの名無しさん [2016/10/03(月) 07:04:42.97 ID:g0wnVkPc.net]
>>790
サンクス

807 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 15:18:20.56 ID:wy4v0QcT.net]
>>787-789

ワラタw

808 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:25:42.73 ID:lIBXU/7G.net]
数独ソルバーで任天堂問題解こうと思ったら、2000万年かかるようになった。Orz
総当たりだとキツイなぁ。数独は。平均サジェスト数が2個の81乗。死ぬわ。

809 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:29:48.53 ID:lIBXU/7G.net]
cp1.nintendo.co.jp/ruby.html
ここから入門。

810 名前:デフォルトの名無しさん [2016/10/03(月) 21:33:29.69 ID:RKI08UEe.net]
任天堂問題とは?



811 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:40:47.39 ID:lIBXU/7G.net]
>>795
俺が作った造語。すまんな。
>>794のページから問題解いてくとアルヨ。

812 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:59:25.51 ID:hxqof8pD.net]
Rubyの自作ヘボ数独ソルバーですらコンマ以下で解けたぞ

813 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:19:26.57 ID:lIBXU/7G.net]
>>797
俺あんまりロジック解くの得意じゃないからねぇ。
C++でかいたけど、総当たりは筋が悪いことはわかったよ。

814 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:24:43.42 ID:aKvG7AoT.net]
総当たりから不要なパターンを省いていくのも一つの手だと思う

815 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:25:59.85 ID:hxqof8pD.net]
>>797
基本ルール:ある数字と同じ列(or行or3*3の正方形)にはその数字が入らない
これだけでも実装して後は背理法でやればすぐ解けると思うぞ
解の一意性がどうかとか細かいこともあるけどこの問題は一意的に求まるから関係ないし

816 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 22:27:06.95 ID:lIBXU/7G.net]
ideone.com/afSrEW
ここからどうしたらいいと思う?
i7-6700でも2000万年かかる。

817 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 01:44:53.95 ID:a8C2punc.net]
>>793-794
昔書いたソースコードを流用した

ideone.com/ibTP88

818 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 01:58:03.23 ID:FAQ7jfY8.net]
>>802
グレート!
すごいな、イデオン時間で解けるもんなんだなぁ。うーん。俺は修業が足りんな。
俺も結構書いたかと思ったけど全然うわてだ。
ロジック解くときはやっぱこれくらい書かないとダメかー。
ひぎぃ、頭がフットーしちゃうよぉ〜。

819 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 02:23:25.94 ID:a8C2punc.net]
>>803
数独は有名な解き方がいくつかあるので、それを知らないと難しいかも
いくつもある解き方を実装するのは面倒なのでバックトラック法でやるのがいいと思う

820 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 02:52:38.24 ID:FAQ7jfY8.net]
>>804
情報ありがとう。いいものが見れた。



821 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 19:40:37.29 ID:wFGKqamD.net]
お題:任天堂の倒し方をプログラムせよ。

822 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 21:58:16.07 ID:ZRyYrZJK.net]
大作だなあ…

823 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 23:47:40.64 ID:YN9fMNzy.net]
「方法をブログラムせよ」ってのが謎なんですが

824 名前:デフォルトの名無しさん mailto:sage [2016/10/04(火) 23:50:15.04 ID:FAQ7jfY8.net]
日本語で。
株を買います。株主総会でゴネマス。倒せます。

825 名前:デフォルトの名無しさん [2016/10/05(水) 00:49:13.06 ID:JfbCSBrf.net]
>>806
プログラムしたよ。

826 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 19:29:14.00 ID:Bgv24eMU.net]
任天堂の倒し方を知っていると
言っていた面接官は

827 名前:デフォルトの名無しさん [2016/10/05(水) 19:35:13.81 ID:ljdAnrxD.net]
お題:激問

828 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:44:58.11 ID:d6ezgCbb.net]
>>793
ideone.com/cILqPg
C++。
やっと解けたよー。ほとんどデバッグも整形もしてないけど、答えはあってるかも。
2000万年が0秒になった。頭タコすぎて泣けるわ。
頭がフットーする。
>>802に感謝。

829 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:45:50.48 ID:iBWfgtGO.net]
print "任天堂の倒し方"

830 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 21:56:56.37 ID:NHEuemUY.net]
ヒントページ見れば苦労せずに誰でも書けそうなもんだが



831 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 22:05:52.60 ID:d6ezgCbb.net]
>>815
ルビー読めません。Orz

832 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 17:02:16.03 ID:VkVdfdR0.net]
スタックを操作するプログラムまたそれを表示するプログラムをお願いします

833 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 17:48:54.19 ID:Gk0vxqlO.net]
狩野英孝のものまねで「スタックー」って叫べばOK

834 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/06(木) 18:13:10.02 ID:KbZqo+3y.net]
>>817
自動変数のアドレスはスタックへのポインターになる

835 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 19:29:47.14 ID:LwTuJfQY.net]
スタックを操作するプログラムってこんなんでいいのかな?

#include <malloc.h>
#include <stdio.h>
#include <string.h>

unsigned char data[6] = {0x68,0,0,0,0,0xc3};

unsigned int func() {
unsigned int *p;
p = malloc(1024);
memcpy(p,data,6);
*((unsigned int*)&data[1]) = *((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*)));
*((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*))) = (unsigned int)p;
printf("0x%X\n",*((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*))));
return *((unsigned int*)&data[1]);
}

int main(void) {
printf("0x%X\n",func());
return 0;
}

836 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 19:48:03.50 ID:LwTuJfQY.net]
>>820
すまん、これ間違ってますねぇ・・・
スタックの操作って環境依存な気がするけどどうなんでしょう

837 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 20:04:22.70 ID:SdPd3klr.net]
え?データ構造の練習の話じゃなくてプログラムの一時領域の話?
ちなみにここは宿題スレじゃない。

838 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:15:35.91 ID:dAHZcQmf.net]
スマホで入力した数字を出力しなさい
Sは0から9までの数字とcと+と-からなる文字列
0<S<1001
Sの先頭は数字から始まる
Sの最後に+と-がこない
cは入力済みの数字をクリアする
+は左辺に1を足し、-は右辺に1を引く
Sに数字が含まれていなかったり、cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること

■stdin
5+1-32c8
■stdout
8

■stdin
32+8
■stdout
338

■stdin
+24c25
■stdout
ERROR

839 名前:修正 mailto:sage [2016/10/06(木) 21:16:30.92 ID:dAHZcQmf.net]
スマホで入力した数字を出力しなさい
Sは0から9までの数字とcと+と-からなる文字列
0<S<1001
Sの最後に+と-がこない
cは入力済みの数字をクリアする
+は左辺に1を足し、-は右辺に1を引く
Sに数字が含まれていなかったり、cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること

■stdin
5+1-32c8
■stdout
8

■stdin
32+8
■stdout
338

■stdin
+24c25
■stdout
ERROR

840 名前:修正 mailto:sage [2016/10/06(木) 21:17:13.95 ID:dAHZcQmf.net]
Sの最後に+と-がこない
↑この1文も削除



841 名前:修正 mailto:sage [2016/10/06(木) 21:18:37.24 ID:dAHZcQmf.net]
119+5
なら1205

842 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:55:36.99 ID:hrJ3iBy7.net]
この+,-ってスマホの入力とどういう関係があるの?

843 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 21:59:09.52 ID:HEfd0Rj6.net]
また山下雄介か

844 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 10:59:44.51 ID:1a/aMfXp.net]
>>824
ruby

if gets.chomp!.split(/[c+-]/, -1).include?('')
puts:ERROR
else
str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_
ary = str.split(/\b/)
ary.each_with_index{|s, i|
case s
when /^\d+$/ then next
when ?+ then ary[i - 1].succ!
when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s
end
ary.delete_at(i)
}
puts ary*''
end

845 名前:828 mailto:sage [2016/10/07(金) 11:10:04.11 ID:1a/aMfXp.net]
ミス

if gets.chomp!.split(/[c+-]/, -1).include?('')
puts:ERROR
else
str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_
ary = str.split(/\b/)
ary.each_with_index{|s, i|
case s
when /^\d+$/ then next
when ?+ then ary[i - 1].succ!
when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s
end
ary[i] = nil
}
puts ary.compact*''
end

846 名前:828 mailto:sage [2016/10/07(金) 11:21:01.09 ID:1a/aMfXp.net]
ミス
連投すまんこれで最後にするわ

if gets.chomp!.split(/[c+-]/, -1).include?('')
puts:ERROR
else
str = $_.include?(?c)? $_[/c\K[^c]*$/] : $_
ary = str.split(/\b/)
ary.each_with_index{|s, i|
case s
when /^-?\d+$/ then next
when ?+ then ary[i - 1] = (ary[i - 1].to_i + 1).to_s
when ?- then ary[i + 1] = (ary[i + 1].to_i - 1).to_s
end
ary[i] = nil
}
puts ary*''
end

847 名前:デフォルトの名無しさん [2016/10/08(土) 08:08:57.97 ID:vxldEz4C.net]
>>824
830を参考にしました。
Ruby
ideone.com/AizppP

848 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 01:39:18.78 ID:okPyT/Vt.net]
1行で

gets.chomp!.split(/[c+-]/,-1)&['']!=[]?$><<:ERROR:(~/c/?$_[/c\K[^c]*$/]:$_).split(/\b/).tap{|a|$><<a.each_with_index{|s,i|s.to_s[/\d/]?next: a[i-e=44-s.ord]=a[i-e].to_i+e;a[i]=p}*''}

849 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 03:00:29.48 ID:BybICDK4.net]
やっぱRubyって・・・いや、なんでもない

850 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 21:58:35.59 ID:2oHV2A6O.net]
>>823-826
・「右辺に1を引く」の右辺をマイナスのすぐ右側の数と解釈

def f8823(s)
# Sに数字が含まれていなかったり、
# cと+と-が先頭や最後に出てきたり2文字以上続いたらERRORと出力すること
return 'ERROR' if /\d+/ !~ s || /(^[c+-]|[c+-]$|[c+-]{2,})/ =~ s
# cは入力済みの数字をクリアする
# +は左辺に1を足し、-は右辺に1を引く
s.gsub(/.+c/, '').gsub(/(\d+)\+/) {$1.next}.gsub(/-(\d+)/) {($1.to_i - 1).to_s}
end
p %W(#{} c + - 1c 1+ 1- c1 c+ c- 1cc1 1++1 1--1 1c+-1 119+5 119-5 119c5 1+1-1 1+1+1 1-1-1).map {|s| [s, f8823(s)]}

$ ruby 8823.rb
[["", "ERROR"], ["c", "ERROR"], ["+", "ERROR"], ["-", "ERROR"], ["1c", "ERROR"],
["1+", "ERROR"], ["1-", "ERROR"], ["c1", "ERROR"], ["c+", "ERROR"], ["c-", "ERR
OR"], ["1cc1", "ERROR"], ["1++1", "ERROR"], ["1--1", "ERROR"], ["1c+-1", "ERROR"
], ["119+5", "1205"], ["119-5", "1194"], ["119c5", "5"], ["1+1-1", "210"], ["1+1
+1", "221"], ["1-1-1", "100"]]



851 名前:834 mailto:sage [2016/10/09(日) 22:19:57.08 ID:k3CHV3QP.net]
>>835は完全に間違っているので取り下げます
1-1+1 が 120 になっちゃうねこれじゃあ

852 名前:デフォルトの名無しさん [2016/10/09(日) 23:19:57.10 ID:0NJ6apgZ.net]
>>836
ideone.com/Qb37qE で実行してみたが、 
1-1+1 は、ERRORじゃね?

853 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:00:29.16 ID:HHuVI6c/.net]
お題:
A B C … Z
1 2 3 26
とするとき、

KNOWLEDGE -> 11 + 14 + 15 + 23 + 12 + 5 + 4 + 7 + 5 = 96
HARDWORK -> 8 + 1 + 18 + 4 + 23 + 15 + 18 + 11 = 98
ATTITUDE -> 1 + 20 + 20 + 9 + 20 + 21 + 4 + 5 = 100

となる。

総和が100となる他の単語を3つ見つけよ。

854 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:20:11.21 ID:jxPg9rAk.net]
辞書ファイルくださいw

855 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 08:52:21.18 ID:HHuVI6c/.net]
>>839
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1412673334

856 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 09:34:42.77 ID:jxPg9rAk.net]
>>838 Java
https://paiza.io/projects/vpDhY14oTq6f2YXv4a5wIA

857 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 11:41:38.97 ID:PJGQtdQ9.net]
>>838
ruby wordlist.txtは改行\n区切りとする
$><<open('wordlist.txt').readlines.select{|s|s=s.chomp.upcase.delete('^A-Z');s.codepoints.reduce(&:+)-s.size*64==100}[0,3]*''

858 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 15:20:38.52 ID:vALgwmuK.net]
>>838 Emacs Lisp

(require 'cl-lib)

(cl-mapcan (lambda (s) (and (not (string-match

859 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 15:47:08.07 ID:vALgwmuK.net]
>>838 Emacs Lisp

(require 'cl-lib)

(setq result
(cl-mapcan (lambda (s) (and (not (string-match "\x5b^A-Z]" s)) (= (apply #'+ (mapcar (lambda (x) (- x ?@)) (upcase s))) 100) (list s)))
(split-string (with-temp-buffer (insert-file-contents "/usr/dict/words") (buffer-string)))))

(cl-loop for i from 0 below 3 do (print (nth i result)))
"accumulate"
"acknowledge"
"adulthood"

(cl-loop for i from 0 below 3 do (print (nth i (reverse result))))
"yarrow"
"Yankton"
"wholesale"

860 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 17:24:16.08 ID:Tl2g/5GS.net]
左下から右上に登る階段を作りなさい

標準入力よりA Bが与えられる
Aは段数
Bは平らな部分の長さ
0 ≦ (A,B)
何も出力されるものがなければNONEと出力すること

[stdin]
3 2
[stdout]
******__
****__|
**__|
__|

[stdin]
0 1
[stdout]
_

[stdin]
0 0
[stdout]
NONE



861 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:14:49.37 ID:jxPg9rAk.net]
>>845
段数1以上で平らの部分の長さが0の場合はNONEと|が縦に並ぶのとどっち?

862 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:21:18.09 ID:PJGQtdQ9.net]
>>845
Ruby 1行で

eval"a,b=%s+1,%s;b<1?$><<:NONE:a.times{|i|puts ?**(a+~i)*b+?_*b+?|*i[0]}"%gets.split

863 名前:164 mailto:sage [2016/10/10(月) 18:30:33.51 ID:WihadwZK.net]
>>845 Perl
use f

864 名前:eature qw{:5.16};
$_ = <>;
($n, $l) = split;
$s = sub {
my $i = $_[0];
($n or $l) and $i <= $n ?
__SUB__->($i + 1)
.
'*' x $l x $i . '_' x $l . ($i < $n ? '|' : '') . "\n"
:
''
}->(0);
print $s ? $s : "NONE\n";

d:\Home>perl 8_844_step.pl
3 2
******__
****__|
**__|
__|
d:\Home>perl 8_844_step.pl
0 1
_
d:\Home>perl 8_844_step.pl
1 0

|
d:\Home>perl 8_844_step.pl
0 0
NONE
[]
[ここ壊れてます]

865 名前:164 mailto:sage [2016/10/10(月) 18:33:10.57 ID:WihadwZK.net]
>>848

d:\Home>perl 8_844_step.pl

から下の行はコマンドプロンプトから実行した結果の画面のコピペで、
プログラムソースは

use feature qw{:5.16};

print $s ? $s : "NONE\n";

の範囲です

866 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:40:27.87 ID:PJGQtdQ9.net]
Ruby
出力がNONE ⇔ a=0かつb=0 だとすれば
eval"a,b=%s+1,%s;a+b<2?$><<:NONE:a.times{|i|puts ?**(a+~i)*b+?_*b+?|*-2[i]}"%gets.split

867 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 18:41:34.94 ID:XcJmDjCA.net]
>>845
C#
なんか宿題っぽいし(悪いけど)いまいちなお題に思えたけど暇だからやってみた

https://ideone.com/sAWIyp
やっぱりかなり退屈だなw

868 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:10:20.45 ID:GJ6N0Utq.net]
>>838 rustc 1.8.0
use std::io;
use std::io::prelude::*;
fn main() {
let stdin = io::stdin();
for line in stdin.lock().lines().map(|x| x.unwrap()).filter(|s| s.chars().fold(0, |acc, c| acc + 1 + c as i32 - 'A' as i32) == 100).take(3) {
println!("{}", line);
}
}

>>845 ruby 2.0.0
a, b = $stdin.gets.scan(/\d+/).map {|s| s.to_i}
stairs = (0..a).inject([]) {|acc, i| acc << '*' * b * (a - i) + '_' * b + (0 < i ? '|' : '')}
puts b == 0 ? 'NONE' : stairs.join("\n")

869 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:29:46.85 ID:GJ6N0Utq.net]
>>845 ruby 2.0.0 ちょい整理
a, b = $stdin.gets.scan(/\d+/).map {|s| s.to_i}
stairs = (0..a).map {|i| '*' * b * (a - i) + '_' * b + (0 < i ? '|' : '')}
puts b == 0 ? 'NONE' : stairs.join("\n")

870 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:35:05.59 ID:XcJmDjCA.net]
ケチつけるつもりは全然なくて純粋な疑問なんだけど、
Rubyってとにかく短く書くのが命で可読性はどうでもいいっていう文化なの?



871 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:39:05.26 ID:QHxKPE5l.net]
>>854
せやで

872 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:40:37.95 ID:PJGQtdQ9.net]
>>854
>>847とか>>850は勝手にゴルフっぽいことしてるだけで
Rubyではコードが短いほど良いという共通の価値観はないよ

873 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:45:28.26 ID:GJ6N0Utq.net]
>>854
個人的にはそれはむしろPerlだと思うけどw
(過去の個人的な体験に基づく偏見です)

874 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 20:45:57.40 ID:XcJmDjCA.net]
>>856
やっぱりそうだよねw
ありがとう

875 名前:デフォルトの名無しさん [2016/10/10(月) 20:51:52.34 ID:xXMHDLa+.net]
rubyは作者がそもそもコードの表記法にこだわっているからruby文化全体に表記にこだわりを持つ部分があるのは事実

876 名前:164 mailto:sage [2016/10/10(月) 21:02:10.31 ID:WihadwZK.net]
>>857
Perlは短くするために難読性が高くなるような
書き方もできる自由度があるけど
>>848はなるべく難読にならないように俺としては配慮して書いたつもりだよ。
ただ、ここに貼るとインデントがなくなっちゃうので見やすさは損なわれているけれど…
>>848にポイントするとインデントが付くのでよかっらたポイントしてみてね。
>>848であえて意識したのは無名関数の自己再帰を使ったこと

877 名前:ュらいかな。 []
[ここ壊れてます]

878 名前:164 mailto:sage [2016/10/10(月) 21:56:18.64 ID:WihadwZK.net]
>>838 Perl
use feature say;
use List::Util 'sum';
for (1..3) {
local $_ = <>;
chomp;
redo if sum(map {ord($_) - ord('A') + 1} split '') != 100;
say;
}

879 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 22:06:38.74 ID:GJ6N0Utq.net]
>>860
実は俺はPerlの可読性なんかを1ミリも語れる状況に無くて
20年前に赤いラクダ本を先輩に貰ったまま本棚で腐らせてるような体たらく
読み書きままならないってだけなんで、どうかお気になさらないでください

880 名前:デフォルトの名無しさん mailto:sage [2016/10/11(火) 20:20:36.62 ID:4j+X4FeX.net]
そうね、誕生石なら



881 名前:デフォルトの名無しさん mailto:sage [2016/10/11(火) 20:49:10.20 ID:5wY1VI8m.net]
>>838
@Mathematica

ideone.com/kMqMeG

882 名前:164 mailto:sage [2016/10/12(水) 00:29:27.25 ID:RXlYYM2a.net]
>>823 >>824 Perl
use feature 'say';
while (<>) {
chomp;
print "$_ => ";
while (($a,$o,$b,$r) = /^(\d+)([c+-])(\d+)(.*)$/) {
$a++ if $o eq '+';
$b-- if $o eq '-';
$a = '' if $o eq 'c';
$_ = "$a$b$r";
}
say /^\d+$/ ? $_ : 'ERROR';
}

883 名前:164 mailto:sage [2016/10/12(水) 00:30:18.77 ID:RXlYYM2a.net]
>>865 の実行結果の例
5+1-32c8 => 8
32+8 => 338
+24c25 => ERROR
119+5 => 1205
1-1+1 => 111

884 名前:デフォルトの名無しさん mailto:sage [2016/10/13(木) 20:27:03.99 ID:PLGkmVG9.net]
>>823-826 rust 1.8.0
https://ideone.com/OGRf5X
・正規表現不使用
・最後のjoin処理はideoneのrust 1.0.0に合わせて修正

885 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 05:03:01.25 ID:ayBWV1jp.net]
>>824
ideone.com/wEetSD
C++。テストは>>835を一部拝借。失礼。
本分書き始める前に色々使いそうな関数書いたものの結局使わず。無駄だった。
あってるかなぁ。

886 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/24(月) 18:40:09.78 ID:Ea5AKtst.net]
お題:隣接行列で与えられたネットワークを可能ならば一筆書きする。
不可能なら「No solution.」と表示する。

887 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/10/24(月) 18:56:42.71 ID:Ea5AKtst.net]
お題:架空の4ビットCPUの機械語を設計し、その論理式と回路図を出力するプログラムを作れ。

888 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 23:05:36.84 ID:iFtzBvZM.net]
>回路図を出力

図の形式は出題者が指定しなくちゃ。

889 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 23:33:47.03 ID:Ea5AKtst.net]
>>871
.svgか.pdf

890 名前:デフォルトの名無しさん [2016/11/04(金) 18:56:54.02 ID:8tGR/IuU.net]
お題:1から9までの数字を1回づつ使って分数をつくる。
たとえば123/456789, 3962/17548など。
約分すると1/8になるものをすべてもとめる。



891 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 19:08:46.32 ID:XfxE6vHI.net]
4ケタの順列を総なめしながら8倍してチェックするのかな
3024個みたいだからたいしたことなさそう

892 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 22:07:13.71 ID:UQXTh2xL.net]
>>873
https://ideone.com/oxmJ61

893 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 22:20:51.84 ID:K4HA426Y.net]
>>873
ideone.com/kfs5ma

894 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 07:20:45.14 ID:JpuKs6gN.net]
>>873
ideone.com/iDj8rX
C++。総当たりのはずだけど、あってるかな?

895 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 07:36:20.45 ID:JpuKs6gN.net]
>>876
しゅごい。

896 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 08:01:48.28 ID:eq+4G+9Q.net]
>>873 Java
ideone.com/ACELnF

897 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 19:59:02.35 ID:giaAjwb2.net]
>>873 Squeak/Pharo Smalltalk

| ans |
ans := OrderedCollection new.
self assert: 987 * 8 < 123456.
'123456789' permutationsDo: [:perm |
 | numer denom |
 numer := perm first: 4.
 denom := perm allButFirst: 4.
 numer asInteger * 8 = denom asInteger ifTrue: [ans add: numer, '/', denom]
].
^ ans

898 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 20:10:30.03 ID:4QNuq7Ui.net]
>>879
なるほど、どうせ数が知れてるから真面目に順列でやる必要ないのかw

899 名前:164 mailto:sage [2016/11/05(土) 22:55:55.41 ID:9FbiGoMz.net]
>>873 Perl
use feature qw{:5.16};
$b = 8888;
do {
$b += 8;
$a = $b/8;
my %h;
$h{$_}++ for split '', $a . $b;
say "$a/$b" unless (exists $h{0} or 9 > keys %h)
} while ($a <= 9999);

next_permutation がライブラリに無いし
872の問題用に9文字から4桁の順列を生成する
再帰関数を作ろうとしたけど
めんどくさくなって、別解法にしました。

900 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 23:03:21.88 ID:Kvw69EBs.net]
>>873
@Mathematica

{"1","2","3","4","5","6","7","8","9","/"}//
Permutations//
Select[#,#[[1]]!="/"&]&//
Select[#,#[[-1]]!="/"&]&//
ParallelMap[StringJoin,#]&//
Select[#,ToExpression[#]==1/8&]&



901 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 10:45:05.08 ID:Ls7dpV42.net]
>>873 類題

お題:1から9までの数字を1回づつ使って引き算をつくる。
たとえば123-456789, 3962-17548など。
引き算すると44444になるものをすべてもとめる。

902 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 11:16:41.58 ID:BmMxYEOk.net]
>>884 C
ideone.com/H2wG0P

903 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 12:39:57.86 ID:1PuOCcw9.net]
>>884 Java
ideone.com/qRUcKG
書き換え2行

904 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 14:47:56.12 ID:UyE09MO8.net]
>>884 Squeak Smalltalk

| ans |
ans := OrderedCollection new.
self assert: 123456 - 987 > 44444.
'123456789' permutationsDo: [:perm |
 | x y |
 x := perm first: 5.
 y := perm allButFirst: 5.
 x - y = '44444' ifTrue: [ans add: x, '-', y]
].
^ ans

905 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 15:31:09.29 ID:+kwTAqkL.net]
>>873 >>884 c
https://ideone.com/OVUNzF
・全パターンをチェック
・肝心な部分(comb, permute)はぐぐったサイトから無断で拝借しました
・セパレータ要素も一緒に混ぜとく案は>>883さんを参考にしました
・一部の関数名(permutations_do)について>>887さんを参考にしました

906 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 16:07:27.17 ID:1MCBSGi9.net]
>>884 Io
Range
1234 to(9876)select(i,
(i ..(i+44444))asMutable sort =="123456789
)map(j,(44444+j).."-".. j)

907 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 19:36:04.77 ID:jK1sWMF7.net]
https://twitter.com/codera_iroha/status/795116603557879808
> せんぱいは、10億以下の整数の中で、最も約数の多い整数を求めるプログラムを書けますか?

908 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 20:36:12.30 ID:9KctHGA8.net]
直感的には重複しない素数の積だと思うけど証明はできんなw

909 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:07:17.87 ID:1PuOCcw9.net]
>>890 Java
https://ideone.com/lJ037U
あまり考えずに

910 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:39:17.02 ID:jK1sWMF7.net]
>>892
Good Job



911 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:40:47.89 ID:jK1sWMF7.net]
>>892
Good Jobじゃなく正解というべきだったな

912 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 00:17:44.47 ID:+ilf/hxD.net]
>>892
どういうロジックかさっぱりわかんないやw
でも、

newYakusu += yakusu;

これはちょっとおかしい気がするw

913 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 00:55:26.00 ID:MDpsc3Qw.net]
newYakusu *= 2;
が正解だろうな、たぶん

914 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 01:14:46.43 ID:t5QB3k9f.net]
っていうか、2*3*5は2*3の2倍の約数があるのはわかるけど、
2*2*2は2*2より1つ多いだけだと思うんだけど...

まあたぶん俺が何か勘違いしてるんだろうなw

915 名前:デフォルトの名無しさん [2016/11/07(月) 01:18:30.50 ID:N5kIq+jA.net]
重複ははずしてだろ。ふつうに。どうみても2べきが小さいから。

916 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 09:25:12.04 ID:VzgYAniQ.net]
素因数の指数+1をすべて掛け合わせれば約数の数になる

917 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 19:37:58.99 ID:ZbCfelvl.net]
>>899
素因数分解がむずかしいね,テーブルで持っておくしかないか

918 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 21:09:59.66 ID:hgWS81A3.net]
>>892 が計算量を減らすためにバッサリ切り捨ててるとこが良く分からないけど
出てる答え 735134400 = 2^6*3^3*5^2*7*11*13*17 の他にもう一つ約数の数 1344 があった
931170240 = 2^6*3^2*5*7*11*13*17*19
もっとあるかも、というか正解は別にあるかもという気がしなくもない

919 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 21:37:10.62 ID:VzgYAniQ.net]
>>901
https://ideone.com/UJF04i

>>892の素数リスト、19が抜けてるやw
リスト表示するようにしても931170240が出てこないからおかしいなと確認したら初歩的なミスw

920 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 02:53:20.88 ID:E77IrmWO.net]
10億以下で約数の数が1344の整数はたぶん4つ
735134400 = 2^6*3^3*5^2*7*11*13*17
821620800 = 2^6*3^3*5^2*7*11*13*19
931170240 = 2^6*3^2*5*7*11*13*17*19
994593600 = 2^6*3^3*5^2*7*11*13*23



921 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 05:42:59.95 ID:rWt9CCW+.net]
>>890
@Mathematica

ideone.com/3wqeR5

922 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 09:54:20.69 ID:bJUc+90s.net]
>>890
>>902 を参考に C++

ideone.com/OeTnpx

923 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 12:57:49.64 ID:n6HvGTQo.net]
hello worldを出力しなさい
但し文字リテラルと数字をコード中に書いてはいけません

924 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:07:00.37 ID:DsWyA9Yw.net]
>>906
誰得。

925 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:39:36.94 ID:RQn7BeEP.net]
>>906
https://ideone.com/StMgsy
https://ideone.com/whA3mU

926 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 14:40:02.73 ID:yNpdMLCi.net]
>>906
ruby -e 'class HelloWorld ;end; p HelloWorld'

927 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:20:35.35 ID:7Gidw00Y.net]
>>906
https://ideone.com/xwzB8Z

928 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:22:04.34 ID:7Gidw00Y.net]
可読性の高いコードができたぜ

929 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 15:57:41.78 ID:R5k7JcnE.net]
>>906
ideone.com/xt4UEz

930 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 16:09:57.80 ID:RQn7BeEP.net]
>>906
https://ideone.com/4Z2U4N
標準入力はコードのうちに入りますか?



931 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 18:09:11.97 ID:w47niDgV.net]
>>906
文字リテラルは禁止だけど文字列はOK?

932 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 18:11:01.84 ID:w47niDgV.net]
>>906
これに似てるね

普通じゃないHello World問題「Restricted Words」の解説記事 #伝説 #しえる|CodeIQ MAGAZINE
https://codeiq.jp/magazine/2013/09/120/

933 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 19:45:29.90 ID:B1AmaaJH.net]
>>906 Squeak Smalltalk

| hello world | thisContext method tempNamesString "=> 'hello world' "

934 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 21:56:55.91 ID:3MgWSwni.net]
>>906
https://ideone.com/o8SEV1
https://ideone.com/0PwVHQ

935 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/11/09(水) 22:31:53.26 ID:A1mSNctr.net]
お題:テーブルの上にきれいにきちんと重なったトランプ1セットが置いてあり、全てのカードの表が上向きになっている。
プログラムはカードの並びを入れ換えたり、上からn番目のカードを読み込むことができる。
この仮想的なトランプを操作することによって円周率を求めるプログラムを書け。

936 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 22:43:42.78 ID:RQn7BeEP.net]
まず>>918のコードが見たいなー}

937 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 00:53:34.51 ID:7cWLs5su.net]
>>906
https://ideone.com/i6ZnJc

938 名前:164 mailto:sage [2016/11/10(木) 01:07:34.71 ID:UjUlxJgT.net]
>>908
あんさんは、
Programmingを
楽しんでますなー。
気に入ったぜ。

939 名前:164 mailto:sage [2016/11/10(木) 01:11:20.89 ID:UjUlxJgT.net]
以下、enterprise fizzbuzzみたいな
hellow worldを書く椰子


940 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 01:21:32.89 ID:rkwF1pIg.net]
brainfuckやwhitespeceで文字出力するだけってジェネレータで出来るじゃん



941 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 21:28:06.13 ID:drAYGWtl.net]
>>906
@Mathematica

ideone.com/1PtMdm

942 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 12:36:20.63 ID:OOJ7Wqnx.net]
大文字を出力してるので減点

943 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 14:05:38.79 ID:FKtxBunI.net]
真面目か

944 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 14:44:10.92 ID:5nMDDcWB.net]
>>906 C
ideone.com/Be4XYH

945 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:06:10.50 ID:pVnBGILb.net]
お題
整数Aに整数Bを加算しなさい
但し3桁に区切って計算すること
AとBは文字列で標準入力から2行に分けて与えられる
0≦A≦999999999999999999999999999999999
0≦B≦999999999999999999999999999999999

標準入力
1234
15

標準出力
1249

解説
A=1234
B=15
Aは3桁を超えてるので123と4に分割される
123*10+B+4=1249
もしくは
1*1000+234+B=1249

946 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:31:12.94 ID:kNoTIrA7.net]
>>928
>3桁に区切って
の意図がわからない

普通に多桁長加算の実装じゃないのか?

947 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:50:09.31 ID:8285RMD/.net]
多桁長の演算を実装するだけのようだし
3桁に区切るって限定しなくてもいいよな。

948 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 19:55:55.39 ID:Q4JxAaLZ.net]
>>906 c
・数年前に同じお題をここか別のスレでやったような気が…

#include <stdio.h>
int main() {
struct {
struct {long _a, _b;} _a, _b, space, _d, _e, _f;
char _,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;
} __;
#define _(v) putchar((void *)&__.v - (void *)&__)
_(h),_(e),_(l),_(l),_(o),_(space),_(w),_(o),_(r),_(l),_(d);
return &__ - &__;
}

949 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 20:04:46.68 ID:8285RMD/.net]
>>931
こりゃすごい!

今まで最短の上に可読性が高い!

950 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 20:22:45.93 ID:X4UPo+EY.net]
>>931
ideoneでもローカルでもダメだったゾ
https://ideone.com/hhNgqg



951 名前:930 mailto:sage [2016/11/12(土) 21:03:19.70 ID:Li4gnKYC.net]
>>932
ども!
でも最短じゃあないよねw

>>933
ごめん
sizeof(long)が8の環境で確認してた
struct {struct {char a,b,c,d;} a,b,c,d;} _a, _b, space, _d, _e, _f;
これでどこでも動くはず

952 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 22:58:47.72 ID:VjO69xXO.net]
>sizeof(long)が8の環境で確認してた

あれま?
paiza.IOではちゃんと動いたけど
ideoneやCodeIQではダメだったか

953 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 00:35:59.69 ID:GDVX8Ikh.net]
>>931
>数年前に同じお題を

>>915のCodeIQの問題とかじゃね?

954 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 08:49:46.08 ID:y8U2/o7H.net]
>>906
https://ideone.com/ST1qS2

955 名前:デフォルトの名無しさん [2016/11/13(日) 09:05:29.71 ID:FuKHFetX.net]
お題:nビットのグレイコ^ドを生成する。

n 3
000
001
011
010
110
111
101
100
S

956 名前:デフォルトの名無しさん [2016/11/13(日) 09:14:09.45 ID:FuKHFetX.net]
お題:nビットのグレイコードを生成する。

n=3
000
001
011
010
110
111
101
100

957 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 11:09:32.80 ID:w9Y83CjX.net]
>>939
@Mathematica

ideone.com/WXOxKH

958 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 12:26:26.96 ID:ArrhAnA/.net]
>>939 Java
ideone.com/SOEHsd

brainfuckでやろうかなと思ったが、少し考えてめんどくさくなってやめた

959 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 19:09:07.56 ID:EpE2S11k.net]
>>939
C#
ideone.com/Gbq0NT

>>941
こんな短く書けるのかw
ガックリ来たわ
どういうロジックかさっぱり分からんw

960 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 20:45:37.87 ID:qMZbrJPH.net]
>>942
ニコニコ百科からの転載でアレだけどこれ抑えてれば理解できるんじゃね
>二進数を1ビット右にシフトし(先頭は0)、元の二進数と各桁で排他的論理和をとると得られる。また、1ずつ増やした場合、グレイコードで変化する桁は、二進数で0が1に変化する桁(繰り上がる先の桁)に等しい。

入力数値の分だけ1をシフトさせてやりゃ入力数値が桁数に変換できるから
あとはその桁数に達するまでforループ回して元数値と右シフト数値の排他的論理和とって2進表示し続けてる感じだと思う
無駄がなくてスマートなプログラムな感じがするけどsubstring(1)だけよく分からない



961 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 20:53:45.16 ID:ArrhAnA/.net]
>>943
指定桁数の2進数を作るのに最上位ビット捨ててる
n=3だと1xxxの文字列作って一番左削ってる感じ

printf等で指定桁数の2進数作れりゃそっち使うんだけどw

962 名前:デフォルトの名無しさん [2016/11/13(日) 21:00:49.81 ID:qMZbrJPH.net]
>>244
桁数調整の為に一旦論理和とってから最初の1だけ捨ててるのか
勉強になりました

963 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 21:09:45.44 ID:EpE2S11k.net]
>>943
なるほどそういう定式化された求め方があるのか
グレイコードなんて大昔学校で習って以来まったく使ったことがないから知らなかったよ。
ありがとう

964 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 04:33:29.92 ID:/TJLzgQW.net]
>>939
Nim
https://ideone.com/JsyrW3

965 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:10:12.87 ID:H9REv+Ri.net]
>>906 J
hello =: noun
world =: noun
;:inv nl $~ noun

966 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:34:43.51 ID:HcDSv4MP.net]
>>906

ここをクリック >>906

967 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 07:52:00.92 ID:k57TIQI7.net]
次スレあるの?

968 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 15:27:30.98 ID:Veyi95OJ.net]
>>932
何が凄いのか分からん
hello worldがコード中に埋め込まれて
いるのが見えるんだが、だったら
printfでhello world書いているのと同じじゃあないの?

969 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 16:32:08.46 ID:evn38iuN.net]
>>951
printf("hello world");←これの""で囲まれてる部分が文字列リテラル
今回は文字列リテラルと数字を使わずにハロワを出力してみろってお題だからprintfでそのまま書いてたらアウト

970 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:08:30.22 ID:DO3IaX9S.net]
>>906のお題は文字列リテラル禁止じゃなく文字リテラル禁止だよ



971 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:30:01.74 ID:evn38iuN.net]
そうかそいつはすまなかった読み違えたよ
>>952の2行目の「文字列リテラル」は「文字リテラル」に置き換えて読んでくれ

972 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 18:59:50.88 ID:DO3IaX9S.net]
C言語なら
"hello world"のダブルクオートで括るのは文字列リテラルだけど
文字リテラルはシングルクオートで括るから 文字列リテラル使うprintf("hello world")は合法だよ

973 名前:デフォルトの名無しさん mailto:sage [2016/11/15(火) 19:02:18.94 ID:DO3IaX9S.net]
brainfuckやwhitespaceは処理系によってはもしかすると文字リテラルや文字列リテラルあるのかもしれないけど
C言語で>>906の問題を解くなら>>931と基本同じように文字コード計算して出力するだけだから大差ないよね

974 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 06:37:25.19 ID:NqgYpFgU.net]


975 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 20:12:56.69 ID:5Ihw572q.net]
>>906
C#
ideone.com/FHDr9j
やっぱり面白くないな

976 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 21:43:19.98 ID:h+UNZgYe.net]
" "や'_'を使ってるところがウケ狙いなのかもしれないけど
確かにそんなに面白くない

977 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 22:49:50.11 ID:opmi2l/i.net]
文字コードが絡む問題は悪名高いEBCDICを真っ先に思い浮かべてしまって
その考慮がされてないとちょっと白ける部分がある

978 名前:デフォルトの名無しさん [2016/11/20(日) 01:25:08.34 ID:60DKtBPZ.net]
>>906
ruby2

print :hello, [:s, :S].map(&:to_s).map(&:ord).inject(:-).chr, :world

melpon.org/wandbox/permlink/i4MWT1u23HHuoe7P

979 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 13:28:08.49 ID:mWWihz9s.net]
>>906 Haskell
ideone.com/QN4BaU

980 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 08:38:02.28 ID:4Ckt/1Kw.net]
>>906 F#

type ``hello world`` = W
printfn "%s" typeof<``hello world``>.Name



981 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 08:39:37.06 ID:4Ckt/1Kw.net]
訂正
>>906 F#

type ``hello world`` = W
stdout.WriteLine typeof<``hello world``>.Name

982 名前:デフォルトの名無しさん [2016/11/21(月) 18:47:44.72 ID:3NXFWxK7.net]
>>939 ruby
n = 3
(1 << n).times do |v|
puts "%0#{n}b" % (v ^ (v >> 1))
end

melpon.org/wandbox/permlink/BnpyEB9rsl73vBDI

983 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 19:50:16.01 ID:nCxXmPKB.net]
>>935
(´・∀・`)ヘー 動く環境もあったのね

>>936
CodeIQ見たことも聞いたこともない

>>906 c
・数字つこうた
・四則演算ビット演算無し
・文字リテラル文字列リテラル無し
・移植性と他の環境で動く保障無し
#include <stdio.h>
int main() {
int is[] = {1819043176, 1870078063, 6581362};
long long lls[] = {8031924123371070824, 6581362};
puts((char *)is);
puts((char *)lls);
return 0;
}

hello world
hello world

984 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 20:56:30.60 ID:/F1fcl9l.net]
文字コードに依存するわエンディアンに依存するわ、後出しでどんだけ劣化するんだ

985 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 23:37:55.18 ID:7dMNwwBf.net]
数字もダメ
というのがルール

986 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 02:14:49.59 ID:bN+iUVDf.net]
勝手に問題作り変えちゃダメだよね
国語できなさそう

987 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 04:14:16.14 ID:hJpZQ6a9.net]
>>906
ideone.com/X7Wrl9
C++?? 既出の回答に感動してパクってみた。
数字自作してる時点であんまり問題の意味ないよね。
体をなしてないというか。

988 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 05:24:33.85 ID:7Ti0FWyJ.net]
>>906
ideone.com/XH28rr
Python3 HQ9+的アプローチで数値計算してない

989 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 08:07:22.61 ID:ofQaf/jO.net]
リバースエンジニアリングしてもコード中にリテラルが無いので解読されにくいという事だよね

990 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 08:58:18.46 ID:hJpZQ6a9.net]
秘密主義は技術の向上を阻害するのであんまり興味ないな。



991 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 11:24:14.19 ID:O62ysXRT.net]
でも「神秘的!ステキ!」とか言われてクラッカーやハッカーにモテるかもよ

992 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 20:14:09.73 ID:svcAyLEK.net]
>>906 Common Lisp
https://ideone.com/jcgKGl

993 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 21:11:42.55 ID:0aK0hXHG.net]
>>906 c
https://ideone.com/5oPjJu
・数字無し
・四則演算ビット演算無し
・文字リテラル文字列リテラル無し
・移植性と他の環境で動く保障無し

>>906 ruby
・バッククォートつこうた
puts `echo hello world`

994 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:00:15.16 ID:GG9ZZPlA.net]
>>976
cの方面白い
細かいけどreturn 0;に数字使われて

995 名前:るのに笑ってしまった []
[ここ壊れてます]

996 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:12:48.53 ID:bzMDKvPC.net]
bash
$echo hello world

997 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:32:08.95 ID:GG9ZZPlA.net]
それがありなら
c++
https://ideone.com/5fVbir

998 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 22:33:06.33 ID:GG9ZZPlA.net]
もう出てたか

999 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 03:02:34.05 ID:1DVlaY/L.net]
>>976
その手があったか。思いつかなかった

1000 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 16:23:56.87 ID:zVQCWlzE.net]
>>977
> return 0;に数字使われてる

どわーっ!!

>>906 c
codepad.org/4F3U6t52
・移植性と他の環境で動く保障無し
(少なくともideoneじゃコンパイルエラー
変形して通しても次の問題が出てきて駄目)



1001 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 17:00:53.66 ID:v3lmFY9L.net]
bash
$cat message.txt

1002 名前:164 mailto:sage [2016/11/28(月) 21:11:05.16 ID:rbBqsttl.net]
>>906 Perl
sub AUTOLOAD {($AUTOLOAD =~ /::(.+)$/)[0]}
print Hello()." ".World()."\n";

1003 名前:164 mailto:sage [2016/11/28(月) 21:24:43.26 ID:rbBqsttl.net]
>>984
しまった、listのindexに0を使っちゃってる。
return 0;がダメ?かもしれないならば数字使っちゃダメ??

ならばこうか…

>>906 Perl
sub AUTOLOAD { $AUTOLOAD =~ s/^.*:://; $AUTOLOAD }
print hello()." ".world()."\n";

1004 名前:164 mailto:sage [2016/11/28(月) 21:42:11.18 ID:rbBqsttl.net]
>>906 Perl つか、これでイイジャン。
package hello_world;
print join ' ', split '_', __PACKAGE__;

連投スマソ

1005 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 21:56:43.31 ID:dQXmDcQq.net]
文字リテラル知らんのか?

1006 名前:164 mailto:sage [2016/11/28(月) 22:24:35.04 ID:rbBqsttl.net]
"hello world"の文字列リテラルだけじゃなく
" "もダメてことか…orz
' 'は一応「文字」だけどまぁ歓迎されない感じだな
もうひと工夫いるけどマンドくさくなってきた

1007 名前:デフォルトの名無しさん [2016/11/29(火) 19:26:40.96 ID:LsagP9/y.net]
コードとコンパイラによっては最適化で文字が埋め込まれることに

1008 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:35:16.55 ID:1MA0K2jV.net]
先入れ中出しのアルゴリズムを実装せよ

1009 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:39:13.43 ID:+UdcctZr.net]
やだ、できちゃう

1010 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:49:39.94 ID:PX7t+lnB.net]
先っちょだけだから



1011 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 01:45:20.18 ID:b7dyxQXg.net]
>>990
C++にはSTLにQueueあるからねぇ。
今更、作る意義がわからない。

1012 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 04:13:31.77 ID:b7dyxQXg.net]
って、ネタかよ。真面目に答えるんじゃなかった。

1013 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 12:22:48.19 ID:y2jQ/DIV.net]
STLは知らないけど.NETのキューって要素1つずつしか出し入れできないんだよね
これだとバッファーとしては使いづらいから自作したわ

1014 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 12:44:08.74 ID:UIwN06Hs.net]
LINQ使えばいいんじゃね

1015 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 23:47:33.27 ID:8E5tVjA8.net]
Queueって先入れ中出しなん?

1016 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 00:54:11.48 ID:NHXaAvDm.net]
それもネタなんだろ

1017 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 06:10:42.69 ID:I/74Zq7s.net]
次スレありますでしょうか。

1018 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 15:05:04.44 ID:HhJrKDKy.net]


1019 名前:小倉優子 ◆YUKOH0W58Q mailto:sage [2016/12/01(木) 15:05:24.69 ID:HhJrKDKy.net]
  ∧,,,∧ 
 (  ・∀・) 1000ならジュースでも飲むか
  (    ) 
  し─J 

1020 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








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

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

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