プログラミングのお題スレ Part8at TECH
プログラミングのお題スレ Part8 - 暇つぶし2ch1:デフォルトの名無しさん
15/10/07 20:19:06.64 c4LYwtKo.net
プログラミングのお題スレです。
前スレ
プログラミングのお題スレ Part7
スレリンク(tech板)
【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文
2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
URLリンク(ideone.com)
URLリンク(codepad.org)
URLリンク(compileonline.com)
URLリンク(rextester.com)
URLリンク(runnable.com)
URLリンク(code.hackerearth.com)
URLリンク(melpon.org)
URLリンク(paiza.io)
宿題は宿題スレがあるのでそちらへ。

2:デフォルトの名無しさん
15/10/07 20:19:59.95 c4LYwtKo.net
過去スレ
6 スレリンク(tech板)
5 スレリンク(tech板)
4 スレリンク(tech板)
3 スレリンク(tech板)
2 スレリンク(tech板)
出されたお題をコーディングして罵られるスレ
スレリンク(tech板)

3:デフォルトの名無しさん
15/10/07 20:27:26.50 qc2rPE1F.net
俺のチンコォ崇めてプログラミングスキルを磨け
チンコォグイーン!
URLリンク(imgur.com)

4:デフォルトの名無しさん
15/10/07 20:53:39.49 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:デフォルトの名無しさん
15/10/08 03:32:30.80 OORjem1H.net
>>4 Ja


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



7:デフォルトの名無しさん
15/10/08 19:59:21.41 6/TT9nGb.net
>>4 C++
URLリンク(ideone.com)
テストデータは>>5さんのを頂きました。

8:デフォルトの名無しさん
15/10/08 22:37:13.10 6YOPIK9g.net
深谷優先探索の練習したいからだれか問題頂戴

9:デフォルトの名無しさん
15/10/08 22:44:17.56 7fMgdVUK.net
深谷優先探索

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

11:デフォルトの名無しさん
15/10/09 00:38:09.02 /28lT51i.net
>>7
Prolog処理系の実装

12:デフォルトの名無しさん
15/10/09 16:58:59.65 Ei93KrvX.net
これの思考ルーチン

マンカラ ( ボードゲーム ):無料Flashゲーム
URLリンク(www.sousakuba.com)

13:デフォルトの名無しさん
15/10/09 22:10:18.75 cypHo82J.net
>>4
Ruby
1000桁で10秒くらいかかるので5万桁は無理
URLリンク(ideone.com)

14:デフォルトの名無しさん
15/10/10 23:20:18.23 cCGMMWjY.net
前スレ >>971 Java
URLリンク(codepad.org)
結果
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:デフォルトの名無しさん
15/10/11 12:15:41.56 2ua4rw45.net
>>4
Java
URLリンク(codepad.org)

16:デフォルトの名無しさん
15/10/12 18:26:36.88 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:デフォルトの名無しさん
15/10/13 14:13:50.33 mv2XvxUt.net
Jewels
8*8の盤面のすべてのマスに、
7種類の内のいずれかの宝石を、ランダムに置く
縦・横・斜めに3つ以上、同じ種類の宝石が並ぶと、
並んだ宝石は、すべて同時に消えるとき、
何個の宝石が消えたか?
上級編
上の条件で、宝石が消えたら、上にある宝石が下に落ちてきて、
また消える条件を満たせば、宝石は同時に消えるのを、
再帰的に繰り返すとき、(消える宝石が無くなるまで、)
何個の宝石が消えたか?
参考までに、マス目のタイプ。
番兵:-1、宝石なし:0、宝石1~7
番兵を使うのなら、盤面10*10で考えて

18:片山博文MZ ◆T6xkBnTXz7B0
15/10/13 20:35:49.75 DtroG4QR.net
お題:与えられた未知の英単語から発音を推定して、発音記号を出力する。

19:デフォルトの名無しさん
15/10/13 20:41:13.94 4/4DmQRL.net
>>17
URLリンク(www.babelbible.net)
ヒントあげるので自作してください。

20:デフォルトの名無しさん
15/10/13 22:20:15.16 9bQvUcqb.net
冗長性の過分応分加減は絶妙

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

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

23:片山博文MZ ◆T6xkBnTXz7B0
15/10/14 18:59:41.69 O5xSO2EX.net
>>20
>1から10を使った場合は、10123456789が最小となる。
10はどこ?

24:デフォルトの名無しさん
15/10/14 19:22:57.89 tW8nHrv+.net
先頭だろ

25:デフォルトの名無しさん
15/10/14 20:14:40.28 ExdaGJT8.net
最小:10010111213141516171819202122232425262728293031....99123456789
最大:99998979695949392919089888786...111087654321
????

26:デフォルトの名無しさん
15/10/14 20:16:42.00 ExdaGJT8.net
最大は明らかに間違いだた
99999897969594939291908988878685....111087654321100
ぢゃないかと...

27:デフォルトの名無しさん
15/10/14 20:49:13.09 c4eYG1dl.net
87の前に8を持ってきたほうがいい
76の前に7を持ってきたほうがいい
逆に末尾は10100のほうがいい
最小も先頭は1001011112となる

28:デフォルトの名無しさん
15/10/14 21:15:32.59 guvBL9Z6.net
下がっててみにくい

29:デフォルトの名無しさん
15/10/14 21:51:06.92 dkvYFzw9.net
>>20
C++
URLリンク(ideone.com)

30:デフォルトの名無しさん
15/10/15 02:19:43.47 MsEvcwqa.net
最大
99998979695949392919089888878685848382818079787777675747372717069\
68676665564636261605958575655554535251504948474645444434241403938\
37363534333323130292827262524232222120191817161514131211110100
???

31:デフォルトの名無しさん
15/10/15 03:16:29.70 Tp1SkuaU.net
>>20
Ruby2.0
>>28と同じロジック
URLリンク(ideone.com)

32:デフォルトの名無しさん
15/10/15 10:10:32.84 /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:デフォルトの名無しさん
15/10/15 16:17:59.88 IAn5ASk+.net
>>28
アルゴリズムにちょっと感心した

34:デフォルトの名無しさん
15/10/16 22:50:50.56 vLvoWUco.net
>>16
Java
URLリンク(codepad.org)
ちょっとアレンジw

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

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

37:デフォルトの名無しさん
15/10/18 13:35:05.15 VWt3JxRU.net
C#で書くとこうなるかな>>20
無理矢理LINQを使った
URLリンク(ideone.com)
ここまでやるとアホみたいww

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

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

40:デフォルトの名無しさん
15/10/19 15:30:38.50 3YrRpfpr.net
>>37
URLリンク(ideone.com)
C++。適当に実験してたらそれっぽくなった。
あってるかは保証しない。

41:デフォルトの名無しさん
15/10/20 16:11:00.46 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" // * よりも = が優先される
// 実装例: URLリンク(ideone.com)

42:デフォルトの名無しさん
15/10/20 16:21:09.13 AVx5NpJt.net
お題
HelloWorldの10文字の組み合わせで生成できる文字列はいくつあるか求めよ
HlleooWrld
HerllodWol
WelloorHd
....
条件
・先頭は大文字のHかWではじめなければならない
・文字列の最後は小文字で終わらなければならない

43:デフォルトの名無しさん
15/10/20 17:05:47.08 uI3C5IMU.net
>>41
URLリンク(ideone.com)
C++。こんな感じかな。

44:デフォルトの名無しさん
15/10/20 17:53:28.85 A1vNd6F7.net
>>40 Python3
URLリンク(ideone.com)
正規表現とeval()の力

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

46:デフォルトの名無しさん
15/10/20 19:26:01.78 9ZHSOSPI.net
>>42
アウトHdrWl

47:デフォルトの名無しさん
15/10/20 19:27:34.86 uI3C5IMU.net
>>45
それはイデオンがタイムアウトしたので切れました。

48:デフォルトの名無しさん
15/10/20 19:56:10.00 8Z4zyZfA.net
>>41
Excel
=(2*FACT(9))/(FACT(3)*FACT(2))-(2*FACT(8))/(FACT(3)*FACT(2))

49:デフォルトの名無しさん
15/10/23 00:43:46.13 kMcaPJUG.net
>>40
haskell
URLリンク(ideone.com)

50:デフォルトの名無しさん
15/10/25 15:42:30.99 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:デフォルトの名無しさん
15/10/25 21:26:04.46 q9jqp7eP.net
1/pow(n,floor(n/2))

52:デフォルトの名無しさん
15/10/26 02:51:13.95 X1tUuUC+.net
>>49
URLリンク(ideone.com)
C++。モンテカルロ~~~。なのか?
あってるかは知りません。

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

54:デフォルトの名無しさん
15/10/26 13:07:28.84 C/77uVUj.net
>>51
n = 10 の場合は正しいようですがn = 11の場合が違うようです。
確率分布は良く知りませんが、単純な確率の問題ですよ。
ヒント: 約分できるので分子は必ず1になります

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

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

57:デフォルトの名無しさん
15/10/26 22:14:13.46 fLaXb4KYb
なんで>>50がスルーされているんだ…と.scの方に書いてみる

58:デフォルトの名無しさん
15/10/26 22:16:43.98 DXNKihF1.net
>>55
つまり>>50

59:デフォルトの名無しさん
15/10/27 02:10:42.88 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:デフォルトの名無しさん
15/10/27 08:30:08.61 4Bw9gOvg.net
>>58
2点を選んで(2,0)(2,0)を引いた場合、これを線分と認めるか無視するのか。
既に線分(0,0)(4,0)がある状態で(0,0)(4,0)を引いた場合、線分の重複を認めるのか無視するのか。

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

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

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

64:デフォルトの名無しさん
15/10/27 19:12:54.11 4Bw9gOvg.net
>>58
適当に回したらこれくらいになった
線分の重複を無視する場合
5x5 38.748293
10x10 315.085106
線分の重複を認める場合
5x5 54.334077
10x10 365.470484

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

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

67:デフォルトの名無しさん
15/10/28 14:34:56.09 GTtq7s5w.net
メルセンヌ・ツイスタ使ったらどうよ

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

69:デフォルトの名無しさん
15/10/31 02:29:03.10 izatGTy3.net
>>58
URLリンク(ideone.com)
C++。作っては見たものの、品質は低い。ちょい自信ないな~。
抜けがあったらごめん。

70:デフォルトの名無しさん
15/10/31 07:00:44.92 VBv6nvKP.net
5x5
URLリンク(paiza.io)
52.87
10x10
URLリンク(paiza.io)
362.59

71:デフォルトの名無しさん
15/10/31 15:28:30.15 79rh8PzW.net
お題: お題aの仕様は3日後に変更されます。仕様変更時、最小限の変更で対応できるようにお題aを実装してください。
お題a:入力される「Hello, World!」を逆順にして出力する。
例:
in < Hello, World!
out > !dlroW ,olleH

72:デフォルトの名無しさん
15/10/31 15:43:46.90 T2ZXoWbN.net
>>58
5x5 100000回 10x10 10000回
C
URLリンク(ideone.com) C 44.3 229.7ms 5x5
URLリンク(ideone.com) C 381.3 441.5ms 10x10
C++移殖(tuple+vector)
URLリンク(ideone.com) C++ 41.5 426.3ms 5x5
URLリンク(ideone.com) C++ 351.2 972.4ms 10x10
結構変わるもんですね。

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

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

75:デフォルトの名無しさん
15/11/01 00:24:00.79 KHL3HLvQ.net
>>70
C
URLリンク(ideone.com)

76:デフォルトの名無しさん
15/11/01 01:26:03.69 cJLCmHdm.net
>>70
どう仕様変更されるのか分からないとどうしようもない
入力文字列はもちろん、逆順という仕様も変更されるだろうし
となると出来るだけ短く作るぐらいしかない。
#!/bin/sh
read a
echo "!dlroW ,olleH"

77:デフォルトの名無しさん
15/11/01 13:15:09.33 rNKSig65.net
>>70
Haskell
main = interact reverse

78:デフォルトの名無しさん
15/11/01 15:34:04.71 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:デフォルトの名無しさん
15/11/01 17:54:16.22 tjf5Il2M.net
>>77
fもつくる必要がありますか?

80:デフォルトの名無しさん
15/11/01 18:18:40.16 V0olVSh1.net
gの要件曖昧過ぎw

81:デフォルトの名無しさん
15/11/01 19:57:17.19 KHL3HLvQ.net
>>77
Ruby
fは適当。
URLリンク(ideone.com)

82:デフォルトの名無しさん
15/11/01 21:25:08.29 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:デフォルトの名無しさん
15/11/02 02:30:55.48 LjXD9Pi/.net
>>77
URLリンク(ideone.com)
ギブアップ。Trigramはうまく移植できたと思うけど、うーむ。
うまいリレーの作り方が思い浮かばなかった。
意外と難しいなぁ。

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

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

86:デフォルトの名無しさん
15/11/02 21:14:51.67 LjXD9Pi/.net
>>84
URLリンク(ideone.com)
C++。半分くらい書き換えた。C++はマルチバイトキツイ。

87:デフォルトの名無しさん
15/11/02 22:32:43.41 fHTNy1N3.net
>>84
#! ruby -Ku
a='Hello, わーるど!'
p a.reverse

88:デフォルトの名無しさん
15/11/03 11:13:37.98 EjzY5wqb.net
>>85
例外飛んどるよ

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

90:デフォルトの名無しさん
15/11/05 16:28:22.05 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:デフォルトの名無しさん
15/11/05 16:32:51.81 IhTKFi3p.net
ターミナルをUTF-8にしてUTF-8のソースをコンパイル。
ターミナルをSJISにして実行。
結果:
!どるーわ wolleH

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

93:片山博文MZ ◆T6xkBnTXz7B0
15/11/10 17:59:02.39 IWmBcu9t.net
お題:粘菌のシミュレーション

94:デフォルトの名無しさん
15/11/10 21:43:34.22 0SseENg0.net
頑張ってください!

95:デフォルトの名無しさん
15/11/11 01:05:44.32 SL51g2Xb.net
>>92 C++
こんな感じ?よくわからんけど
URLリンク(paiza.io)

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

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

25^3 = 15626
25^5 = 9765625

98:デフォルトの名無しさん
15/11/11 21:11:00.20 YwXMSyH6.net
>>96
すみません
25^3 = 15625
でした

99:デフォルトの名無しさん
15/11/11 21:37:45.64 kvOX2kCa.net
>>96 Java
URLリンク(ideone.com)

100:デフォルトの名無しさん
15/11/11 23:51:59.90 kvOX2kCa.net
>>96 Java
URLリンク(ideone.com)
5と76から延ばす方向で

101:デフォルトの名無しさん
15/11/11 23:55:55.86 kvOX2kCa.net
何で76にしたし…

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

103:デフォルトの名無しさん
15/11/12 15:29:35.14 mg6U+sOG.net
>>96
1から32767までの間で調べた
URLリンク(ideone.com)

104:デフォルトの名無しさん
15/11/12 16:34:27.03 2RvUZ1HO.net
>>96 Java
URLリンク(ideone.com)
>>102を見て>>98を書き直し…シンプルになった
>>96 Java
URLリンク(ideone.com)
末尾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:デフォルトの名無しさん
15/11/12 22:28:56.44 TDqS/713.net
>>96
URLリンク(ideone.com)
>>101を修正。(バグフィックスとは言ってない。)
少しましになったかな?

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

107:デフォルトの名無しさん
15/11/12 22:46:40.58 TDqS/713.net
>>105
あーなるほど。勘違いしてた。
いい手がないなー。Orz

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

109:デフォルトの名無しさん
15/11/12 22:51:41.90 TDqS/713.net
>>104
そだそだ。ご指摘ありがとう。

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

111:片山博文MZ ◆T6xkBnTXz7B0
15/11/12 23:02:28.06 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
15/11/12 23:12:11.82 OJ9xT8J+.net
1の位a_0は、明らかに0、1、5のいずれかである。
なぜなら0≡0^2かつ1≡1^2かつ5≡5^2 (mod 10)であり、それ以外は考えられないから。

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

114:デフォルトの名無しさん
15/11/12 23:18:19.92 2RvUZ1HO.net
>>111
6…

115:片山博文MZ ◆T6xkBnTXz7B0
15/11/12 23:20:39.98 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:デフォルトの名無しさん
15/11/12 23:21:12.97 Tt5I2ZgM.net
変数xに0~360までの角度を保持したいんですが、場合によってはこの範囲外の値が入る事が有ります。例えば500や-100など。そういう場合はそれぞれ140、260にしたいんですが、ifで場合分けする方法以外にスマートなやり方有りますか?

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

119:デフォルトの名無しさん
15/11/12 23:54:26.23 qVN3pWO7.net
URLリンク(math.a.la9.jp)

これの大学院生の証明を信用すると
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
15/11/13 00:50:19.24 lCbsoecE.net
ここまで数学の話になると自分は門外漢だな。参ったなぁ。
自分はC/C++しか使えないので、C++に多倍長が入るまで待ちますです。
自分の能力を疑う。。。Orz

121:デフォルトの名無しさん
15/11/13 00:51:09.68 lCbsoecE.net
ホント、数学怖い。

122:デフォルトの名無しさん
15/11/13 01:48:47.99 oAcUw9gl.net
>>96
Ruby
16桁で2秒くらい。
URLリンク(ideone.com)

123:デフォルトの名無しさん
15/11/13 01:56:56.44 oAcUw9gl.net
>>115
Rubyで。
URLリンク(ideone.com)

124:デフォルトの名無しさん
15/11/13 03:44:01.38 lCbsoecE.net
>>96
URLリンク(ideone.com)
C++。>>109-112の話を信じてコードにした。
だいたい>>102の劣化版になった。
>>102優秀!

125:デフォルトの名無しさん
15/11/13 03:44:43.48 lCbsoecE.net
1と5と6の倍数のどれかって結論になるんかねー。

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

127:デフォルトの名無しさん
15/11/13 21:39:51.30 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:デフォルトの名無しさん
15/11/13 22:05:01.72 lCbsoecE.net
>>125
ナップザック問題よく見るなー。

129:126
15/11/14 04:44:47.09 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
15/11/14 04:45:20.39 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:デフォルトの名無しさん
15/11/14 07:36:05.43 HECTDRcm.net
>>125
2つ目の例間違ってました
5 2 5 2 5 2 176 -> 1 1 2 1 1 0 0

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

134:デフォルトの名無しさん
15/11/17 13:23:12.14 qzaifS3v.net
キレイにあいにいこう

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

136:デフォルトの名無しさん
15/11/18 10:07:53.97 MW0MQlR6.net
お題:以下を出力する
ABBACACBBA
CBCBBBABC
AAABBCCA
AACBACB
ABACBA
CCBAC
CACB
BBA
BC
A

137:デフォルトの名無しさん
15/11/18 11:15:42.88 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:デフォルトの名無しさん
15/11/18 16:23:59.84 6s10vQob.net
>>133 C
URLリンク(ideone.com)

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

140:デフォルトの名無しさん
15/11/18 18:23:26.04 D8fsp1uM.net
>>133 c
URLリンク(ideone.com)

141:デフォルトの名無しさん
15/11/18 21:29:20.89 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:デフォルトの名無しさん
15/11/18 23:42:26.25 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:デフォルトの名無しさん
15/11/19 03:34:56.68 phHpIHjD.net
よく法則性わかったな。全く分からんぞ。

144:デフォルトの名無しさん
15/11/19 22:16:34.51 uJ/1LVHK.net
隣接した文字が同じならその文字、違うならそれ以外の文字
という法則性で書いてるようだけど問題中に指定はないから同じ出力ならなんでもいい
この類の出題に対する簡単な解決法は出力例をそのままコピペすること

145:デフォルトの名無しさん
15/11/20 12:08:27.30 GuOf3/Bz.net
>>141
だよねw
それよりも長くなってしまうコードは冗長なのかも。

146:デフォルトの名無しさん
15/11/20 12:28:08.45 FQy8dcw9.net
>>141-142
短いコード…つまりこうだな
URLリンク(ideone.com)

147:デフォルトの名無しさん
15/11/21 01:49:25.12 HxaRKQeG.net
>>133
Rubyで。
URLリンク(ideone.com)

148:デフォルトの名無しさん
15/11/21 10:43:36.89 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:デフォルトの名無しさん
15/11/24 21:57:54.41 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:デフォルトの名無しさん
15/11/24 23:57:27.64 BzULhZcd.net
適当に10^n倍して整数の範囲でやれ
てかJavaScriptで簡単に30桁も扱いたいなら外部ライブラリでも使えよ

151:デフォルトの名無しさん
15/11/25 00:04:10.27 O+sc6fcj.net
>>147
出来ないならレスしなくても良い

152:デフォルトの名無しさん
15/11/25 00:20:18.37 B5r/QkfM.net
俺は出来ないから禁止じゃなくてよかったわ

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

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

155:デフォルトの名無しさん
15/11/25 02:34:57.37 WgXGKPIm.net
>>146
有理数が割り切れるかどうかという話なら、既約分数の形で分母に2と5以外の素因数が含まれると
循環小数になる
整数に乗る範囲なら>>147で同じことができる

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

157:デフォルトの名無しさん
15/11/25 08:08:20.28 DvsQmrmL.net
寝ようとしたらバグ思いついたのでフィックス。
URLリンク(ideone.com)


158:



159:デフォルトの名無しさん
15/11/25 09:36:21.17 O+sc6fcj.net
>>154
素晴らしい。完璧です。

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

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

162:デフォルトの名無しさん
15/11/29 00:48:49.92 KmrpGp6z.net
>>157
その文章はネタなのかマジなのか…
URLリンク(ideone.com)

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

164:デフォルトの名無しさん
15/11/29 06:33:12.85 6OpYz5rj.net
序数なくしたい・・・。(^q^)

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

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

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

168:デフォルトの名無しさん
15/12/07 22:09:09.73 4dGrKabk.net
URLリンク(ja.wikipedia.org)

169:デフォルトの名無しさん
15/12/07 22:17:32.62 OagebEri.net
楕円の外周の計算方法- 数学 | 教えて!goo
URLリンク(oshiete.goo.ne.jp)
楕円の周の長さの求め方と近似公式 | 高校数学の美しい物語
URLリンク(mathtrain.jp)
こういった近似解法の存在を知らないと、
自力でアルゴリズムを発見するのは天才級の頭脳がいる問題だぜょ
セニョール

170:デフォルトの名無しさん
15/12/07 23:34:24.64 4dGrKabk.net
「天才級」は言い過ぎでしょ

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

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

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

174:デフォルトの名無しさん
15/12/08 09:59:25.88 /HebolMS.net
天才現る

175:デフォルトの名無しさん
15/12/08 19:56:53.86 3EaU/rl6.net
e!?

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

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

178:デフォルトの名無しさん
15/12/08 20:40:17.60 3EaU/rl6.net
実際、叩かれるつもりで投稿したんだがなんか怒られる兆しがないな。
いやー、コンピュータはすごいよ。
俺がじまんしたいのはモンテカルロより綺麗にかけた2分法のほうなんだよな。
まぁそれもベースはパクってきたわけなんだけど。Orz

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

180:デフォルトの名無しさん
15/12/08 20:53:40.72 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:デフォルトの名無しさん
15/12/08 20:57:35.31 k5FAaYPJ.net
なんか微妙に間違ったな
値は大体あってるけど
for (int i = 1 ; i <= DIV_NUM ; i++){
こうだね

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

183:デフォルトの名無しさん
15/12/08 22:02:09.84 k5FAaYPJ.net
一番原始的な積分値の求め方だよ

184:デフォルトの名無しさん
15/12/08 22:08:33.54 3EaU/rl6.net
なるほど。勉強になるわ。

185:デフォルトの名無しさん
15/12/09 02:46:42.95 WkKrcfNI.net
>>162
URLリンク(ideone.com)
C++。実はこれでよかったのか?
ゲーム世代だから、こう、もっと複雑なものを想像してたんだけど。
こんな感じでいいの?シンプルね。
スペシャルサンクス >>179@積分について教えてもらった。

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

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

188:デフォルトの名無しさん
15/12/09 22:53:48.61 EF8HxpWM.net
>>182
なんか素人が痛いからそろそろ止めた方が
板違いだし

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

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

191:デフォルトの名無しさん
15/12/10 23:05:45.07 1swodkqj.net
>>186
>>平日の月曜がいくつあるか求めよ
平日の月曜というのがよくわからないのですが、
たとえば、春分の日とか秋分の日が月曜日ならばそれを除く
ということですか。
春分や秋分の日が日曜日のときは、月曜日が振り替え休日に
なりますが、その場合も除くのでしょうか。

192:デフォルトの名無しさん
15/12/10 23:14:37.28 qXWtOvvK.net
>>187
はい、祝日と振り替え休日を除いた日数です

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

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

195:デフォルトの名無しさん
15/12/11 00:27:12.79 eVuXsWSu.net
日本国という縛りもありませんし。

196:デフォルトの名無しさん
15/12/11 06:26:06.24 tt4EKsw8.net
これアルゴリズムとか関係なくね?
DBに自分で登録するかそういうWebサービスを探して利用するしか

197:デフォルトの名無しさん
15/12/11 06:32:51.11 tt4EKsw8.net
>>189の言うように予め配列等に祝日のデータが入ってると仮定すれば答えようがあるかも
宿題や仕事で使うコードなら他人に投げるのは感心しない

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

199:デフォルトの名無しさん
15/12/11 09:08:34.35 eVuXsWSu.net
俺ニートだから、全部休日な。答えは0だ。

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


恋愛SLG: プログラミングで彼女をつくる|paizaオンラインハッカソン7
URLリンク(paiza.jp)

201:デフォルトの名無しさん
15/12/12 00:02:55.04 epBUOQqG.net
ニッポンバンザーイ!!!

202:デフォルトの名無しさん
15/12/12 01:49:09.61 g+kFVlkS.net
>>196
全部解くのに70分、水着に30分かかってもーた

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

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

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

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

207:201
15/12/13 16:58:32.34 sP1yS+qf.net
ついイライラしてクソ解答を書き込んでしまったが、コード書きなおした
URLリンク(ideone.com)

208:デフォルトの名無しさん
15/12/13 22:16:08.38 O2iUJZml.net
URLリンク(ideone.com)
C++。謎の係数に轟け。

209:デフォルトの名無しさん
15/12/14 02:29:21.98 eVz/xHue.net
>>201
URLリンク(ideone.com)
ちょい、リファレンス間違ってねーか?
詳しくはウィキペディア見てくれ。
URLリンク(ja.wikipedia.org)

210:デフォルトの名無しさん
15/12/14 02:30:05.61 eVz/xHue.net
あー切り取った部分だった。Orz

211:デフォルトの名無しさん
15/12/14 03:09:34.83 eVz/xHue.net
真面目に考えると結構難しいなぁ。

212:200
15/12/14 09:45:09.75 qfulNci3.net
正確な値:
体積   1946.99
表面積  992.95
(±0.5%ぐらいなら正解かな)
1937~1956
988~998

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

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

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

216:デフォルトの名無しさん
15/12/14 22:01:47.63 5mSwVQ2V.net
>>201
URLリンク(ideone.com)
まあまあかな
表面は>>210の方法じゃなくて2個に分けてみた
平面の方は簡単だけど、曲面の方はちょっと複雑
>>210じゃさすがに誤差が大きいんじゃ?

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

218:デフォルトの名無しさん
15/12/15 19:16:41.27 HlYC/kU7.net
薄膜に当たる率が低くて非効率すぎる

219:デフォルトの名無しさん
15/12/15 19:17:41.82 HlYC/kU7.net
面は面の率でやらないと

220:デフォルトの名無しさん
15/12/15 21:37:30.34 HlYC/kU7.net
URLリンク(ideone.com)
普通に積分を使ってやるとこんな感じ
>>208
CADの誤差って結構大きいね

221:デフォルトの名無しさん
15/12/15 21:51:36.86 HlYC/kU7.net
URLリンク(ideone.com)
薄皮方式
>>212 に比べて誤差は大して変わらなかった

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

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

224:デフォルトの名無しさん
15/12/17 07:16:30.79 MUNBX9mT.net
>>219
正確な値はどうやって調べました?

225:デフォルトの名無しさん
15/12/19 10:37:34.32 R5LeEZzK.net
6あれば9あり

226:デフォルトの名無しさん
15/12/24 21:50:12.68 +ldhkJyO.net
お題:丸括弧を行頭か行末にしかかけないルールで整形する

227:デフォルトの名無しさん
15/12/25 00:42:27.39 uvgJJP9n.net
意味不明

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

229:デフォルトの名無しさん
15/12/25 23:47:27.56 +one86k3.net
いわゆる禁則処理を実装しろって事か?

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

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

232:デフォルトの名無しさん
15/12/26 00:09:49.09 V7QFceGd.net
>>227書いて、ideone更新したら改行処理入ってたw

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

234:デフォルトの名無しさん
15/12/27 09:05:47.31 q7MBupA+.net
>>229
あなたGitHubやらんの?

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

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

237:デフォルトの名無しさん
15/12/29 00:04:03.34 zkqY07q7.net
>>232
一応GUI統合のパッケージがあるのだけど、
使い方がVSのそれじゃない感じなので挫折したっていうね。
今は治ってるのかなぁ・・・。
まぁ、コード書くのはきらいじゃないんだけど、
タマに書くコードとかはお遊戯なので公開してもあんまりメリットないと思います。
まぁちょっと試してみるか。

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

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

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

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

242:デフォルトの名無しさん
15/12/30 08:15:12.42 BOREIzQ4.net
気が向いたらやりまっす。

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

244:デフォルトの名無しさん
15/12/31 00:33:02.82 kHVCdoOu.net
ドンだけランダム必要なんだ。ちょっと面倒だなぁ。

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

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

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

248:デフォルトの名無しさん
15/12/31 09:45:56.04 gJy9w4AY.net
新年問題きたか

249:デフォルトの名無しさん
15/12/31 12:42:50.44 2anvHRU0.net
>>239 Java
URLリンク(ideone.com)

250:デフォルトの名無しさん
15/12/31 13:19:32.68 /Zl81OUL.net
数学的に解きたくなってしまうな・・・

251:デフォルトの名無しさん
16/01/01 00:32:27.90 9G3HgWpt.net
>>239
URLリンク(ideone.com)
C++。ちょっとバグってたの修正。0~8までしか選択できてなかった。

252:デフォルトの名無しさん
16/01/01 00:34:34.13 9G3HgWpt.net
あけましておめでとうございます。

253:デフォルトの名無しさん
16/01/01 01:02:54.81 yxxZ1kbC.net
おめでとうございます

254:デフォルトの名無しさん
16/01/01 13:06:55.68 eZmmhQ/k.net
あけましておめでとうございます。今年もよろしく。
新年最初の問題なので簡単そうで難問に挑戦してください。
お題:直角三角形ABCがあります。
∠Cが直角とします。
ACの長さは5cmです。
ABの線上に点Pを取りました。
APの長さは2cmです。
ここでPからCに線分を引きました。
PCの長さを測るとちょうど4cmでした。
この直角三角形ABCのBCの長さは何cmでしょうか?
なるべく正確に出しなさい。

255:249
16/01/01 13:23:06.00 eZmmhQ/k.net
訂正
問題ミスです。簡単ですねw

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

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

258:デフォルトの名無しさん
16/01/02 08:23:10.74 R8CGoUf/.net
>>239 Java
URLリンク(ideone.com)
5秒に収まらなかったでござる…だが精確にはなったと思う

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

260:デフォルトの名無しさん
16/01/02 18:31:25.74 R8CGoUf/.net
>>255 Java
URLリンク(ideone.com)
よーわからんがこれでええのん?

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

262:デフォルトの名無しさん
16/01/02 23:12:30.77 wbcMORBx.net
6次にはなったけど、4次になる?
どうやるの?

263:デフォルトの名無しさん
16/01/02 23:57:06.31 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
16/01/03 00:02:35.63 j2CXypF5.net
うん、さっぱりわからんww

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

266:デフォルトの名無しさん
16/01/03 00:35:54.90 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:デフォルトの名無しさん
16/01/03 02:58:05.62 o15FFH+r.net
>>249 をニュートン法で解くのが良い
100万桁くらい求められる

268:デフォルトの名無しさん
16/01/03 15:15:54.32 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:デフォルトの名無しさん
16/01/03 17:50:09.78 cbZEOl3j.net
249とかは、プログラミングの話題とはあんまり関係ないと思うんだが

270:デフォルトの名無しさん
16/01/04 18:16:31.23 mH8w9NDh.net
正しい値
7.958999540670207177702263965366890868924353898555
7799452182420944176743383277819472811732768796743
8318898738257814428173492288313392264554506228517
666119...

271:デフォルトの名無しさん
16/01/04 18:19:15.52 mH8w9NDh.net
>>201 の正しい値
1947.11807954634173960535758830613451914405126679271213882
533811635602148727751327773910199748046019861942974251070
215931647320721843150204685782788027005081182762594264937
472455162842376624181590647736961208708004693388297869382...
992.957114044052359738684758693502096892477144491881820261
461861302037924597815356848916173956940410685796740490976
075326082780973939688404480667490868665288270999173692699
242549879611533131497908524170290199136162010153658336901...

272:デフォルトの名無しさん
16/01/08 01:15:21.96 2qKIN/Bt.net
お題: 1~n行の文字列が入力されます。'*'の矩形で囲って出力してください
例:(出力は左詰め半角スペースでパディングしてるつもり)
in < ab
in < abc
in < a
out >
******
* ab *
* abc *
* a *
*****
以下のオプションは取捨選択自由です
a. タブ文字への対応(矩形が崩れなければおk)
b. 右詰め、中央詰めの選択可能な実装
c. 日本語への対応

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

274:デフォルトの名無しさん
16/01/08 01:37:44.81 2qKIN/Bt.net
>>269
ですね。追加で
d. a.で半角スペースに変換する場合、半角スペース数の選択可能な実装

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

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

277:デフォルトの名無しさん
16/01/18 21:17:40.87 0oN+Zp9M.net
>>268 rust 1.5
URLリンク(ideone.com)

278:デフォルトの名無しさん
16/01/21 23:31:52.04 XgHkIVxU.net
>>268 J
echo '*',~'*',('* ' , ,&' *')

279:デフォルトの名無しさん
16/01/21 23:42:05.32 XgHkIVxU.net
>>274 なぜか途中できれちゃったのでもう一回
>>268 J
echo '*',~'*',('* ' , ,&' *')"1,;._2 toJ stdin ''

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

281:デフォルトの名無しさん
16/01/22 00:57:27.35 iy9dE6+2.net
URLリンク(sim.okawa-denshi.jp)
こちらのサイトの


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:デフォルトの名無しさん
16/01/22 00:58:35.84 864z2gB2.net
いつから1が素数になったんだ?

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

285:デフォルトの名無しさん
16/01/22 01:12:29.69 So/btKLV.net
>>278
じゃあ
1番が12で

286:デフォルトの名無しさん
16/01/22 01:16:09.22 864z2gB2.net
1000個以上存在することはわかってるの?

287:デフォルトの名無しさん
16/01/22 01:17:14.81 LSwKLHy0.net
>>277
例えばE24の場合、抵抗値の全パターンは168。
①ループ条件として、168個の抵抗値を順にR1とする。
②目標の比率になる理想的な抵抗値を算出する。
③それに近い前後の抵抗値を見つけ、前後で目標に近い値を候補として残す。
④前回のループで見つけた候補と比較し、より目標値に近い値を候補として残す。
ループを抜けると、「チン」と音がして、料理ができあがる。
こんな感じかな?

288:デフォルトの名無しさん
16/01/22 01:20:02.16 So/btKLV.net
>>281
わかってる。2分で計算できた。

289:デフォルトの名無しさん
16/01/22 09:42:10.08 XJFbEDkM.net
>>276 Java
URLリンク(ideone.com)
あってるかどうかはしらんw

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

291:デフォルトの名無しさん
16/01/22 19:08:13.72 XJFbEDkM.net
>>285が何を言いたいのかがわからん

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

293:デフォルトの名無しさん
16/01/23 01:08:51.74 POOOZq0F.net
>>285
URLリンク(ideone.com)
これで満足か?

294:デフォルトの名無しさん
16/01/23 09:54:57.98 ZDlTAjvh.net
君が満足ならいいんじゃない?
>>284でも

295:デフォルトの名無しさん
16/01/23 10:01:36.42 ZDlTAjvh.net
>>285で満足ならそれでも
コンパイラの最適化で>>284>>285>>288が同じコードになる日も来るかもしれない
ちなみに、>>276のような数が無限個ある証明は現代では誰も出来ない
(出来たら歴史に名が残るレベル)
有限個である証明はもしかしたら出来るかも

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

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

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

299:デフォルトの名無しさん
16/01/23 22:39:56.92 kmeCYvLc.net
プログラマってアスペなのか何様?って奴多いよな

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

301:デフォルトの名無しさん
16/01/23 23:46:05.37 2OCOgJAF.net
>>293
感想より自分のコードは?

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

303:デフォルトの名無しさん
16/01/24 09:45:56.17 a60MvDTP.net
>>293
>>285

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

305:デフォルトの名無しさん
16/01/24 15:47:41.33 qvsZxuE5.net
>>299
E192の場合で書いてみた。これで試してみて
URLリンク(ideone.com)

306:デフォルトの名無しさん
16/01/24 16:09:41.53 5rhebb


307:dV.net



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

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

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

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

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

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

313:デフォルトの名無しさん
16/01/24 20:43:02.29 SFsRUuPo.net
decimal使うか丸め処理入れるか

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

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

316:デフォルトの名無しさん
16/01/30 01:00:32.10 WeGPRoDh.net
1000 13833270
2000 36950448
3000 62765388
4000 92605770
5000 122764008
これであってる?

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

318:デフォルトの名無しさん
16/01/30 21:26:25.48 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:デフォルトの名無しさん
16/02/02 05:04:22.87 +n78UQ/o.net
定期age

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

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

322:デフォルトの名無しさん
16/02/23 11:02:15.31 ltvQNGjy.net
>>2
過去スレ
7 スレリンク(tech板)
前スレを、テンプレに追加して

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

324:デフォルトの名無しさん
16/02/28 09:12:07.86 i+krYFXY.net
2ch過疎ってるねぇ

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

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


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



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

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

330:デフォルトの名無しさん
16/02/29 02:54:24.43 p8lHTaCd.net
いったん止めます。

331:デフォルトの名無しさん
16/02/29 03:24:10.39 p8lHTaCd.net
レッツリトライ。アルゴリズムを見直した。

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

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

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

335:デフォルトの名無しさん
16/02/29 06:39:18.63 wRRlOVxG.net
コマネチ!

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

337:デフォルトの名無しさん
16/02/29 18:24:23.39 p8lHTaCd.net
並列化してもうまくいって二日か・・・。

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

339:デフォルトの名無しさん
16/02/29 21:54:34.42 gY4tu7UX.net
試しに28bitで計算させてみたけど1つも見つからなかったよ。
プログラムのバグじゃ無きゃ良いけど。

340:デフォルトの名無しさん
16/02/29 21:59:36.65 gY4tu7UX.net
コードはこんな感じ
35行目のNに対し、2N bits空間の素数について調べる。
URLリンク(ideone.com)

341:デフォルトの名無しさん
16/02/29 22:24:57.60 p8lHTaCd.net
生成物:URLリンク(www.dotup.org)
そーす:URLリンク(www.dotup.org)
やーっと終わった。26ビット計算。
縁に黒いのあるのは境界線系のバグの可能性が高いので精査よろしく。
燃え尽きたぜ。
>>332-333
先越された・・・。Orz

342:デフォルトの名無しさん
16/03/01 04:48:06.87 /oGISoD7.net
>>334
中心に緑の点を打ってくれんかのう‥

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

344:332
16/03/01 09:07:57.31 fxkt5PE4.net
>>334
なんだか無駄な処理が多いように見える
素数性判定を1個1個するよりエラトステネスの篩を使うとかしようぜ。
# 32bitで見つからんかった

345:332
16/03/01 22:38:46.95 fxkt5PE4.net
36bitで見つからんかった。
もう辞めるわ。

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

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

348:デフォルトの名無しさん
16/03/03 18:29:47.32 t9z0z44u.net
>>340 Bash
URLリンク(ideone.com)

349:デフォルトの名無しさん
16/03/03 19:58:32.83 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:デフォルトの名無しさん
16/03/03 20:40:38.92 rLQVucBG.net
>>340 Rust 今日来る1.7を待ちながら
URLリンク(play.rust-lang.org)

351:デフォルトの名無しさん
16/03/03 21:43:53.21 GzhlChId.net
>>342
C++
URLリンク(ideone.com)

352:デフォルトの名無しさん
16/03/03 22:03:26.12 LBKN89dL.net
>>342
Python3
URLリンク(ideone.com)

353:デフォルトの名無しさん
16/03/03 23:17:39.49 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:デフォルトの名無しさん
16/03/04 15:28:38.54 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:デフォルトの名無しさん
16/03/04 15:49:17.83 DX3xeB7o.net
>>347
楽すぎない?

356:346
16/03/04 16:33:45.39 7Zl+7QrX.net
このままだったら適当でもそんなに時間がかからないから自分でもできるんですが、
配列の数が多い場合だとどんなやり方があるのと思いまして。
じゃあちょっと増やしてこのぐらいで。
答えはわかりません。
お題:
配列Bを配列Aの規則順に従って整列。Aに含まれ無い物は最後尾にアルファベット順に整列。
例:
長いのでこちら
URLリンク(ideone.com)
結果:?
言語:
rubyかpython

357:デフォルトの名無しさん
16/03/04 18:38:25.99 pEnisYEU.net
お前の業務?

358:デフォルトの名無しさん
16/03/04 18:46:32.50 9GjrgxFP.net
>>349
URLリンク(ideone.com)

359:デフォルトの名無しさん
16/03/05 19:06:23.29 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:デフォルトの名無しさん
16/03/06 00:31:45.05 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:デフォルトの名無しさん
16/03/06 15:24:05.92 /EFFTfcH.net
>>342 C
>>344 を参考に
URLリンク(ideone.com)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch