トップページ⇒tech
1002コメント361KB

プログラミングのお題スレ Part8©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net2015/10/07(水) 20:19:06.64ID:c4LYwtKo
プログラミングのお題スレです。

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

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

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

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

宿題は宿題スレがあるのでそちらへ。
0002デフォルトの名無しさん 転載ダメ©2ch.net2015/10/07(水) 20:19:59.95ID:c4LYwtKo
過去スレ
6 http://peace.2ch.net/test/read.cgi/tech/1418278634/
5 http://peace.2ch.net/test/read.cgi/tech/1411227287/
4 http://peace.2ch.net/test/read.cgi/tech/1402622093/
3 http://peace.2ch.net/test/read.cgi/tech/1390525149/
2 http://toro.2ch.net/test/read.cgi/tech/1357191974/
出されたお題をコーディングして罵られるスレ
http://toro.2ch.net/test/read.cgi/tech/1354393458/
0003デフォルトの名無しさん2015/10/07(水) 20:27:26.50ID:qc2rPE1F
俺のチンコォ崇めてプログラミングスキルを磨け

チンコォグイーン!
http://imgur.com/TL0hKpS.jpg
0004デフォルトの名無しさん2015/10/07(水) 20:53:39.49ID:c4LYwtKo
景気付けにどうぞ

お題:
(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万
0005デフォルトの名無しさん2015/10/08(木) 03:32:30.80ID:OORjem1H
>>4 Java
http://ideone.com/sPM7Ao
書いててよくわからんくなった…
ローカルで1000桁計算した結果がBigInteger使った場合と同じになるから多分あっていると思う
0006デフォルトの名無しさん2015/10/08(木) 19:59:21.41ID:6/TT9nGb
>>4 C++

http://ideone.com/tZdCFL
テストデータは>>5さんのを頂きました。
0007デフォルトの名無しさん2015/10/08(木) 22:37:13.10ID:6YOPIK9g
深谷優先探索の練習したいからだれか問題頂戴
0008デフォルトの名無しさん2015/10/08(木) 22:44:17.56ID:7fMgdVUK
深谷優先探索
0009デフォルトの名無しさん2015/10/08(木) 22:44:50.73ID:ODE72HFL
>>7
閉路の迷路を自動生成して、ゴールを深さ優先探索で求めよ。
っていうのは?
0010デフォルトの名無しさん2015/10/09(金) 00:38:09.02ID:/28lT51i
>>7
Prolog処理系の実装
0011デフォルトの名無しさん2015/10/09(金) 16:58:59.65ID:Ei93KrvX
これの思考ルーチン


マンカラ ( ボードゲーム ):無料Flashゲーム
http://www.sousakuba.com/flash-games/mancala.html
0012デフォルトの名無しさん2015/10/09(金) 22:10:18.75ID:cypHo82J
>>4
Ruby
1000桁で10秒くらいかかるので5万桁は無理
http://ideone.com/ggVXBd
0013デフォルトの名無しさん2015/10/10(土) 23:20:18.23ID:cCGMMWjY
前スレ >>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*******
0014デフォルトの名無しさん2015/10/11(日) 12:15:41.56ID:2ua4rw45
>>4
Java
ttp://codepad.org/f0Rh8cj2
0015デフォルトの名無しさん2015/10/12(月) 18:26:36.88ID:oc4xuXaB
>>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
0016デフォルトの名無しさん2015/10/13(火) 14:13:50.33ID:mv2XvxUt
Jewels
8*8の盤面のすべてのマスに、
7種類の内のいずれかの宝石を、ランダムに置く

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

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

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

番兵を使うのなら、盤面10*10で考えて
0017片山博文MZ ◆T6xkBnTXz7B0 2015/10/13(火) 20:35:49.75ID:DtroG4QR
お題:与えられた未知の英単語から発音を推定して、発音記号を出力する。
0018デフォルトの名無しさん2015/10/13(火) 20:41:13.94ID:4/4DmQRL
>>17
http://www.babelbible.net/lang/lang.cgi?mode=right&;noframe=1&doc=en_sndx&lang=en
ヒントあげるので自作してください。
0019デフォルトの名無しさん2015/10/13(火) 22:20:15.16ID:9bQvUcqb
冗長性の過分応分加減は絶妙
0020デフォルトの名無しさん2015/10/14(水) 17:37:45.49ID:G+M9VpQ5
お題:1から100までの整数を1回ずつすべて使い適当な順に連結して
ひとつの大きな数とみなす。最小のものを求める。
1から10を使った場合は、10123456789が最小となる。
0021デフォルトの名無しさん2015/10/14(水) 18:52:07.89ID:Iqqc+OKD
実用アプリの開発に熱がはいりだしたら
お題が頭に入らなくなった
俺もまだまだだな
0022片山博文MZ ◆T6xkBnTXz7B0 2015/10/14(水) 18:59:41.69ID:O5xSO2EX
>>20
>1から10を使った場合は、10123456789が最小となる。

10はどこ?
0023デフォルトの名無しさん2015/10/14(水) 19:22:57.89ID:tW8nHrv+
先頭だろ
0024デフォルトの名無しさん2015/10/14(水) 20:14:40.28ID:ExdaGJT8
最小:10010111213141516171819202122232425262728293031....99123456789
最大:99998979695949392919089888786...111087654321
????
0025デフォルトの名無しさん2015/10/14(水) 20:16:42.00ID:ExdaGJT8
最大は明らかに間違いだた
99999897969594939291908988878685....111087654321100
ぢゃないかと...
0026デフォルトの名無しさん2015/10/14(水) 20:49:13.09ID:c4eYG1dl
87の前に8を持ってきたほうがいい
76の前に7を持ってきたほうがいい

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

最小も先頭は1001011112となる
0027デフォルトの名無しさん2015/10/14(水) 21:15:32.59ID:guvBL9Z6
下がっててみにくい
0028デフォルトの名無しさん2015/10/14(水) 21:51:06.92ID:dkvYFzw9
>>20
C++
http://ideone.com/1roFPZ
0029デフォルトの名無しさん2015/10/15(木) 02:19:43.47ID:MsEvcwqa
最大
99998979695949392919089888878685848382818079787777675747372717069\
68676665564636261605958575655554535251504948474645444434241403938\
37363534333323130292827262524232222120191817161514131211110100
???
0030デフォルトの名無しさん2015/10/15(木) 03:16:29.70ID:Tp1SkuaU
>>20
Ruby2.0
>>28と同じロジック
http://ideone.com/Qx4Yln
0031デフォルトの名無しさん2015/10/15(木) 10:10:32.84ID:/JO/MU8C
>>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
0032デフォルトの名無しさん2015/10/15(木) 16:17:59.88ID:IAn5ASk+
>>28
アルゴリズムにちょっと感心した
0033デフォルトの名無しさん2015/10/16(金) 22:50:50.56ID:vLvoWUco
>>16
Java
ttp://codepad.org/xR5aj5qb
ちょっとアレンジw
0034デフォルトの名無しさん2015/10/17(土) 13:39:40.63ID:gWco8U62
問題:たかし優先探索
スタートからゴールまで何通りのルートがあるか求めなさい
たかし君は傷つきやすいので"たか4ね"を避けて進まなければいけません
同じルートを2回以上進んではいけません

["スタート", "たか4ね","たかし","たかし","たかし"],
["たかし","たかし","たかし"],
["たかし","たかし","たかし","たかし", "たかし"],
["たかし","たか4ね","たかし"],
["たかし","たかし","ゴール"],
0035デフォルトの名無しさん2015/10/17(土) 22:59:10.98ID:CuP1bx6x
このスレなんで上げてもすぐに落ちるんだろ
0036デフォルトの名無しさん2015/10/18(日) 13:35:05.15ID:VWt3JxRU
C#で書くとこうなるかな>>20
無理矢理LINQを使った

http://ideone.com/8FBn7W

ここまでやるとアホみたいww
0037デフォルトの名無しさん2015/10/19(月) 00:57:02.23ID:L9hia2RL
お題
"3.1415926535"のような小数を表す文字列と小数点以下の桁数を指定する(0以上の)整数を入力し、2進数小数を表す文字列を出力
例えば
"5.5",3 の場合は
"101.100" を出力する
桁を丸めるときは切り捨てではなく0捨1入("5.5",0 の場合は"110"を出力する)
0038デフォルトの名無しさん2015/10/19(月) 14:16:57.22ID:PGvR7XY7
例えば有効数字が3桁の場合、元の実数を8倍して整数に丸めれば、
ほとんどの場合それがバイナリの並びになってるはずだが、全ての場合それで問題がないかどうか自信が持てんな。
0039デフォルトの名無しさん2015/10/19(月) 15:30:38.50ID:3YrRpfpr
>>37
http://ideone.com/39GbxB
C++。適当に実験してたらそれっぽくなった。
あってるかは保証しない。
0040デフォルトの名無しさん2015/10/20(火) 16:11:00.46ID:yLq/jjBd
// お題:電卓を実装する
// 引数はボタン入力履歴で、戻り値は現在の表示
// ボタンは 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
0041デフォルトの名無しさん2015/10/20(火) 16:21:09.13ID:AVx5NpJt
お題

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

HlleooWrld
HerllodWol
WelloorHd
....

条件
・先頭は大文字のHかWではじめなければならない
・文字列の最後は小文字で終わらなければならない
0042デフォルトの名無しさん2015/10/20(火) 17:05:47.08ID:uI3C5IMU
>>41
http://ideone.com/xmC0Mq
C++。こんな感じかな。
0043デフォルトの名無しさん2015/10/20(火) 17:53:28.85ID:A1vNd6F7
>>40 Python3
https://ideone.com/o0W21U
正規表現とeval()の力
0044デフォルトの名無しさん2015/10/20(火) 18:10:16.38ID:A1vNd6F7
ボタン式卓上電卓の想定なら"5-3*2="は"4"の方がメジャーかもね
0045デフォルトの名無しさん2015/10/20(火) 19:26:01.78ID:9ZHSOSPI
>>42
アウトHdrWl
0046デフォルトの名無しさん2015/10/20(火) 19:27:34.86ID:uI3C5IMU
>>45
それはイデオンがタイムアウトしたので切れました。
0047デフォルトの名無しさん2015/10/20(火) 19:56:10.00ID:8Z4zyZfA
>>41
Excel
=(2*FACT(9))/(FACT(3)*FACT(2))-(2*FACT(8))/(FACT(3)*FACT(2))
0048デフォルトの名無しさん2015/10/23(金) 00:43:46.13ID:kMcaPJUG
>>40
haskell
http://ideone.com/AVRHl6
0049デフォルトの名無しさん2015/10/25(日) 15:42:30.99ID:NSF+fqy+
暇つぶしにどうぞ。

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

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

n = 10 のときはいくらか? 同様にn = 11の場合はどうか?
0050デフォルトの名無しさん2015/10/25(日) 21:26:04.46ID:q9jqp7eP
1/pow(n,floor(n/2))
0051デフォルトの名無しさん2015/10/26(月) 02:51:13.95ID:X1tUuUC+
>>49
http://ideone.com/sxblVg
C++。モンテカルロ〜〜〜。なのか?
あってるかは知りません。
0052デフォルトの名無しさん2015/10/26(月) 02:52:48.94ID:X1tUuUC+
どっちかっていうと分布確立の問題だからどういう分布を望んでるかで結果変わりそうかな?
C++だったらディストリビュータ変えればいくらでもいじれる。
0053デフォルトの名無しさん2015/10/26(月) 13:07:28.84ID:C/77uVUj
>>51
n = 10 の場合は正しいようですがn = 11の場合が違うようです。

確率分布は良く知りませんが、単純な確率の問題ですよ。
ヒント: 約分できるので分子は必ず1になります
0054デフォルトの名無しさん2015/10/26(月) 17:30:44.42ID:X1tUuUC+
>>53
片方あってるんだったら、試行回数の問題だと思うのですが、
これ以上試行するとイデオンがタイムアウトするので無理です。
勇者の登場を待ちましょうか。
0055デフォルトの名無しさん2015/10/26(月) 21:54:25.47ID:zYgBhlkj
回文なので前半が決まれば後半は1通りしか無い?
11^6 / 11^11 = 1 / 11^5 じゃね
nが偶数なら
1 / n ^ (n / 2)
0056デフォルトの名無しさん2015/10/26(月) 22:16:43.98ID:DXNKihF1
>>55
つまり>>50
0057デフォルトの名無しさん2015/10/27(火) 02:10:42.88ID:xGCQarhq
方眼紙に均等に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の場合など色々変えてどのくらいに収束してしまうのか確認せよ。
0058デフォルトの名無しさん2015/10/27(火) 08:30:08.61ID:4Bw9gOvg
>>57
2点を選んで(2,0)(2,0)を引いた場合、これを線分と認めるか無視するのか。
既に線分(0,0)(4,0)がある状態で(0,0)(4,0)を引いた場合、線分の重複を認めるのか無視するのか。
0059デフォルトの名無しさん2015/10/27(火) 08:35:48.75ID:D5hlxVUX
消し方によって確率が変わりそうな気がするがそこらへんは大丈夫なん?
0060デフォルトの名無しさん2015/10/27(火) 11:16:40.27ID:nTHAaiUE
>>57
何度読んでも何言ってるのかさっぱり分からん。
「いきなり三角形が複数」とか「とにかく三角形ができた場合」って何のことよ。
0061デフォルトの名無しさん2015/10/27(火) 12:30:53.45ID:GiyDMn1h
>>58
それは長さが無いから線分としない。スキップ。
重複は認めるとしよう。
>>60
言い方が悪かった。同時に複数できたらってこと。
例えば、四角形ができていて、対角線が次にできたら
三角形は2個同時にできるけど、どちらか一方の三角形分の線分
3本を削除すればいいとういこと。また、例えばV字に何本も重複してて
1本追加で3角形が出来ても、重複分全部でなく、3本削除だけでいい。
0062デフォルトの名無しさん2015/10/27(火) 19:12:54.11ID:4Bw9gOvg
>>57
適当に回したらこれくらいになった

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

線分の重複を認める場合
5x5 54.334077
10x10 365.470484
0063デフォルトの名無しさん2015/10/28(水) 00:20:15.77ID:TbBvWlSz
>>61
解説ありがと
なるほど既存の多角形を切り取る場合場合があるわけかw
0064デフォルトの名無しさん2015/10/28(水) 13:29:39.48ID:P6AfRAxK
予想だと、プログラムの問題もあるが、乱数発生の仕方の問題でもある。
コンピューターの用意した人口的に散りばめた乱数だとすぐに収束。
自然界に近い完璧に近い乱数を発生なら収束しないかも。
0065デフォルトの名無しさん2015/10/28(水) 14:34:56.09ID:GTtq7s5w
メルセンヌ・ツイスタ使ったらどうよ
0066デフォルトの名無しさん2015/10/30(金) 23:29:17.08ID:FmImj1NY
みんなはこのスレだけじゃなくyukicoderとかでも出題してたりするの?
0067デフォルトの名無しさん2015/10/31(土) 02:29:03.10ID:izatGTy3
>>57
http://ideone.com/H3y5iK
C++。作っては見たものの、品質は低い。ちょい自信ないな〜。
抜けがあったらごめん。
0068デフォルトの名無しさん2015/10/31(土) 07:00:44.92ID:VBv6nvKP
5x5
https://paiza.io/projects/sAfl2ma6nkZHgBKSjhHWEA
52.87

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

お題a:入力される「Hello, World!」を逆順にして出力する。
例:
in < Hello, World!
out > !dlroW ,olleH
0070デフォルトの名無しさん2015/10/31(土) 15:43:46.90ID:T2ZXoWbN
>>57
5x5 100000回 10x10 10000回

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

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

結構変わるもんですね。
0071デフォルトの名無しさん2015/10/31(土) 21:18:08.06ID:izatGTy3
>>69
http://ideone.com/fDO24p
C++。コードにして4行だから仕様変更かかったら全部書き直しても間に合う位だと思う。
0072デフォルトの名無しさん2015/10/31(土) 21:22:41.58ID:izatGTy3
>>57
>>67のコードを1分くらい回してたら720くらいで増えなくなった。ちなみにCPUはスカイレーク。
0073デフォルトの名無しさん2015/11/01(日) 00:24:00.79ID:KHL3HLvQ
>>69
C
http://ideone.com/SJqau8
0074デフォルトの名無しさん2015/11/01(日) 01:26:03.69ID:cJLCmHdm
>>69
どう仕様変更されるのか分からないとどうしようもない
入力文字列はもちろん、逆順という仕様も変更されるだろうし
となると出来るだけ短く作るぐらいしかない。

#!/bin/sh
read a
echo "!dlroW ,olleH"
0075デフォルトの名無しさん2015/11/01(日) 13:15:09.33ID:rNKSig65
>>69
Haskell
main = interact reverse
0076デフォルトの名無しさん2015/11/01(日) 15:34:04.71ID:srdwxzCV
お題: 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")
0077デフォルトの名無しさん2015/11/01(日) 17:54:16.22ID:tjf5Il2M
>>76
fもつくる必要がありますか?
0078デフォルトの名無しさん2015/11/01(日) 18:18:40.16ID:V0olVSh1
gの要件曖昧過ぎw
0079デフォルトの名無しさん2015/11/01(日) 19:57:17.19ID:KHL3HLvQ
>>76
Ruby
fは適当。
http://ideone.com/XPMHpO
0080デフォルトの名無しさん2015/11/01(日) 21:25:08.29ID:srdwxzCV
>>77
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))))))))

>>78
gは、たとえば『列の各要素間の類似度に比例し距離の二乗に反比例する値の総和が最大になるような列に整列する関数』を考えていました。
もっとよい実装があればお願いします。
0081デフォルトの名無しさん2015/11/02(月) 02:30:55.48ID:LjXD9Pi/
>>76
http://ideone.com/p1w9Zs
ギブアップ。Trigramはうまく移植できたと思うけど、うーむ。
うまいリレーの作り方が思い浮かばなかった。
意外と難しいなぁ。
0082デフォルトの名無しさん2015/11/02(月) 06:33:43.86ID:+TdI2Qwj
類似度の定義は無いから単純に文字位置で文字一致する文字数を長いほうの文字列文字数で割ったのを類似度にしてもいいんだよね
簡単さ!
あとは類似度でグラフの最小木っての作りゃいいんっしょ?
0083デフォルトの名無しさん2015/11/02(月) 16:32:13.01ID:+QiDphYI
>>69の変更です。
お題a: 入力文字列(日本語含む)を逆順にして出力する。
入力される文字列は0 ~ 1024バイトの範囲。
例:
in < Hello, World!
out > !dlroW ,olleH
in < Hello, わーるど!
out > !どるーわ ,olleH
0084デフォルトの名無しさん2015/11/02(月) 21:14:51.67ID:LjXD9Pi/
>>83
http://ideone.com/hLXAqt
C++。半分くらい書き換えた。C++はマルチバイトキツイ。
0085デフォルトの名無しさん2015/11/02(月) 22:32:43.41ID:fHTNy1N3
>>83
#! ruby -Ku
a='Hello, わーるど!'
p a.reverse
0086デフォルトの名無しさん2015/11/03(火) 11:13:37.98ID:EjzY5wqb
>>84
例外飛んどるよ
0087デフォルトの名無しさん2015/11/03(火) 17:38:51.75ID:tcH4gyT3
>>86
GCCのろーけるがタコなんじゃないですか?
VCオンリーって書いてあるじゃないですか。
0088デフォルトの名無しさん2015/11/05(木) 16:28:22.05ID:IhTKFi3p
>>83
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
0089デフォルトの名無しさん2015/11/05(木) 16:32:51.81ID:IhTKFi3p
ターミナルをUTF-8にしてUTF-8のソースをコンパイル。
ターミナルをSJISにして実行。
結果:
!どるーわ wolleH
0090デフォルトの名無しさん2015/11/05(木) 20:59:19.34ID:5zH1LNIS
BrainF**kでやろうかと思ったがUTF-8めんどくせw
0091片山博文MZ ◆T6xkBnTXz7B0 2015/11/10(火) 17:59:02.39ID:IWmBcu9t
お題:粘菌のシミュレーション
0092デフォルトの名無しさん2015/11/10(火) 21:43:34.22ID:0SseENg0
頑張ってください!
0093デフォルトの名無しさん2015/11/11(水) 01:05:44.32ID:SL51g2Xb
>>91 C++
こんな感じ?よくわからんけど
https://paiza.io/projects/39PM4p3agMPGdANgoHT0og
0094デフォルトの名無しさん2015/11/11(水) 01:21:46.45ID:NRLjC3dW
粘菌ってWikipediaで調べただけでもたくさん種類あって種類によって全然違うしどいつをシュミレーションしろと?
0095デフォルトの名無しさん2015/11/11(水) 17:27:12.29ID:YwXMSyH6
お題:自然数nで何乗しても結果の最後がnで終わるnを求める、
例
25^3 = 15626
25^5 = 9765625
0096デフォルトの名無しさん2015/11/11(水) 21:11:00.20ID:YwXMSyH6
>>95
すみません
25^3 = 15625
でした
0097デフォルトの名無しさん2015/11/11(水) 21:37:45.64ID:kvOX2kCa
>>95 Java
https://ideone.com/tDxrjg
0098デフォルトの名無しさん2015/11/11(水) 23:51:59.90ID:kvOX2kCa
>>95 Java
https://ideone.com/npEiYF
5と76から延ばす方向で
0099デフォルトの名無しさん2015/11/11(水) 23:55:55.86ID:kvOX2kCa
何で76にしたし…
0100デフォルトの名無しさん2015/11/12(木) 07:16:51.84ID:TDqS/713
>>95
https://ideone.com/3DYhOi
C++。アルゴリズムはあってると思うんだけど、浮動小数誤差でうまく数字が出てない気がする。
違う方法にすればよかったかなぁ・・・。Orz
0101デフォルトの名無しさん2015/11/12(木) 15:29:35.14ID:mg6U+sOG
>>95
1から32767までの間で調べた

http://ideone.com/VK6T0A
0102デフォルトの名無しさん2015/11/12(木) 16:34:27.03ID:2RvUZ1HO
>>95 Java
https://ideone.com/KfmF8v
>>101を見て>>97を書き直し…シンプルになった

>>95 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 = 以下略

コネコネしてたらなんかこんな感じで出来たが、この計算だと抜け有ったりするかな?
0103デフォルトの名無しさん2015/11/12(木) 22:28:56.44ID:TDqS/713
>>95
http://ideone.com/UQTHRZ
>>100を修正。(バグフィックスとは言ってない。)
少しましになったかな?
0104デフォルトの名無しさん2015/11/12(木) 22:41:27.02ID:mg6U+sOG
>>103
それ答え間違ってると思うよ
問題は ***何乗しても*** なので、特定の場合(たとえば2乗や3乗)についてのみ成り立つような物は除外しないと
0105デフォルトの名無しさん2015/11/12(木) 22:46:40.58ID:TDqS/713
>>104
あーなるほど。勘違いしてた。
いい手がないなー。Orz
0106デフォルトの名無しさん2015/11/12(木) 22:49:14.34ID:TDqS/713
可能性のありそうなものを篩にかける程度しかできてないか。
最近問題が難しくなってきたなぁ。
0107デフォルトの名無しさん2015/11/12(木) 22:51:41.90ID:TDqS/713
>>103
そだそだ。ご指摘ありがとう。
0108片山博文MZ ◆T6xkBnTXz7B0 2015/11/12(木) 22:53:02.41ID:OJ9xT8J+
位取りの数学だよな。例えば、二桁に限定すれば
(10a+b)^2≡20ab+b^2(mod100)
であり、
b≡b^2(mod10)
であることがわかる。
0109片山博文MZ ◆T6xkBnTXz7B0 2015/11/12(木) 23:02:28.06ID:OJ9xT8J+
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)
0110片山博文MZ ◆T6xkBnTXz7B0 2015/11/12(木) 23:12:11.82ID:OJ9xT8J+
1の位a_0は、明らかに0、1、5のいずれかである。
なぜなら0≡0^2かつ1≡1^2かつ5≡5^2 (mod 10)であり、それ以外は考えられないから。
0111デフォルトの名無しさん2015/11/12(木) 23:15:35.02ID:mg6U+sOG
>>106
n^2の結果の最後がnで終わっていれば何乗しても結果の最後がnで終わる
言い換えればn^2の場合についてのみ調べれば良い。
n^2の結果の最後がnで終わっていないようなnは題意にそぐわない
言語・ライブラリレベルで多倍長演算をサポートしてる言語を使うといいと思うよ
0112デフォルトの名無しさん2015/11/12(木) 23:18:19.92ID:2RvUZ1HO
>>110
6…
0113片山博文MZ ◆T6xkBnTXz7B0 2015/11/12(木) 23:20:39.98ID:OJ9xT8J+
n≡n^2ならばn≡n^3である。
なぜならn≡n^2の両側にnを掛けるとn^2≡n^3が得られ、
これとn≡n^2の推移律より明らか。
数学的帰納法より、n≡n^2ならばn≡n^pである。
0114デフォルトの名無しさん2015/11/12(木) 23:21:12.97ID:Tt5I2ZgM
変数xに0〜360までの角度を保持したいんですが、場合によってはこの範囲外の値が入る事が有ります。例えば500や-100など。そういう場合はそれぞれ140、260にしたいんですが、ifで場合分けする方法以外にスマートなやり方有りますか?
0115デフォルトの名無しさん2015/11/12(木) 23:40:32.15ID:2RvUZ1HO
x=(x%360+360)%360;
mod2回とかひどいコードw
0116デフォルトの名無しさん2015/11/12(木) 23:54:26.23ID:qVN3pWO7
http://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]の構成方法は>>102で求まるので、これで全ての解が網羅される…はず
(ただし、α[4]=α[5]=9376やβ[3]=β[4]=625のように異なるnで解が重複することはあり得る)
01171002015/11/13(金) 00:50:19.24ID:lCbsoecE
ここまで数学の話になると自分は門外漢だな。参ったなぁ。
自分はC/C++しか使えないので、C++に多倍長が入るまで待ちますです。
自分の能力を疑う。。。Orz
0118デフォルトの名無しさん2015/11/13(金) 00:51:09.68ID:lCbsoecE
ホント、数学怖い。
0119デフォルトの名無しさん2015/11/13(金) 01:48:47.99ID:oAcUw9gl
>>95
Ruby
16桁で2秒くらい。
http://ideone.com/DzwaXc
0120デフォルトの名無しさん2015/11/13(金) 01:56:56.44ID:oAcUw9gl
>>114
Rubyで。
http://ideone.com/YK6n9K
0121デフォルトの名無しさん2015/11/13(金) 03:44:01.38ID:lCbsoecE
>>95
http://ideone.com/GDW8iY
C++。>>108-111の話を信じてコードにした。
だいたい>>101の劣化版になった。
>>101優秀!
0122デフォルトの名無しさん2015/11/13(金) 03:44:43.48ID:lCbsoecE
1と5と6の倍数のどれかって結論になるんかねー。
0123デフォルトの名無しさん2015/11/13(金) 17:25:00.01ID:3TzLZ92T
>>115
>>120
ありがとうございました。
JavaScriptでやりたいので 115 さんの方式でやることにしました。
Rubyの文法は良く分からないのですが、整数剰余 % は常に正の値を
返すのでしょうか?
0124デフォルトの名無しさん2015/11/13(金) 21:39:51.30ID:VcgxUV6t
お題:お財布軽算法
レジの買い物で財布の中身が最も軽くなるような支払い方を求めよ

条件:
・買い物の金額は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 -> ?
0125デフォルトの名無しさん2015/11/13(金) 22:05:01.72ID:lCbsoecE
>>124
ナップザック問題よく見るなー。
01261262015/11/14(土) 04:44:47.09ID:ruukGtIx
お題ボツ案

次に示す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を開いて見た場合は英単語がでたらめに並べられているだけの文書ファイルのように見える
01271262015/11/14(土) 04:45:20.39ID:ruukGtIx
お題ボツ案 続き

(1)で使うtable.txt
====table.txt ここから
en:an:me
ry:ly:to
ea:ro:at
ou:is: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のファイルサイズを基準に点数付けする予定だったが
俺自身がこの課題を満足するコードを書けなかった
0128デフォルトの名無しさん2015/11/14(土) 07:36:05.43ID:HECTDRcm
>>124
2つ目の例間違ってました

5 2 5 2 5 2 176 -> 1 1 2 1 1 0 0
0129デフォルトの名無しさん2015/11/15(日) 01:14:20.57ID:iZq4VH3S
>>126
いくらチューリング完全とはいえ、こんな暗号何に使うんだよ。
IS関係かよ。
0130デフォルトの名無しさん2015/11/17(火) 13:23:12.14ID:qzaifS3v
キレイにあいにいこう
0131デフォルトの名無しさん2015/11/17(火) 22:19:23.76ID:qSlbRl0V
突っ込みどころが幾つもあるからそりゃ書けんだろ
0132デフォルトの名無しさん2015/11/18(水) 10:07:53.97ID:MW0MQlR6
お題:以下を出力する
ABBACACBBA
CBCBBBABC
AAABBCCA
AACBACB
ABACBA
CCBAC
CACB
BBA
BC
A
0133デフォルトの名無しさん2015/11/18(水) 11:15:42.88ID:4sFoEFSe
>>132 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]]]
0134デフォルトの名無しさん2015/11/18(水) 16:23:59.84ID:6s10vQob
>>132 C
http://ideone.com/DJzS47
0135デフォルトの名無しさん2015/11/18(水) 18:06:15.56ID:D8fsp1uM
>>132 c
#include <stdio.h>
int main() {
char buff[] =
0136デフォルトの名無しさん2015/11/18(水) 18:23:26.04ID:D8fsp1uM
>>132 c
https://ideone.com/UAnRhr
0137デフォルトの名無しさん2015/11/18(水) 21:29:20.89ID:4nC9re2c
>>132 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
0138デフォルトの名無しさん2015/11/18(水) 23:42:26.25ID:YAZwGvpo
>>132 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)
0139デフォルトの名無しさん2015/11/19(木) 03:34:56.68ID:phHpIHjD
よく法則性わかったな。全く分からんぞ。
0140デフォルトの名無しさん2015/11/19(木) 22:16:34.51ID:uJ/1LVHK
隣接した文字が同じならその文字、違うならそれ以外の文字

という法則性で書いてるようだけど問題中に指定はないから同じ出力ならなんでもいい
この類の出題に対する簡単な解決法は出力例をそのままコピペすること
0141デフォルトの名無しさん2015/11/20(金) 12:08:27.30ID:GuOf3/Bz
>>140
だよねw

それよりも長くなってしまうコードは冗長なのかも。
0142デフォルトの名無しさん2015/11/20(金) 12:28:08.45ID:FQy8dcw9
>>140-141
短いコード…つまりこうだな
http://ideone.com/PrSnh2
0143デフォルトの名無しさん2015/11/21(土) 01:49:25.12ID:HxaRKQeG
>>132
Rubyで。
http://ideone.com/4sQ3ws
0144デフォルトの名無しさん2015/11/21(土) 10:43:36.89ID:jCDsTAiM
>>132 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?
0145デフォルトの名無しさん2015/11/24(火) 21:57:54.41ID:VKmO+9+0
JavaScriptスレで、以下の質問をしました。
 1/3=0.33333
 1/2=0.5
 1/4=0.25
 みたいに、実数値を文字列化する時に、割り切れない時は四捨五入で小数点以下5桁で、割り切れるならその全桁数をそのまま文字列化したいんですが、一発で出来る関数や手法は有りますか?
と質問したら、曖昧で分かり辛いようだったので、もう少し詳しく、

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

と質問したのですが、浮動小数演算の世界では割り切れるかどうか判定できないので無理だよ、という意見なのですが、
私としては、浮動小数点演算で割り切れるかどうか判定出来なくても、プログラムは書けると思います。
それが出力する結果が数学的な意味での正しい解答になっていればいいと思うので。
でも良く分からないので、レベルの高いここで質問します。よろしく。
0146デフォルトの名無しさん2015/11/24(火) 23:57:27.64ID:BzULhZcd
適当に10^n倍して整数の範囲でやれ
てかJavaScriptで簡単に30桁も扱いたいなら外部ライブラリでも使えよ
0147デフォルトの名無しさん2015/11/25(水) 00:04:10.27ID:O+sc6fcj
>>146
出来ないならレスしなくても良い
0148デフォルトの名無しさん2015/11/25(水) 00:20:18.37ID:B5r/QkfM
俺は出来ないから禁止じゃなくてよかったわ
0149デフォルトの名無しさん2015/11/25(水) 01:02:10.19ID:DvsQmrmL
>>146
自分も10^N思いついたわ。
泥臭いけど、正しい数字がほしかったら急がば回れだと思うわな。
0150デフォルトの名無しさん2015/11/25(水) 02:12:43.93ID:DvsQmrmL
うーん。暇だからいじってたけど失敗した。改良案募集中。
http://ideone.com/kC2jUa
C++。指数いじってるだけなのに明確に誤差が出る。
一番楽なのはsprintfのソース嫁。だと思う。
0151デフォルトの名無しさん2015/11/25(水) 02:34:57.37ID:WgXGKPIm
>>145
有理数が割り切れるかどうかという話なら、既約分数の形で分母に2と5以外の素因数が含まれると
循環小数になる

整数に乗る範囲なら>>146で同じことができる
0152デフォルトの名無しさん2015/11/25(水) 03:14:52.14ID:DvsQmrmL
>>145
http://ideone.com/MJYOa4
C++。数学ムズイな。log10(0.1)が-inf返す。理屈は知らん。
基本的なことは、 http://okwave.jp/qa/q3050160.html からパクってきた。
これ以上は俺のキャパ超えてますわ。頑張ってー。
0153デフォルトの名無しさん2015/11/25(水) 08:08:20.28ID:DvsQmrmL
寝ようとしたらバグ思いついたのでフィックス。
http://ideone.com/KEG8so
0154デフォルトの名無しさん2015/11/25(水) 09:36:21.17ID:O+sc6fcj
>>153
素晴らしい。完璧です。
0155デフォルトの名無しさん2015/11/25(水) 21:34:13.25ID:DvsQmrmL
一応、最初に案だした>>146にも言っとけー。
それと何も違わんからな。
0156デフォルトの名無しさん2015/11/28(土) 06:44:11.07ID:et7wKfDy
お題:2ビットバイナリのソートと復元。
http://ideone.com/aBSpRb
こういうコードを書きました。
不完全ですが、実用化に至ればどんなファイルも1kb程度に収まるすさまじい圧縮規格の草案デス。(妄想です)
さて、ソートと復元にパーミテーションを使っているのですがこれが超重たいです。困りました。
そこでこれを差し替えて、ソートと復元を軽くしたいと思っています。
さてなんかいい方法ありませんでしょうか。処理速度はあんまり重視していません。
その代わり序数などを用意する場合、64BIT整数の範囲に入ることが望ましいです。
自由な発想で何か思いついてください。お願いします。

ちなみに、このコードの弱点はメモリ使用量で、元バイナリの256倍メモリを消費します。
0157デフォルトの名無しさん2015/11/29(日) 00:48:49.92ID:KmrpGp6z
>>156
その文章はネタなのかマジなのか…
http://ideone.com/4EkJzF
0158デフォルトの名無しさん2015/11/29(日) 04:53:54.49ID:6OpYz5rj
http://ideone.com/nFKJnK
メモリ使用量を256倍から8倍に抑えた。
そしたら、>>157のコードが動かなくなった。Orz
っていうか、序数が簡単に64ビット突破してしまうなぁ。
N!をどうにかしないと。

>>157
乗ってくれてありがとう。
0159デフォルトの名無しさん2015/11/29(日) 06:33:12.85ID:6OpYz5rj
序数なくしたい・・・。(^q^)
0160デフォルトの名無しさん2015/12/03(木) 23:19:41.07ID:Wkj8zlJv
>>145
[実数値]は2進数の浮動小数点数で受け取るの?
それとも分母と分子の2個の整数で受け取る?
0161デフォルトの名無しさん2015/12/07(月) 11:53:42.59ID:2flNGmiy
お題:楕円の長径と短径が与えられたとき、円周の長さを求める
0162デフォルトの名無しさん2015/12/07(月) 22:05:37.72ID:OagebEri
>>161
それは楕円積分じゃね?
セイガクのとき勉強してうろ覚えだけど。
0163デフォルトの名無しさん2015/12/07(月) 22:09:09.73ID:4dGrKabk
https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%86%E7%A9%8D%E5%88%86
0164デフォルトの名無しさん2015/12/07(月) 22:17:32.62ID:OagebEri
楕円の外周の計算方法- 数学 | 教えて!goo
http://oshiete.goo.ne.jp/qa/439398.html

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

こういった近似解法の存在を知らないと、
自力でアルゴリズムを発見するのは天才級の頭脳がいる問題だぜょ
セニョール
0165デフォルトの名無しさん2015/12/07(月) 23:34:24.64ID:4dGrKabk
「天才級」は言い過ぎでしょ
0166デフォルトの名無しさん2015/12/08(火) 04:57:10.08ID:3EaU/rl6
>>161
http://ideone.com/cjVSmk
2分法かつモンテカルロ。
数学的に正しいかは知らんけど、一応近似はしてるんじゃないかと。
数学わかんねー。積分わかんねー。
0167デフォルトの名無しさん2015/12/08(火) 05:22:43.49ID:3EaU/rl6
あれ?各種計算サイトと数字があわね・・・。
>>164の計算法あってる?
0168デフォルトの名無しさん2015/12/08(火) 05:44:52.78ID:3EaU/rl6
http://ideone.com/gtoI4q
と、思ったら。
俺が計算パラメータ勘違いしてるだけだった。Orz
うごごごご。すまん。
0169デフォルトの名無しさん2015/12/08(火) 09:59:25.88ID:/HebolMS
天才現る
0170デフォルトの名無しさん2015/12/08(火) 19:56:53.86ID:3EaU/rl6
e!?
0171デフォルトの名無しさん2015/12/08(火) 20:17:02.87ID:3EaU/rl6
いやいやいやいやいやいや・・・・・。
式パクってきて2分法書いて、モンテカルロやっただけですぜ。
天才とかとは程遠い。っていうか無縁。
天才っていうのは式を作る人。
01721642015/12/08(火) 20:20:16.07ID:a07369ql
おお、モンテカルロも手だな
解析的近似ばかりじゃなく
数値計算の力技もコンピューターならではの解法だ
したがって天才はコンピューターである。

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

俺がじまんしたいのはモンテカルロより綺麗にかけた2分法のほうなんだよな。
まぁそれもベースはパクってきたわけなんだけど。Orz
0174デフォルトの名無しさん2015/12/08(火) 20:44:12.32ID:3EaU/rl6
>>172
ちょうどいいから聞きたいんだけど、
一般的に積分に限らずデルタってどっから引っ張ってくるの?
わからなかったからランダム適応したんだけど。勘で・・・。Orz
作法あるんだったら知りたい。
0175デフォルトの名無しさん2015/12/08(火) 20:53:40.72ID:k5FAaYPJ
モンテカルロよりはマシだろ

#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;
}
0176デフォルトの名無しさん2015/12/08(火) 20:57:35.31ID:k5FAaYPJ
なんか微妙に間違ったな
値は大体あってるけど

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

こうだね
0177デフォルトの名無しさん2015/12/08(火) 21:14:08.51ID:3EaU/rl6
俺の悩みは一体。もっといい理屈があるじゃないか!Orz
0178デフォルトの名無しさん2015/12/08(火) 22:02:09.84ID:k5FAaYPJ
一番原始的な積分値の求め方だよ
0179デフォルトの名無しさん2015/12/08(火) 22:08:33.54ID:3EaU/rl6
なるほど。勉強になるわ。
0180デフォルトの名無しさん2015/12/09(水) 02:46:42.95ID:WkKrcfNI
>>161
http://ideone.com/Fpqwn1
C++。実はこれでよかったのか?
ゲーム世代だから、こう、もっと複雑なものを想像してたんだけど。
こんな感じでいいの?シンプルね。

スペシャルサンクス >>178@積分について教えてもらった。
01811642015/12/09(水) 21:24:48.15ID:ZhIEYZLO
>>174
台形式による数値積分の積分幅に応じた誤差は関数の
二次微分値(曲率)に応じて変化するので、積分幅を調整することによって
誤差を抑制したければ関数の二次微分に相当する値に応じた
幅を使えばいいとおも
あるいは区間の関数自体を非直線近似によって真の値からの乖離による
誤差を減らしかつ計算量を抑えるにはシンプソンとか二次曲線近似とか
01821642015/12/09(水) 22:44:23.10ID:92NQQkZk
いや、でも円を等分割したときの誤差率は
完全に分割角依存で
曲率半径には依らないか
なんか間違えちゃったかもwテヘペロ
0183デフォルトの名無しさん2015/12/09(水) 22:53:48.61ID:EF8HxpWM
>>181
なんか素人が痛いからそろそろ止めた方が
板違いだし
0184デフォルトの名無しさん2015/12/10(木) 00:24:50.66ID:FNI4SdQA
>>181-182
解説ありがと。
でも、数学わからんので数学用語がこんなに出てくると爆発しちゃうお。
0185デフォルトの名無しさん2015/12/10(木) 20:15:14.98ID:qXWtOvvK
お題:
西暦が与えられるので
その年の十月一日から翌年の二月末日までに
平日の月曜がいくつあるか求めよ
0186デフォルトの名無しさん2015/12/10(木) 23:05:45.07ID:1swodkqj
>>185
>>平日の月曜がいくつあるか求めよ

平日の月曜というのがよくわからないのですが、
たとえば、春分の日とか秋分の日が月曜日ならばそれを除く
ということですか。
春分や秋分の日が日曜日のときは、月曜日が振り替え休日に
なりますが、その場合も除くのでしょうか。
0187デフォルトの名無しさん2015/12/10(木) 23:14:37.28ID:qXWtOvvK
>>186
はい、祝日と振り替え休日を除いた日数です
0188デフォルトの名無しさん2015/12/10(木) 23:26:01.14ID:IEwdtYYT
祝日って施行された年月日の表を持たないといけないね
決め方も途中で日にち固定じゃなくなった祝日もあるし
0189デフォルトの名無しさん2015/12/11(金) 00:00:09.46ID:QFhJl34b
江戸時代には、祝日というものは正月ぐらいしかないだろうし、
祝日も明治5年の改歴以来いろいろと変わってきているので、
西暦をインプットして求めるといったって、そういう祝日が何年から
改訂されたかの表が必要でしょうし、第一天文学的に決める春分と
秋分の日が今日では、地球の自転を一定とした力学字で計算し、そして
その力学時と世界時との差を予測して世界時に直して日にちを決めて
いるわけだから、過去の世界時と力学時との差は判っているけれど
将来の差はあくまでも予測にしか過ぎないから、将来の春分や秋分の日
を求めて、それが月曜日にあたっていないと計算ではでても、その時の
世界時と力学時との差はその年にならなければ判らないから、将来
については、厳密にいうと計算できないことになります。
西暦を与えてということだから、たとえば西暦1000年については
どのように計算すればいいのですか。その頃の祝日というのは、どうすれば
わかりますか。
0190デフォルトの名無しさん2015/12/11(金) 00:27:12.79ID:eVuXsWSu
日本国という縛りもありませんし。
0191デフォルトの名無しさん2015/12/11(金) 06:26:06.24ID:tt4EKsw8
これアルゴリズムとか関係なくね?

DBに自分で登録するかそういうWebサービスを探して利用するしか
0192デフォルトの名無しさん2015/12/11(金) 06:32:51.11ID:tt4EKsw8
>>188の言うように予め配列等に祝日のデータが入ってると仮定すれば答えようがあるかも

宿題や仕事で使うコードなら他人に投げるのは感心しない
0193デフォルトの名無しさん2015/12/11(金) 06:40:36.76ID:kB8+oJGq
どこかで見た問題に適当に制約付けただけじゃね?
ちょっとでも考える能力あればこりゃ無理と分かるだろうし
0194デフォルトの名無しさん2015/12/11(金) 09:08:34.35ID:eVuXsWSu
俺ニートだから、全部休日な。答えは0だ。
0195デフォルトの名無しさん2015/12/11(金) 13:06:30.20ID:L6hqxofP
paiza、「プログラミングで彼女をつくる」オンラインハッカソンを開催 | マイナビニュース
エムアウトグループのギノは12月8日、IT/Webエンジニアに特化したプログラミング転職サイト「paiza」にて、恋愛プログラミングゲーム「paiza オンラインハッカソンVol.7 プログラミングで彼女をつくる」を公開したことを発表した。
開催期間は、2015年12月8日12時00分から2016年1月13日23時59分まで。
http://news.mynavi.jp/photo/news/2015/12/09/611/images/001l.jpg
http://news.mynavi.jp/photo/news/2015/12/09/611/images/002l.jpg
http://news.mynavi.jp/news/2015/12/09/611/




恋愛SLG: プログラミングで彼女をつくる|paizaオンラインハッカソン7
https://paiza.jp/poh/ando
0196デフォルトの名無しさん2015/12/12(土) 00:02:55.04ID:epBUOQqG
ニッポンバンザーイ!!!
0197デフォルトの名無しさん2015/12/12(土) 01:49:09.61ID:g+kFVlkS
>>195
全部解くのに70分、水着に30分かかってもーた
0198デフォルトの名無しさん2015/12/13(日) 07:17:29.28ID:O2iUJZml
>>161
http://ideone.com/gPjeg8
C++。意味も分からずパラメータをいじっていたらより模範解答に近づいたのでアップ。
なぜかGCCではコンパイルできない。
メルセンヌツイスタは優秀だな。さすがモンテカルロ用乱数。
0199デフォルトの名無しさん2015/12/13(日) 07:23:54.61ID:O2iUJZml
今見て思ったんだけど、このコード乱数使ってるのにこの精度だと値がほとんど一意なんだな。
これどれくらいあってるんだろう??
0200デフォルトの名無しさん2015/12/13(日) 14:41:46.73ID:X4YbRsnm
お題:モンテカルロ法でドーナツから切り取った部分の体積と表面積を求めなさい
http://uproda.2ch-library.com/909700o0Q/lib909700.bmp
参考:
3次元CADでは
体積  194#.##・・・
表面積 99#.##・・・
0201デフォルトの名無しさん2015/12/13(日) 16:48:49.04ID:sP1yS+qf
>>200 C++
体積だけ
ideoneが調子悪くてせっかく書いたのが消えた
出力にはそれらしい数字が表示されてるでしょ
http://ideone.com/NK8Obe
02022012015/12/13(日) 16:58:32.34ID:sP1yS+qf
ついイライラしてクソ解答を書き込んでしまったが、コード書きなおした
http://ideone.com/l7avA0
0203デフォルトの名無しさん2015/12/13(日) 22:16:08.38ID:O2iUJZml
http://ideone.com/9dojVw
C++。謎の係数に轟け。
0204デフォルトの名無しさん2015/12/14(月) 02:29:21.98ID:eVz/xHue
>>200
http://ideone.com/jTXuFD
ちょい、リファレンス間違ってねーか?
詳しくはウィキペディア見てくれ。
https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%BC%E3%83%A9%E3%82%B9
0205デフォルトの名無しさん2015/12/14(月) 02:30:05.61ID:eVz/xHue
あー切り取った部分だった。Orz
0206デフォルトの名無しさん2015/12/14(月) 03:09:34.83ID:eVz/xHue
真面目に考えると結構難しいなぁ。
02072002015/12/14(月) 09:45:09.75ID:qfulNci3
正確な値:
体積   1946.99
表面積  992.95
(±0.5%ぐらいなら正解かな)
1937〜1956
988〜998
0208名無しさん@そうだ選挙に行こう2015/12/14(月) 14:54:41.43ID:0wzBU9LM
>>200 C++
表面積だけ
アプローチが間違ってるのでだいぶ誤差があるんだけど、正しいアプローチがわからん
http://ideone.com/Z07oLX
0209名無しさん@そうだ選挙に行こう2015/12/14(月) 15:51:49.07ID:qltyQEb4
(ヒント)
バナナの表面積はわからないけど
バナナの皮を剥いてミキサーにかけて
どろどろにして軽量カップに移せば体積はわかる。
バナナの皮が極めて薄ければ
(あまり薄くするとモンテカルロが不安定になるから0.1ぐらいがいいかな?)
軽量カップの体積=バナナの表面積×皮の薄さ
よって、
バナナの表面積=軽量カップの体積/皮の薄さ
0210デフォルトの名無しさん2015/12/14(月) 21:26:29.60ID:LGdp/ous
>>209
おいおい,体積(と密度)を一定にしても表面積はいかようにもかえられるぞ‥
0211デフォルトの名無しさん2015/12/14(月) 22:01:47.63ID:5mSwVQ2V
>>200
http://ideone.com/mYkufI

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

>>209じゃさすがに誤差が大きいんじゃ?
0212デフォルトの名無しさん2015/12/14(月) 22:50:43.48ID:A0mNKi9L
>>210
表面境界の方程式がわかってるんだから
そこから薄い0.1厚範囲の体積がモンテカルロでわかれば
その体積÷0.1でほぼ表面積なんじゃないかな。
精密にするには(外側0.1厚+内側0.1厚の範囲の体積)÷0.2のほうがいいけど。
0213デフォルトの名無しさん2015/12/15(火) 19:16:41.27ID:HlYC/kU7
薄膜に当たる率が低くて非効率すぎる
0214デフォルトの名無しさん2015/12/15(火) 19:17:41.82ID:HlYC/kU7
面は面の率でやらないと
0215デフォルトの名無しさん2015/12/15(火) 21:37:30.34ID:HlYC/kU7
http://ideone.com/GqQTYQ
普通に積分を使ってやるとこんな感じ

>>207
CADの誤差って結構大きいね
0216デフォルトの名無しさん2015/12/15(火) 21:51:36.86ID:HlYC/kU7
http://ideone.com/fYxQyU
薄皮方式

>>211 に比べて誤差は大して変わらなかった
0217デフォルトの名無しさん2015/12/15(火) 21:59:12.88ID:HlYC/kU7
>>211の曲面部分の効率が悪いのが原因か
60度の範囲だけ調べれば十分だから同じ精度で3倍は早くなる
同じ時間だと誤差は1/√3に
0218デフォルトの名無しさん2015/12/16(水) 14:09:16.90ID:8FwsYmi7
>>215
CADも高価(50万以上ぐらい)なのは正確
Autocad体験版(70万)で試したらは正確だった。
自分のは6万の安物
0219デフォルトの名無しさん2015/12/17(木) 07:16:30.79ID:MUNBX9mT
>>218
正確な値はどうやって調べました?
0220デフォルトの名無しさん2015/12/19(土) 10:37:34.32ID:R5LeEZzK
6あれば9あり
0221デフォルトの名無しさん2015/12/24(木) 21:50:12.68ID:+ldhkJyO
お題:丸括弧を行頭か行末にしかかけないルールで整形する
0222デフォルトの名無しさん2015/12/25(金) 00:42:27.39ID:uvgJJP9n
意味不明
0223デフォルトの名無しさん2015/12/25(金) 23:24:49.38ID:zvvbCA1Y
与えられた文字列を適当な個所で改行して整形してください
ただし、丸括弧は必ず行頭か行末にくるようにすること
0224デフォルトの名無しさん2015/12/25(金) 23:47:27.56ID:+one86k3
いわゆる禁則処理を実装しろって事か?
0225デフォルトの名無しさん2015/12/25(金) 23:52:26.53ID:uvgJJP9n
>>223
http://ideone.com/of1XGC
C++。Lispのインタプリタでも作ってるのか?
これくらいできないと先は暗いな。
0226デフォルトの名無しさん2015/12/26(土) 00:08:45.49ID:V7QFceGd
>>225
39~40行目で改行から80文字数えてるけど、ここにも改行処理入れるつもりだったのでは…?
0227デフォルトの名無しさん2015/12/26(土) 00:09:49.09ID:V7QFceGd
て>>226書いて、ideone更新したら改行処理入ってたw
0228デフォルトの名無しさん2015/12/26(土) 00:19:55.66ID:JMFsFNWO
あぁ、すまん。
ちょっとコードに不満あったから修正してた。
ソーリー。たぶんこれでおk。
0229デフォルトの名無しさん2015/12/27(日) 09:05:47.31ID:q7MBupA+
>>228
あなたGitHubやらんの?
0230デフォルトの名無しさん2015/12/28(月) 00:06:02.54ID:T+sfUcIf
>>229
アカウントはもってるが、コマンドが不理解で使えてない。
VSでコンパイルするたびにプッシュしてほしいんだけど、
そういうことのやり方がさっぱりで諦めた。
0231デフォルトの名無しさん2015/12/28(月) 09:36:01.27ID:Rf5WBlJJ
>>230
VSもGitはコマンドライン操作?
あなたコード書くの好きそうだしGitHubで公開した方がいいんでない
0232デフォルトの名無しさん2015/12/29(火) 00:04:03.34ID:zkqY07q7
>>231
一応GUI統合のパッケージがあるのだけど、
使い方がVSのそれじゃない感じなので挫折したっていうね。
今は治ってるのかなぁ・・・。

まぁ、コード書くのはきらいじゃないんだけど、
タマに書くコードとかはお遊戯なので公開してもあんまりメリットないと思います。
まぁちょっと試してみるか。
0233デフォルトの名無しさん2015/12/29(火) 01:06:22.14ID:zkqY07q7
一応、VS上からサバに送ることはできた。
しかし、鯖側が何やってるか把握してないので、頭沸騰しそうだよぉ。
すごい、怖いです。
0234デフォルトの名無しさん2015/12/29(火) 15:27:55.80ID:B86ZwWUs
個人開発ならadd, commit, pushだけ使えればおkじゃない
0235デフォルトの名無しさん2015/12/29(火) 23:56:47.54ID:zkqY07q7
ググるならそれで困らないと思う。
だが、VS上では日本語なので何をやってるかさっぱりでやり直しなのだ。
勘でこういうことだろう。っていうのを類推しながら昨日やってたが、頭沸騰する。
マジ、苦行だ。
0236デフォルトの名無しさん2015/12/30(水) 06:03:10.21ID:HSsTu4WU
Gitのプロジェクトを管理してる日本人が本出してるからお布施してみれば
0237デフォルトの名無しさん2015/12/30(水) 08:15:12.42ID:BOREIzQ4
気が向いたらやりまっす。
0238デフォルトの名無しさん2015/12/31(木) 00:17:22.29ID:1GOOzyNm
お題:猿から餌を守る。
動物園では猿の餌を3桁の回転ダイヤル式鍵で保管管理しています。
各桁は0〜9までのどちらの方向にも回せるタイプです。
しかし猿は定期的に鍵を開けようと試みます。
猿は各桁のダイヤルをそれぞれ1操作回転させてからU字部を引きます。
もちろん、設定と合った場合は開錠してしまい餌を盗られてしまいます。
猿は番号を覚えたり、ダイヤルを順番に試すような知恵は無いので
常に操作は無作為です、また回転させる方向も無作為です。
しかし、この鍵は特殊で作られていて、回転の摩擦抵抗を(弱・中・強)
に設定出来るようになっています。
弱の場合は1操作で、10〜20までのランダムなステップ数が回ります。
中の場合は1操作で、5〜10までのランダムなステップ数が回ります。
強の場合は1操作で、0(回せなかった)又は、1ステップ数が回ります。
ここで、3桁の設定をどのようにすれば、猿が最も開錠する確率が低くなるでしょうか?
3桁の順番は関係ないと思うので、例えば
(2桁を中、1桁を強)または(2桁を弱、1桁を強)などと答えてください。
0239デフォルトの名無しさん2015/12/31(木) 00:33:02.82ID:kHVCdoOu
ドンだけランダム必要なんだ。ちょっと面倒だなぁ。
0240デフォルトの名無しさん2015/12/31(木) 02:00:08.64ID:kHVCdoOu
>>238
http://ideone.com/NBUZIw
C++。ローカルでデバッグしたら収束しなかったので、ほとんどデバッグしてない。
なぜかイデオン上では速攻オワタ。
大丈夫かこれ???
0241デフォルトの名無しさん2015/12/31(木) 02:00:55.35ID:kHVCdoOu
ところで、GITHUB公開したらメールばれするじゃないか。
そんな趣味はありませんですことよ。
0242デフォルトの名無しさん2015/12/31(木) 02:52:11.77ID:kHVCdoOu
ちょ、誰かいない?
>>240検証できる人いませんかー。
デバッグできないので何ができるわけでもないけど。
0243デフォルトの名無しさん2015/12/31(木) 09:45:56.04ID:gJy9w4AY
新年問題きたか
0244デフォルトの名無しさん2015/12/31(木) 12:42:50.44ID:2anvHRU0
>>238 Java
http://ideone.com/ZAAHRo
0245デフォルトの名無しさん2015/12/31(木) 13:19:32.68ID:/Zl81OUL
数学的に解きたくなってしまうな・・・
0246デフォルトの名無しさん2016/01/01(金) 00:32:27.90ID:9G3HgWpt
>>238
http://ideone.com/XqmuP4
C++。ちょっとバグってたの修正。0〜8までしか選択できてなかった。
0247デフォルトの名無しさん2016/01/01(金) 00:34:34.13ID:9G3HgWpt
あけましておめでとうございます。
0248デフォルトの名無しさん2016/01/01(金) 01:02:54.81ID:yxxZ1kbC
おめでとうございます
0249デフォルトの名無しさん2016/01/01(金) 13:06:55.68ID:eZmmhQ/k
あけましておめでとうございます。今年もよろしく。
新年最初の問題なので簡単そうで難問に挑戦してください。

お題:直角三角形ABCがあります。
∠Cが直角とします。
ACの長さは5cmです。
ABの線上に点Pを取りました。
APの長さは2cmです。
ここでPからCに線分を引きました。
PCの長さを測るとちょうど4cmでした。
この直角三角形ABCのBCの長さは何cmでしょうか?
なるべく正確に出しなさい。
02502492016/01/01(金) 13:23:06.00ID:eZmmhQ/k
訂正
問題ミスです。簡単ですねw
0251デフォルトの名無しさん2016/01/01(金) 14:48:21.26ID:BqDq7bML
余弦定理よりcosA=13/20
1+(tanA)^2=(1/cosA)^2 よりtanA=√31/13
BC=5tanA=5√31/13
02522492016/01/01(金) 20:25:54.12ID:eZmmhQ/k
訂正お題:△ABCがあります。辺BCが底辺です。
(それぞれの角は90°以上にならない普通の三角形です。)
BCの長さは8cmです。
CからABの線上に垂線を下ろし点Pを取りました。
APの長さはちょうど1cmなりました。
さらにPからBCの線上に垂線を下ろし点Qを取りました。
PQの垂線の長さはちょうど3cmなりました。
さてBQの長さは何cmでしょうか?(注意:解が1つとは限りません。)
小数点以下6桁まで出しなさい。
0253デフォルトの名無しさん2016/01/02(土) 08:23:10.74ID:R8CGoUf/
>>238 Java
http://ideone.com/4144a7
5秒に収まらなかったでござる…だが精確にはなったと思う
02542492016/01/02(土) 16:54:58.87ID:qBZ4J2GA
どうもm(_ _)mごめんなさい、簡単そうで定規コンパスで絶対作図出来ない三角形
やっと思い出しました。(恐らくCADでも作図できない。)
お題:△ABCがあります。辺BCが底辺です。
(それぞれの角は90°以上にならない普通の三角形とします。)
三角形の高さは7cmです。
BCの長さは10cmです。
ABの線上に点Pを取りました。
APの長さは1cmです。
ここでPCの線分を引き長さを計るとちょうど8cmなりました。
さてPBの長さは何cmでしょうか?
小数点以下6桁まで出して下さい。
0255デフォルトの名無しさん2016/01/02(土) 18:31:25.74ID:R8CGoUf/
>>254 Java
http://ideone.com/NJYMYX
よーわからんがこれでええのん?
0256デフォルトの名無しさん2016/01/02(土) 21:36:26.87ID:qBZ4J2GA
>>255
Goodです。やはりプログラムは簡便に求まりますね。
確か、方程式にすると4次方程式だったかな。
0257デフォルトの名無しさん2016/01/02(土) 23:12:30.77ID:wbcMORBx
6次にはなったけど、4次になる?
どうやるの?
0258デフォルトの名無しさん2016/01/02(土) 23:57:06.31ID:wbcMORBx
6553600 x^6 -22937600 x^5 +30353664 x^4 -18575872 x^3 +5301408 x^2 -889056 x +194481 = 0
の解(の1個)に対して、
8x / (7-8x) が求める長さ
02592552016/01/03(日) 00:02:35.63ID:j2CXypF5
うん、さっぱりわからんww
0260デフォルトの名無しさん2016/01/03(日) 00:10:58.01ID:o15FFH+r
普通にpyを8xと置いて方程式を立てて整理しただけ
0261デフォルトの名無しさん2016/01/03(日) 00:35:54.90ID:TvE7D5Dq
>>254 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"
0262デフォルトの名無しさん2016/01/03(日) 02:58:05.62ID:o15FFH+r
>>248 をニュートン法で解くのが良い
100万桁くらい求められる
0263デフォルトの名無しさん2016/01/03(日) 15:15:54.32ID:gIFHPruM
>>254 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
0264デフォルトの名無しさん2016/01/03(日) 17:50:09.78ID:cbZEOl3j
249とかは、プログラミングの話題とはあんまり関係ないと思うんだが
0265デフォルトの名無しさん2016/01/04(月) 18:16:31.23ID:mH8w9NDh
正しい値
7.958999540670207177702263965366890868924353898555
7799452182420944176743383277819472811732768796743
8318898738257814428173492288313392264554506228517
666119...
0266デフォルトの名無しさん2016/01/04(月) 18:19:15.52ID:mH8w9NDh
>>200 の正しい値
1947.11807954634173960535758830613451914405126679271213882
533811635602148727751327773910199748046019861942974251070
215931647320721843150204685782788027005081182762594264937
472455162842376624181590647736961208708004693388297869382...

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

以下のオプションは取捨選択自由です
a. タブ文字への対応(矩形が崩れなければおk)
b. 右詰め、中央詰めの選択可能な実装
c. 日本語への対応
0268デフォルトの名無しさん2016/01/08(金) 01:21:33.67ID:XS9KJKDz
aは4タブか8タブかで宗教戦争に入るからなぁ。
bは割とできる方。
cはC++だとめちゃくちゃ大変。ウニコードコンテナ入らないと難しい。
あと、等幅フォントじゃないと難しい。
0269デフォルトの名無しさん2016/01/08(金) 01:37:44.81ID:2qKIN/Bt
>>268
ですね。追加で

d. a.で半角スペースに変換する場合、半角スペース数の選択可能な実装
0270デフォルトの名無しさん2016/01/08(金) 01:46:59.74ID:2qKIN/Bt
c. は確かに等幅フォントじゃないとアレですね、環境依存ですね
等幅フォント前提でおなしゃす
0271デフォルトの名無しさん2016/01/08(金) 02:58:33.88ID:XS9KJKDz
>>267
http://ideone.com/is1MNF
C++。" ab"は判断が分かれるので何もしなかった。
大体あってると思うが、適当に手を抜いた。かしこ。
0272デフォルトの名無しさん2016/01/18(月) 21:17:40.87ID:0oN+Zp9M
>>267 rust 1.5
http://ideone.com/eVtL4a
0273デフォルトの名無しさん2016/01/21(木) 23:31:52.04ID:XgHkIVxU
>>267 J
echo '*',~'*',('* ' , ,&' *')
0274デフォルトの名無しさん2016/01/21(木) 23:42:05.32ID:XgHkIVxU
>>273 なぜか途中できれちゃったのでもう一回

>>267 J
echo '*',~'*',('* ' , ,&' *')"1,;._2 toJ stdin ''
0275デフォルトの名無しさん2016/01/22(金) 00:43:09.92ID:So/btKLV
お題:ウラムの螺旋(素数螺旋)にて
上下左右が素数で囲まれている数(偶数なので素数でない)
の若い方から順番で1000番目の数を求めなさい。
(参考)
1番目  6
2番目 12
3番目 72
0276デフォルトの名無しさん2016/01/22(金) 00:57:27.35ID:iy9dE6+2
ttp://sim.okawa-denshi.jp/teikokeisan.htm
こちらのサイトの一番上の抵抗分圧の抵抗の組み合わせを抽出するプログラム
を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の組み合わせが膨大で現実的ではありません。
なにかいい方法はないでしょうか?
0277デフォルトの名無しさん2016/01/22(金) 00:58:35.84ID:864z2gB2
いつから1が素数になったんだ?
0278デフォルトの名無しさん2016/01/22(金) 01:02:29.55ID:864z2gB2
>>276
普通に全組合せでも一瞬で終わるとおもう
R2を決めれば、理想のR1が求まって、それ以上の最小の抵抗と、それ以下の最大の抵抗をR1とすればかなり絞れる
0279デフォルトの名無しさん2016/01/22(金) 01:12:29.69ID:So/btKLV
>>277
じゃあ
1番が12で
0280デフォルトの名無しさん2016/01/22(金) 01:16:09.22ID:864z2gB2
1000個以上存在することはわかってるの?
0281デフォルトの名無しさん2016/01/22(金) 01:17:14.81ID:LSwKLHy0
>>276
例えばE24の場合、抵抗値の全パターンは168。

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

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

こんな感じかな?
0282デフォルトの名無しさん2016/01/22(金) 01:20:02.16ID:So/btKLV
>>280
わかってる。2分で計算できた。
0283デフォルトの名無しさん2016/01/22(金) 09:42:10.08ID:XJFbEDkM
>>275 Java
http://ideone.com/k4Ixhh
あってるかどうかはしらんw
0284デフォルトの名無しさん2016/01/22(金) 18:37:16.70ID:864z2gB2
>>283
そのコードって答えを知ってるから書けるんであって、
それなら以下でも本質的には同じと思う
int main(){return 13833270;}
0285デフォルトの名無しさん2016/01/22(金) 19:08:13.72ID:XJFbEDkM
>>284が何を言いたいのかがわからん
0286デフォルトの名無しさん2016/01/22(金) 20:08:35.41ID:JaO9gEs7
上限を定めない素数生成をどうするかもポイントだろうに
16777216が上限と決めうちなのが気にくわないんだろ
0287デフォルトの名無しさん2016/01/23(土) 01:08:51.74ID:POOOZq0F
>>284
http://ideone.com/9Gd7Fg
これで満足か?
0288デフォルトの名無しさん2016/01/23(土) 09:54:57.98ID:ZDlTAjvh
君が満足ならいいんじゃない?
>>283でも
0289デフォルトの名無しさん2016/01/23(土) 10:01:36.42ID:ZDlTAjvh
>>284で満足ならそれでも

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

ちなみに、>>275のような数が無限個ある証明は現代では誰も出来ない
(出来たら歴史に名が残るレベル)
有限個である証明はもしかしたら出来るかも
0290デフォルトの名無しさん2016/01/23(土) 10:11:43.67ID:ZDlTAjvh
おれは出題者でも審査員でもないからな
おれの機嫌を伺う必要は無いよ
0291デフォルトの名無しさん2016/01/23(土) 16:49:42.83ID:264QGEmB
ケチつけといて、修正したら機嫌をうかがう必要はないとかキチガイかよw
0292デフォルトの名無しさん2016/01/23(土) 22:24:43.51ID:qXOiofIi
ただの感想だ
>>283で満足なら良いんじゃない?
出題者の意見は?
0293デフォルトの名無しさん2016/01/23(土) 22:39:56.92ID:kmeCYvLc
プログラマってアスペなのか何様?って奴多いよな
0294デフォルトの名無しさん2016/01/23(土) 22:53:14.83ID:vCzR1C5c
>>276
総当たりでやってもE192の場合でもそんなにかからず終わるよ。
0295デフォルトの名無しさん2016/01/23(土) 23:46:05.37ID:2OCOgJAF
>>292
感想より自分のコードは?
0296デフォルトの名無しさん2016/01/24(日) 06:47:36.82ID:9RGbGjss
http://ideone.com/HsphGH
特に関係ないのだけど、追記型素数検出器作った。
まあ、何かに使うわけじゃないけど、一応作ったのでアップ。
暇だったんだよ。
0297デフォルトの名無しさん2016/01/24(日) 09:45:56.17ID:a60MvDTP
>>292
>>284
0298デフォルトの名無しさん2016/01/24(日) 15:24:29.41ID:lhTTumXW
276ですが、
総当りでやってみたのですが、プログラムが悪いせいか
結構時間がかかってしまいます。
抵抗の系列の基数をdoble型の配列にしたのがよくない上に
dobleだと誤差がでて、丸めの処理を入れないといけなくなって
さらに時間がかかってしまう状況です。
0299デフォルトの名無しさん2016/01/24(日) 15:47:41.33ID:qvsZxuE5
>>298
E192の場合で書いてみた。これで試してみて

http://ideone.com/nwNvID
0300デフォルトの名無しさん2016/01/24(日) 16:09:41.53ID:5rhebbdV
総当たり168*168=28224パターンに時間がかかる298のコードが気になる
0301デフォルトの名無しさん2016/01/24(日) 17:35:41.78ID:lhTTumXW
>>300
すみません。補足します。
実はCだとそんなに遅くなかったのですが、
今はjavaでも書いてまして。
doubleの誤差を丸めるためにループ分ビッグデシマルで
四捨五入したら時間かかるようになってしまったんです。

>>299
ありがとうございます。
参考にします。
0302デフォルトの名無しさん2016/01/24(日) 17:38:57.83ID:qvsZxuE5
Javaで書いても、根幹部分は変わらないでしょ。
そんなに丸目誤差を気にするところないと思うけどな。
0303デフォルトの名無しさん2016/01/24(日) 20:12:14.88ID:qvsZxuE5
>>301
>>276で紹介したサイトなんだけど、
例えばE24で、1000V,と0.01Vを指定したときの答えがおかしくないですか?
こういう回答をする内部ロジックがとても気になってきました。
0304デフォルトの名無しさん2016/01/24(日) 20:26:12.91ID:lhTTumXW
>>302
たとえばdoubleでとったR1の配列を表示しようとしただけでも
110としてるはずなのに110.0000000001みたいに表示してしまうし、
原理的に3Ωと2.7Ωの組み合わせがOKだったら、30kと2.7kΩの
組み合わせでも誤差は同じはずなのに計算過程で小数点以下
が微妙に異なってしまい結果にでてこなくなったりしてしまいます。
0305デフォルトの名無しさん2016/01/24(日) 20:27:23.21ID:lhTTumXW
原理的に3Ωと2.7Ωの組み合わせがOKだったら、30kと2.7kΩの
→
原理的に3Ωと2.7Ωの組み合わせがOKだったら、3KΩと2.7kΩの
に訂正します。
0306デフォルトの名無しさん2016/01/24(日) 20:43:02.29ID:SFsRUuPo
decimal使うか丸め処理入れるか
0307デフォルトの名無しさん2016/01/24(日) 21:14:00.89ID:5rhebbdV
誤差が嫌なら整数(を使った分数)で計算すれば?
0308デフォルトの名無しさん2016/01/24(日) 23:02:11.31ID:lhTTumXW
276ですが、
極端に遅くなるのはバグでした。
すみません。
比較用の全リスト作成をループ毎で実行していたせいでした。
ということでデシマル使ってもそこまで遅くならないみたいです。
0309デフォルトの名無しさん2016/01/30(土) 01:00:32.10ID:WeGPRoDh
1000 13833270
2000 36950448
3000 62765388
4000 92605770
5000 122764008

これであってる?
0310デフォルトの名無しさん2016/01/30(土) 10:47:18.56ID:ClOdxYy7
>>309
出題者ですが1000はあってる。1000以上は計算していないが
1 12
2 72
3 1152
4 1452
5 1950
6 3672
・・・
を計算する数列なら恐らくあっている。
1000までの間隔の最小は12で最大は96360で不規則。
0311デフォルトの名無しさん2016/01/30(土) 21:26:25.48ID:PJcKfdaW
出題者じゃありませんが、合ってます
こんな感じ
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
0312デフォルトの名無しさん2016/02/02(火) 05:04:22.87ID:+n78UQ/o
定期age
0313片山博文MZ ◆T6xkBnTXz7B0 2016/02/02(火) 15:21:32.92ID:CI2b+eqR
お題:ファイルやフォルダの名前、ファイルの中身に含まれて
いる複数のタグ({{AppName}}や{{Authors}}など)を一括置換した結果の
フォルダを作成するプログラム。
文字コードは少なくともUTF-8をサポートせよ。
0314デフォルトの名無しさん2016/02/02(火) 16:02:19.62ID:5quLb8ti
>>313
環境依存なので嫌どす。
頑張ってください。
0315デフォルトの名無しさん2016/02/23(火) 11:02:15.31ID:ltvQNGjy
>>2
過去スレ
7 http://peace.2ch.net/test/read.cgi/tech/1429195275/

前スレを、テンプレに追加して
0316デフォルトの名無しさん2016/02/28(日) 07:21:11.33ID:052J+z1F
止まっちゃったなぁ。
最近はギトハブに上げてるわ。趣味プロを・・・。
0317デフォルトの名無しさん2016/02/28(日) 09:12:07.86ID:i+krYFXY
2ch過疎ってるねぇ
0318デフォルトの名無しさん2016/02/28(日) 12:30:35.23ID:Q5mbPZul
お題:ウラムの螺旋(続き)
ウラムの螺旋にて、素数が斜めに隣接(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
さて、複数の非素数が囲まれている閉じた図形は本当に存在しないのでしょうか?
それとも、数を多くすればどこかにあるのでしょうか?
プログラムで検証してみてください。
例えばいくつまで検証したが無かったとか、いくつで初めて出てきたとか
(その場合は囲む素数を列挙してください。)
0319デフォルトの名無しさん2016/02/28(日) 13:38:15.98ID:052J+z1F
今手持ちのライブラリで実現できそうだから32bitmaxまでの設計を試案してみた。
しかし、今日は寝ないといけないのでまた明日やるかも。確約はしないけど。
タートルグラフィック作ったんですよタートルグラフィック。
それと追記型素数検出器でできるかもなーと、青写真を描いただけだけど。
ただ、メモリが足りるかわからん。
0320デフォルトの名無しさん2016/02/28(日) 16:26:13.84ID:052J+z1F
http://light.dotup.org/uploda/light.dotup.org302431.png
眠れなかったので、コード書いてた。
デバッグがてらに16ビット求めてみた。
厳密な数字は計算してないのでどこで何番が出現したかは知らない。ただ絵を生成している。
メモリ18GBも使うアプリ作ったの初めてだよ。ホラブルホラブル。
一応、仕込んで寝るけど、落ちないようにお祈りしておこうかな。
0321デフォルトの名無しさん2016/02/28(日) 23:11:37.20ID:052J+z1F
終わらないよー。現在7時間で7000万カウント。
どんどんペース落ちてる。素数列挙重い・・・。Orz
0322デフォルトの名無しさん2016/02/29(月) 02:54:24.43ID:p8lHTaCd
いったん止めます。
0323デフォルトの名無しさん2016/02/29(月) 03:24:10.39ID:p8lHTaCd
レッツリトライ。アルゴリズムを見直した。
0324デフォルトの名無しさん2016/02/29(月) 04:56:48.77ID:p8lHTaCd
さらに見直し。速度低減をなくした。
結果的に10倍ぐらい早くなった。かな?
0325デフォルトの名無しさん2016/02/29(月) 05:17:02.90ID:I3HQeNlK
素数列挙ではダメで囲いサーチだろ。
0326デフォルトの名無しさん2016/02/29(月) 05:36:03.42ID:p8lHTaCd
画像生成するので目で確かめようと思ってます。
ただ、それが何番かはわかりません・・・。Orz
0327デフォルトの名無しさん2016/02/29(月) 06:39:18.63ID:wRRlOVxG
コマネチ!
0328デフォルトの名無しさん2016/02/29(月) 18:22:11.19ID:p8lHTaCd
うぅ。13時間回して1.9億カウント10日かかりますわ。
ソース公開するからやめていい?
0329デフォルトの名無しさん2016/02/29(月) 18:24:23.39ID:p8lHTaCd
並列化してもうまくいって二日か・・・。
0330デフォルトの名無しさん2016/02/29(月) 19:36:07.25ID:p8lHTaCd
26bitで再計算。こっちは2時間半で終わる予定。もーヤダー。
最新PCでも10日とか、俺ってタコ。
0331デフォルトの名無しさん2016/02/29(月) 21:54:34.42ID:gY4tu7UX
試しに28bitで計算させてみたけど1つも見つからなかったよ。

プログラムのバグじゃ無きゃ良いけど。
0332デフォルトの名無しさん2016/02/29(月) 21:59:36.65ID:gY4tu7UX
コードはこんな感じ
35行目のNに対し、2N bits空間の素数について調べる。
https://ideone.com/C2FulF
0333デフォルトの名無しさん2016/02/29(月) 22:24:57.60ID:p8lHTaCd
生成物:http://www.dotup.org/uploda/www.dotup.org760416.png
そーす:http://www.dotup.org/uploda/www.dotup.org760433.zip
やーっと終わった。26ビット計算。
縁に黒いのあるのは境界線系のバグの可能性が高いので精査よろしく。
燃え尽きたぜ。

>>331-332
先越された・・・。Orz
0334デフォルトの名無しさん2016/03/01(火) 04:48:06.87ID:/oGISoD7
>>333
中心に緑の点を打ってくれんかのう‥
0335デフォルトの名無しさん2016/03/01(火) 07:17:18.80ID:iONc0Loh
無いってことは規則的に循環でもしてるのか?
お前らリーマン予想解いたんか?
03363322016/03/01(火) 09:07:57.31ID:fxkt5PE4
>>333
なんだか無駄な処理が多いように見える
素数性判定を1個1個するよりエラトステネスの篩を使うとかしようぜ。

# 32bitで見つからんかった
03373322016/03/01(火) 22:38:46.95ID:fxkt5PE4
36bitで見つからんかった。
もう辞めるわ。
0338デフォルトの名無しさん2016/03/02(水) 06:33:06.17ID:2mV+3fZd
>>337
お疲れ様です。
出題者ですが、自分も無いんじゃないかなで
答えはわかりませんm(_ _)m
0339デフォルトの名無しさん2016/03/03(木) 15:01:26.06ID:6dBXddTu
お題:以下の式の□に+または-を入れて成立する式をすべて求める。
1□2□3□4□5□6□7□8□9=1
0340デフォルトの名無しさん2016/03/03(木) 18:29:47.32ID:t9z0z44u
>>339 Bash
http://ideone.com/qzonZ1
0341デフォルトの名無しさん2016/03/03(木) 19:58:32.83ID:SkSUFtdJ
お題:リストを重複の多い順に並び替える
重複個数が同じ場合はリストに登場するのが早い順とする

"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]
0342デフォルトの名無しさん2016/03/03(木) 20:40:38.92ID:rLQVucBG
>>339 Rust 今日来る1.7を待ちながら
https://play.rust-lang.org/?gist=121b9b2dc7ff0dbdacdb&;version=stable
0343デフォルトの名無しさん2016/03/03(木) 21:43:53.21ID:GzhlChId
>>341
C++
http://ideone.com/VFxH37
0344デフォルトの名無しさん2016/03/03(木) 22:03:26.12ID:LBKN89dL
>>341
Python3
https://ideone.com/Icn8Vj
0345デフォルトの名無しさん2016/03/03(木) 23:17:39.49ID:fGqRJK5H
>>341
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)
0346デフォルトの名無しさん2016/03/04(金) 15:28:38.54ID:7Zl+7QrX
お題:
配列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
0347デフォルトの名無しさん2016/03/04(金) 15:49:17.83ID:DX3xeB7o
>>346
楽すぎない?
03483462016/03/04(金) 16:33:45.39ID:7Zl+7QrX
このままだったら適当でもそんなに時間がかからないから自分でもできるんですが、
配列の数が多い場合だとどんなやり方があるのと思いまして。

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

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

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

結果:?

言語:
rubyかpython
0349デフォルトの名無しさん2016/03/04(金) 18:38:25.99ID:pEnisYEU
お前の業務?
0350デフォルトの名無しさん2016/03/04(金) 18:46:32.50ID:9GjrgxFP
>>348
http://ideone.com/LlnUM2
0351デフォルトの名無しさん2016/03/05(土) 19:06:23.29ID:CXefnPD8
>>341 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
0352デフォルトの名無しさん2016/03/06(日) 00:31:45.05ID:WEeJcjtE
>>339
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)
0353デフォルトの名無しさん2016/03/06(日) 15:24:05.92ID:/EFFTfcH
>>341 C
>>343 を参考に
http://ideone.com/7vKXrk
0354デフォルトの名無しさん2016/03/07(月) 10:29:38.19ID:+tQLURZK
>>350
ありがとうございます。自分で作ったのに比べると格段にすっきりしてます。
each_with_indexもto_hもgroup_byも初めて知りました。勉強になります。
0355デフォルトの名無しさん2016/03/11(金) 08:14:24.51ID:fvdAjVDF
あら、新規来ないと思ったら移動してたか。

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

>>336
別の目的で作ったコードなので、これ用というわけじゃなかったのです。
追記型がほしかったので作りました。
0356デフォルトの名無しさん2016/03/11(金) 08:17:33.24ID:fvdAjVDF
>>339
http://ideone.com/H6yZDw
C++。作ってあったコードをいじっただけなので変なコードになってます。
多分あってると思います。
0357デフォルトの名無しさん2016/03/11(金) 08:49:31.19ID:fvdAjVDF
>>346,348
http://ideone.com/VaNTzl
C++。デバッグはほとんどしてない。手を抜いたから遅いよ。
0358デフォルトの名無しさん2016/03/11(金) 09:16:36.16ID:fvdAjVDF
>>341
http://ideone.com/fpJYFp
C++。最近、あんまり効率考慮したコードが書けてないな〜。
0359デフォルトの名無しさん2016/03/11(金) 23:07:01.52ID:4PxK/ADg
変数A1, A2, A3, A4, A5 に整数が入っているとして、
全部同じか、そうでないかを判定したいのですが、
もっとも効率よい方法教えて下さい。
if(A1==A2&&A2==A3&&A3==A4&&A4==A5){
 ...
}else{
 ...
}
みたいなのしか思いつきません。
0360デフォルトの名無しさん2016/03/11(金) 23:55:40.35ID:fvdAjVDF
それ以外だとSIMD使うとかになりそうな・・・。
0361デフォルトの名無しさん2016/03/14(月) 11:38:06.21ID:7hslT/Gl
お題:平和な動物園を作ろう
http://www.hisenkei.net/~tohru/LaTeX/Poster/whatisQAPa4.pdf
0362デフォルトの名無しさん2016/03/14(月) 12:34:29.93ID:DTR/fUtN
宿題じゃね?
0363デフォルトの名無しさん2016/03/14(月) 13:20:59.04ID:W5wCaIkX
NP困難問題とか総当りするぞ
0364デフォルトの名無しさん2016/03/14(月) 19:24:58.74ID:MNFRtT1Y
>>361
相性度の大小が逆じゃない?相性が悪いほど相性度の数値が大きくならないと‥
0365デフォルトの名無しさん2016/03/14(月) 22:37:30.95ID:DTR/fUtN
よーしぱぱ、ねくすとぱーみゅてーしょんつかっちゃうぞー。
0366デフォルトの名無しさん2016/03/14(月) 23:24:37.10ID:DTR/fUtN
>>361
http://ideone.com/YXrksL
C++。かき捨て。デバッグ一切してないのでバグってたら御免。
だって、スカイレークのリリースで11秒かかるんだもん。
0367デフォルトの名無しさん2016/03/16(水) 00:17:53.91ID:a7Xs+q4N
不満度2160であってるんかね
0368デフォルトの名無しさん2016/03/16(水) 00:31:47.47ID:a7Xs+q4N
>>366
Calc内のstd::vector<DType> Angryとstd::vector<DType> Lengthが毎回作られてるから遅いんじゃね?
0369デフォルトの名無しさん2016/03/16(水) 00:40:17.12ID:6w3U5gAP
std::arrayを使ってはどうか
0370デフォルトの名無しさん2016/03/16(水) 01:13:48.78ID:PW1OJjjf
>>367
知らんよ。適当に書き捨てただけだし。

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

>>369
カスタマイズはご自分で。
特にこだわりはないから、MITライセンスでどうぞ。
0371デフォルトの名無しさん2016/03/16(水) 01:14:38.03ID:mfi8kYDa
>>367
俺も(2160,[6,9,3,8,7,4,1,5,10,2])になった。
0372デフォルトの名無しさん2016/03/16(水) 01:19:02.65ID:PW1OJjjf
あ、バグってら。たぶん。
2重ループの中ループの初期値間違ってるかも。
今、ひらめいた。
多分不満度結果の半分くらいだと思う。
まぁいいや。
0373デフォルトの名無しさん2016/03/16(水) 01:23:09.89ID:a7Xs+q4N
http://ideone.com/Jb9lqV
何も考えずにstd::vector<DType> Angryとstd::vector<DType> Lengthを外に出しただけで1.74s
0374デフォルトの名無しさん2016/03/16(水) 01:24:01.73ID:PW1OJjjf
http://ideone.com/aZUgRP
こうかもしれん。
静的変数にしたら超絶早くなった。
0375デフォルトの名無しさん2016/03/16(水) 01:25:15.50ID:PW1OJjjf
あいたたた・・・・。
まぁ、宿題を真面目にやる気はないんで、適当にごまかしてください。
0376デフォルトの名無しさん2016/03/16(水) 05:12:24.47ID:/v9qNF/y
arrayにしたらかえって遅くなった

http://ideone.com/mHquNO
0377デフォルトの名無しさん2016/03/16(水) 07:06:29.01ID:PW1OJjjf
>>376
>>374は微妙にコード最適化してるからねぇ。
リザルト変わってるし。
一応それとしては早くなってるんじゃないかと。
0378デフォルトの名無しさん2016/03/16(水) 11:48:35.59ID:j8iobkYx
>>361 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 "
0379デフォルトの名無しさん2016/03/16(水) 13:31:34.17ID:NZyRjPzO
>>376
VSでプロファイラ取ってみたらCalcとstd::next_permutationの2つで全体の半分位
時間食ってんな
特に単純ループのCalcが全体の1/3ほど食ってる
std::next_permutationは仕方ないとしてCalcはどこか改善できんかな
配列の配列の要素取ってるから出来るだけ連続したキャッシュに乗る単なる配列の方がいいのかも
連続してないクラスの配列の配列取るもんだから、こういう単純なループがインライン展開されてないのも
原因の一つかと
0380デフォルトの名無しさん2016/03/16(水) 15:44:17.23ID:NZyRjPzO
×インライン展開
○ループのアンロール
0381デフォルトの名無しさん2016/03/16(水) 17:59:47.71ID:PW1OJjjf
ねくすとぱーみゅてーしょん切って動的計画法に切り替えるとかがベターかもしれん。
アッチはメモリめちゃくちゃ食うけど、早い。
しかし、俺は動的計画法を理解してないのだ・・・。Orz
0382デフォルトの名無しさん2016/03/16(水) 18:03:36.31ID:VFJu78ei
>>361
なんか計算が微妙に合わないなと思ったら
ニシキヘビとカバの相性度が対象になってないわ

あー時間を無駄にした
0383デフォルトの名無しさん2016/03/16(水) 18:37:37.89ID:PW1OJjjf
>>361の資料いくつか間違いがあるっぽい。
不満度も重複に計算してるし、なんか仕様表として欠陥がある。
0384デフォルトの名無しさん2016/03/20(日) 08:30:05.20ID:e/Ot8AcY
お題:ダーツのダブルアウトの組み合わせ

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

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

参考動画 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言語 合ってるかちょっと自信ない)
0385デフォルトの名無しさん2016/03/20(日) 09:03:48.16ID:e/Ot8AcY
>>384
外した場合を考えてませんでした。

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

外した分も考慮して組み合わせを考えてみても面白いかもしれません。
(上の例だと[D5][0 D5][0 0 D5]に分かれることになります)
0386デフォルトの名無しさん2016/03/23(水) 03:54:21.46ID:SSV1rQef
お題:配列やリストの累積和を求める
90 10 54 3 6 22 77 78 75 16 -> 90 100 154 157 163 185 262 340 415 431
0387デフォルトの名無しさん2016/03/23(水) 04:48:29.17ID:dWvJC0mF
>>386
http://ideone.com/mik4Ne
C++。適当に書いた。結構短くかけたと思う。
0388デフォルトの名無しさん2016/03/23(水) 16:03:47.29ID:NkT0dmTC
>>386
haskell
map sum.tile.inits
0389デフォルトの名無しさん2016/03/23(水) 19:13:26.12ID:l5rfZdo+
>>386
C++
http://ideone.com/xtXdpi
0390デフォルトの名無しさん2016/03/23(水) 20:01:16.70ID:1UFsClL1
>>386 F#
Seq.scan (+) 0
0391デフォルトの名無しさん2016/03/23(水) 20:59:24.58ID:NkT0dmTC
scanいいなーと思って探してみたらhaskellにもあった
しかも標準ライブラリだった。

scanl1(+)
0392デフォルトの名無しさん2016/03/23(水) 21:07:05.34ID:NkT0dmTC
標準ライブラリじゃなくて、Preludeでした、すみません。
0393デフォルトの名無しさん2016/03/23(水) 21:24:19.74ID:jwiGmJgq
>>386 Python3
itertools.accumulate(L)
もはや標準ライブラリの紹介、ジェネレーターを返すので煮るなり焼くなりして使う
0394デフォルトの名無しさん2016/03/24(木) 13:07:49.70ID:5hctbNOo
>>386
C
http://ideone.com/QBhptw
0395デフォルトの名無しさん2016/03/24(木) 14:14:51.89ID:BKOgASSO
>>386
C++
http://ideone.com/98mJmC

長くなり過ぎワロタ
0396デフォルトの名無しさん2016/03/25(金) 23:54:10.03ID:aGSq1f0l
>>386
PowerShell
もっと短くできなかったものかなあ

function Accumulate() {
$t = @(); $args | % {$t += $t[-1] + $_}; $t
}
0397デフォルトの名無しさん2016/03/26(土) 00:50:33.88ID:/XUmDgkC
>>341
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
0398デフォルトの名無しさん2016/03/26(土) 00:57:47.15ID:/XUmDgkC
>>397
よく見たらselect Groupいらんかった

function SortGroupByCount($o) {
 $o.GetEnumerator() | group | sort Count -d | %{ Write-Host -n "$($_.Group) " }
}
0399デフォルトの名無しさん2016/03/26(土) 06:52:33.07ID:lsHN8L8S
@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}
0400デフォルトの名無しさん2016/03/27(日) 01:17:51.47ID:7ndxGIoM
>>386 Io
f := method(a,
s := 0
a map(v, s = s + v)
)
0401デフォルトの名無しさん2016/03/28(月) 00:26:57.54ID:K457tFb7
>>386
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}
0402デフォルトの名無しさん2016/03/28(月) 13:28:14.63ID:ObwLfSdF
>>386 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) "
0403デフォルトの名無しさん2016/03/28(月) 13:51:42.42ID:ObwLfSdF
>>341 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) "
0404デフォルトの名無しさん2016/03/29(火) 23:25:45.53ID:UAhYeBNf
sage>>401
>a.inject(0){|acc,e|acc+=e;p acc}
これって
a.inject(0){|acc,e|p acc+e}
でいいんじゃないの
0405デフォルトの名無しさん2016/03/30(水) 02:01:04.35ID:00BHzwP5
>>341
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
0406デフォルトの名無しさん2016/03/30(水) 05:39:51.79ID:ij4V+9+M
>>>341 Python3

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

print("".join(f("Hello world")))
0407デフォルトの名無しさん2016/03/30(水) 08:05:32.53ID:ZA7ECi0z
http://ideone.com/AjZqQq
どうでもいいんだけど、追記型素数検出器を書き直した。
爆速になった。イデオンで動かす感じで27ビット2.4秒。
要するにエラトステネスの篩なんだけど、思ったより早かったなぁ。
肝心の追記はまだ試してない・・・。Orz
0408デフォルトの名無しさん2016/03/30(水) 09:35:35.02ID:ZA7ECi0z
http://www.dotup.org/uploda/www.dotup.org798848.zip
ウラム螺旋に移植した。一応小さい解像度では試してるがデカいのは知らん。
素数列挙は超早くなったが、画像生成がまだ重ひ。
暇な人むけ。
0409デフォルトの名無しさん2016/04/01(金) 00:36:24.19ID:oZji/N9B
>>405
実行結果が
"333399955588662244117"
になってしまいます
0410デフォルトの名無しさん2016/04/04(月) 21:56:44.86ID:w9r+G2YN
お題:nで始まる最小の素数を求める
n=4 -> 41
n=777 -> 77711
n=403 -> 40343
0411デフォルトの名無しさん2016/04/04(月) 22:48:25.37ID:mfUNWB3k
>>410 Java
http://ideone.com/vV7Vs9
0412デフォルトの名無しさん2016/04/05(火) 21:02:49.40ID:V1X87Hw6
>>410 C
http://ideone.com/OtX2Wc
0413デフォルトの名無しさん2016/04/05(火) 21:05:24.30ID:ZlseDTbh
フリーセルソルバー
問題によっては1秒内で終るものもあれば3分かかったり
評価関数色々用意したがすべて1秒以内にできるようにしたいが...
0414デフォルトの名無しさん2016/04/06(水) 01:55:40.63ID:HGCmMFVS
>>410
http://ideone.com/eqFkbn
C++。コードの半分は以前のものを流用した。
なんかランタイムエラーになってるけど、よくわからん。
答えはあってると思う。
0415デフォルトの名無しさん2016/04/06(水) 02:00:45.11ID:HGCmMFVS
>>413
フリーセル自作しないといけないのでめんどくさい。
フリーセルってここ数年やってないなー。
0416デフォルトの名無しさん2016/04/08(金) 13:12:03.72ID:opSE2XAx
>>410
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
0417デフォルトの名無しさん2016/04/08(金) 20:22:10.75ID:JfY7ulrA
>>414
20 32 51 あたりの結果がおかしいんじゃないかな?
20 -> 2003になるところが2011になってる。
0418デフォルトの名無しさん2016/04/08(金) 20:59:33.30ID:OyooKXkj
>>410 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)
0419デフォルトの名無しさん2016/04/09(土) 00:47:11.89ID:8UqsZWln
>>417
あーそれバグですな。失礼。
ゼロ埋めは試してないのでそういう結果になってます。
思いつきもしませんでした。ごめんなさい。
どう書けばいいかちょっと妙案が思いつかないので保留。
0420デフォルトの名無しさん2016/04/09(土) 23:01:46.01ID:UGeAL8lU
お題:各桁の数字が奇数、偶数、奇数、偶数...のように
最上位の桁から奇数と偶数が交互並ぶ自然数を考える。
小さい方からn番目のこのような数を求める
n=1 -> 1
n=10 -> 18
n=1000 -> ?
0421デフォルトの名無しさん2016/04/10(日) 00:12:29.27ID:0xtkUQ3n
>>420 Java
http://ideone.com/V6gNa4
0422デフォルトの名無しさん2016/04/10(日) 03:27:38.19ID:GVWrhGxP
>>410
>>417
http://ideone.com/oAQHTp
C++。半ば暇なのとか色々まざってぶち切れ気味に書き直した結果。
なおったかな?
手を抜いて新規構造考えたまではよかったが結局古い道を選ばざるを得なかった。
ゼロパティングなんてふつう考えないがこういうケースもあるんだな。勉強になった。
以上。
0423デフォルトの名無しさん2016/04/10(日) 04:31:37.37ID:GVWrhGxP
>>420
http://ideone.com/W3pgTU
C++。なんかつじつまが合わないので>>421をの結果を参考にさせてもらった。
どうにも盛大に勘違いしてたようだ。
しかし、先頭が必ず奇数であるとは書いてないので混乱した。
0424デフォルトの名無しさん2016/04/10(日) 11:04:10.71ID:yfpRB3fX
>>420
@Mathematica

http://ideone.com/JtmqOO
0425デフォルトの名無しさん2016/04/10(日) 22:30:50.62ID:SKXiL2tD
>>420
F#
http://ideone.com/AKL4fU

お題スレ参加は半年ぶりくらい。。。
さらにF#の勉強開始して1ヶ月程度なので、ちょっとアレな感じかもしれませんが・・・
04264252016/04/10(日) 23:49:40.35ID:SKXiL2tD
>>420
F#
http://ideone.com/2pgKqN

たびたびスマン・・・ちょっとブラッシュアップしました
見た目がちょっとキレイになった
0427デフォルトの名無しさん2016/04/11(月) 19:11:43.16ID:U9aEtrvs
>>410 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 "
0428デフォルトの名無しさん2016/04/11(月) 19:31:44.71ID:U9aEtrvs
>>420 Squeak/Pharo Smalltalk

http://ideone.com/hCH8lT
0429デフォルトの名無しさん2016/04/12(火) 06:07:51.10ID:IvlGSXDX
たまにage
0430デフォルトの名無しさん2016/04/13(水) 23:39:53.84ID:xdVnQQp5
>>386
F# 勉強中

http://ideone.com/h9oJuH

ローカル環境だとList使って実装して動いたんだけど
ideoneだと動かなくて、調べたらideoneのF#のバージョンが低いのかもしれない
Arrayを使って書き直したら動いた
0431デフォルトの名無しさん2016/04/13(水) 23:56:54.81ID:49N/1I8V
>>420 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
)
0432デフォルトの名無しさん2016/04/14(木) 22:38:40.17ID:hWzlQv+3
お題:効率は無視してコードをできるだけ単純にしたバブルソート
0433デフォルトの名無しさん2016/04/14(木) 23:39:12.31ID:rplj63Da
>>4
F# 勉強中

http://ideone.com/UtnUWJ

プログラム自体はちゃんと動いてるっぽいが、
コードがF#的になんかいろいろと間違えてるような気がする・・・
0434デフォルトの名無しさん2016/04/15(金) 02:29:59.73ID:7tix3D6p
>>432
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
0435デフォルトの名無しさん2016/04/15(金) 05:28:13.90ID:UEolzSKG
>>432
http://ideone.com/Xjvay4
C++。残念なコードになった。こんなコード書きたくなーい。Orz
0436デフォルトの名無しさん2016/04/15(金) 21:30:03.75ID:uCMMU+7S
>>432 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
0437デフォルトの名無しさん2016/04/16(土) 01:41:35.90ID:8gZGJMh1
>>432

F# 勉強中

http://ideone.com/mHKjpZ

勉強中ゆえ(?)、>>436のコードとか正直よく分からん・・・
とりあえず、自分の理解できる範囲で書いてみたら
殆ど手続き型と変わらん作りになってしまったw
0438デフォルトの名無しさん2016/04/16(土) 21:13:38.41ID:uCxyrvwI
>>435
選択ソート?
0439デフォルトの名無しさん2016/04/16(土) 23:39:51.82ID:LiAu7R50
>>438
え?バブルソートでしょ。ちょっと調べてくる。
0440デフォルトの名無しさん2016/04/16(土) 23:43:07.03ID:LiAu7R50
https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%96%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88
これの疑似コードのちょっと悪い感じ?
シンプルにするためにオーダー悪くなってる。
0441デフォルトの名無しさん2016/04/16(土) 23:47:56.31ID:LiAu7R50
おっとー、交換条件がおかしいか。
そんなの些細な違いよ!
0442デフォルトの名無しさん2016/04/16(土) 23:56:43.13ID:8gZGJMh1
>>37
F# 勉強中

http://ideone.com/Q1ZFMv

2進⇔10進変換の復習ができてよかった
0443デフォルトの名無しさん2016/04/17(日) 20:39:22.16ID:cB2Ml+fZ
>>432
@Mathematica

http://ideone.com/hKhw79
0444デフォルトの名無しさん2016/04/17(日) 20:55:49.84ID:cB2Ml+fZ
調べたらこんなのもあった。

@Mathematica
「パターンと規則を使ってバブルソートアルゴリズムを実装する」
https://reference.wolfram.com/language/example/ImplementTheBubbleSortAlgorithmWithPatternsAndRules.html
0445デフォルトの名無しさん2016/04/17(日) 21:55:03.28ID:8hbCthlc
>>439
隣同士の要素を比較・交換するのがバブルソートだと思うけど
0446デフォルトの名無しさん2016/04/17(日) 22:19:43.05ID:chPSqpJT
>>410
F# 勉強中

http://ideone.com/3e3eOt

素数判定はWikipediaの同名項目に書かれてるCソースの丸パクリです・・・
あと、最初に挑戦したときは>>417と全く同じ症状だったので断念・・・
なんだか、イマイチな感じなので後でコッソリとリファクタリングするかもです
0447デフォルトの名無しさん2016/04/17(日) 22:30:35.60ID:DiLcHZEv
4×4の15パズルの、解ける盤面を作るのに、
空いているマスに、ランダムに100回ほど移動して、
盤面を作っている本を読んだが、

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

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

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

0,1,2
3,4,5
7,6,空
0448デフォルトの名無しさん2016/04/18(月) 01:55:07.16ID:v1FL9ptr
>>447
c++で適当に書いた。http://ideone.com/eJKGw8
以下を参照したが実装が少し違うのであってるかわからん
http://homepage2.nifty.com/TOMOMI/text/14-15.pdf
0449片山博文MZ ◆T6xkBnTXz7B0 2016/04/18(月) 14:39:50.41ID:6ER+VIie
15パズルの偶奇性
http://www.geocities.jp/m_hiroi/puzzle/parity.html
0450デフォルトの名無しさん2016/04/18(月) 15:49:05.97ID:vrHU0PJO
1と4と空白を所定に合わせて
あとは偶奇性
0451 ◆QZaw55cn4c 2016/04/18(月) 19:33:23.43ID:h2Yzyofc
>>440
いや,オーダーはやはりΟ(n^2)で変わらない.
どんなコードを想定していたの?
0452デフォルトの名無しさん2016/04/18(月) 20:53:46.45ID:zW4NHiQV
>>451
デバッグなしで書くと。
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
0453デフォルトの名無しさん2016/04/18(月) 20:57:27.48ID:zW4NHiQV
バブルソートからどうやってコムソート創造したんだよ。
と長い間思っていたが、ベースから間違っていた。Orz
0454デフォルトの名無しさん2016/04/18(月) 21:02:36.79ID:zW4NHiQV
オーダーっていうか、実行効率だな。些細なことだけど。
0455デフォルトの名無しさん2016/04/18(月) 22:43:04.02ID:h2Yzyofc
>>454
そうそう,オーダー表現は n!, n^2(n^c), nlogn, 1 などで表現する.定数倍は無視するんだ, 正確な定義は知らないがたぶん極限が収束するかどうかで見るんだろう.
>>452 もΟ(n^2)
0456デフォルトの名無しさん2016/04/18(月) 23:45:25.46ID:zW4NHiQV
>>455
なるほどわからん。
まぁ、そういう勘違いを積み重ねるだけの人生だった。Orz
いや、死んでないけどさ。
0457デフォルトの名無しさん2016/04/19(火) 00:24:10.72ID:5fHK1dXS
>>455
n>cのときg(n)<d*f(n)が成り立つようなc,dが存在すれば関数g(n)=O(f(n))って感じじゃね
イメージ的に
0458デフォルトの名無しさん2016/04/19(火) 01:07:43.67ID:ZMwgfCfL
数学で会話できる人かっこいいなー。
0459デフォルトの名無しさん2016/04/19(火) 17:18:01.67ID:93zFzB0Z
>>457
かっこいいー
もしかして大学出ですか?
0460デフォルトの名無しさん2016/04/19(火) 23:30:31.84ID:iVQa/t2n
>>341
F# 勉強中

http://ideone.com/TfJghl

なんかSQLいじってる気分になった
0461デフォルトの名無しさん2016/04/20(水) 16:20:19.87ID:bv/Q/2uG
>>432 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) "
0462デフォルトの名無しさん2016/04/20(水) 20:06:02.61ID:ARUL8qdV
>>432 c
https://ideone.com/NRFb3z
0463デフォルトの名無しさん2016/04/20(水) 22:18:59.00ID:+sWW+qMV
>>432 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
)
0464デフォルトの名無しさん2016/04/21(木) 13:03:18.17ID:5MDUs+Ed
>>432 Squeak Smalltalk (PositionableStream>#lastが無いのでPharoではNG。為念)
>>463 等を参考にループを >>461 よりシンプルにした版。

| 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) "
0465デフォルトの名無しさん2016/04/23(土) 01:46:03.15ID:3vhuTo00
>>432 Rust
https://ideone.com/gOLw6K
0466デフォルトの名無しさん2016/04/30(土) 21:02:40.94ID:f9UktSYx
お題:170の階乗の先頭10桁を求める
0467デフォルトの名無しさん2016/04/30(土) 21:05:19.27ID:f9UktSYx
お題:170の階乗の先頭10桁を求める
0468デフォルトの名無しさん2016/04/30(土) 22:13:46.81ID:ih9K+Dlj
>>466
Rubyで
p (1..170).inject(&:*).to_s[0,10]

# 実行結果
# "7257415615"
# [Finished in 0.1s]
0469デフォルトの名無しさん2016/04/30(土) 23:37:54.35ID:DWppbW2i
>>466
F# 勉強中

http://ideone.com/8Mcpmd

少しはF#分かってきたような、そうでもないような・・・
0470デフォルトの名無しさん2016/05/01(日) 00:25:30.55ID:3nNxkvii
>>467
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
0471デフォルトの名無しさん2016/05/01(日) 01:30:49.70ID:PVJV1HwV
>>466 Io
Io> a:=1;for(i,1,170,a=a*i);(a/(10**(a log10 floor-9)) )floor asString(10,0)
==> 7257415615
0472デフォルトの名無しさん2016/05/01(日) 05:22:39.61ID:k8Y2io+T
>>466 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'
0473デフォルトの名無しさん2016/05/01(日) 07:00:07.79ID:Jp0j1ueK
>>466 Squeak/Pharo Smalltalk

170 factorial asString first: 10 "=> '7257415615' "
0474デフォルトの名無しさん2016/05/01(日) 09:24:40.00ID:i1tpwyoc
>>466
@Mathematica

170 // Factorial // ToString // StringTake[#, 10] &
0475デフォルトの名無しさん2016/05/01(日) 09:37:49.41ID:tKi6j9CT
匿名通信(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的に分散され、特定のサーバーに依存しません
p
0476デフォルトの名無しさん2016/05/01(日) 14:28:23.75ID:XECCJNE2
>>466 F#
printfn "%s" <| (Seq.reduce (*) {1I..170I}).ToString().[..9]
0477デフォルトの名無しさん2016/05/01(日) 21:02:15.79ID:PVJV1HwV
>>466 R
> substr(sprintf("%f",prod(1:170)),1,10)
[1] "7257415615"
0478デフォルトの名無しさん2016/05/02(月) 07:53:08.55ID:JrdSjVB4
お題: 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?
0479デフォルトの名無しさん2016/05/02(月) 11:11:18.30ID:ybUtGNCd
>>478 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->96 . '9916779348...'} "
fn value: 2. "=> {#x->2 . #n->96 . '9916779348...'}"
fn value: 3. "=> {#x->3 . #n->261 . '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...'} "
0480デフォルトの名無しさん2016/05/04(水) 08:45:55.56ID:GSs/8kUx
>>478
@Mathematica

http://ideone.com/4LfZ8E
0481デフォルトの名無しさん2016/05/04(水) 21:22:23.48ID:WvfFbq7M
>>478 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
0482デフォルトの名無しさん2016/05/04(水) 22:35:23.32ID:qgnKpMBO
//┏┳┳┳┳┓
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┗┻┻┻┻┛
//上記の6X6の通路を左上から右下へ到達する時に
//同じ場所を通らずにたどり着くルートは何通りあるか?

嫌儲のプログラミングスレで盛り上がってるこの問題どうすかね
0483デフォルトの名無しさん2016/05/04(水) 22:37:44.31ID:h5NbJg5S
おねえさん・・・
0484デフォルトの名無しさん2016/05/05(木) 00:59:50.49ID:muAMBl7W
>>482
以前、お題スレ Part6の984 の問題で作ったものをそのまま流用。
左上から部屋番号1,2,3,...36(右下)として、部屋同士の接続を定義。
言語C++: http://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通り)
0485デフォルトの名無しさん2016/05/05(木) 01:32:14.77ID:muAMBl7W
>>482
元のスレ見にいったら、問題にもう1行あったよ
//ただし、同じ交差点は何度通ってもいい
これあるなら>>484は取り消しします
0486デフォルトの名無しさん2016/05/05(木) 02:48:54.24ID:PH/e0da8
>>478
F# 勉強中

http://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
0487デフォルトの名無しさん2016/05/05(木) 15:33:45.25ID:SQKTrz0M
>>485
それは発展版の方でですね

最初は482で次問が交差点を何度もです
ちなみに交差点を何度もではかなり気をつけないとCではスタックオーバーみたいですね
0488デフォルトの名無しさん2016/05/05(木) 17:16:35.94ID:PH/e0da8
>>482
F# 勉強中

http://ideone.com/31G3C2

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

末尾再起にするため、やむを得ずmutableを使ったのだが、もっとうまいやり方はあるのだろうか・・・・
0489デフォルトの名無しさん2016/05/05(木) 18:24:52.73ID:ZdWJcfSQ
>>487

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

手元で時間がかかったがn=7も確認
0490デフォルトの名無しさん2016/05/06(金) 07:33:20.07ID:+i3ap6tD
>>489

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

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

数列辞典で引ける程度でたので、これかな
https://oeis.org/A013990
0491デフォルトの名無しさん2016/05/07(土) 23:52:58.29ID:qCADCCRG
>>466
http://ideone.com/P7XHHt
C++。スレが専ブラの画面外に行ってたのでチェックしてなかった。
C++で作った割には誤差が出なくてよかった。たぶん。
>>468つかって検算させてもらった。thx.
0492デフォルトの名無しさん2016/05/08(日) 00:03:58.77ID:r8xFef3w
>>482はC++やってる人がいるのでパス。
それ以上のコードはかけなさそう。Orz
0493デフォルトの名無しさん2016/05/08(日) 00:04:20.89ID:r8xFef3w
あ、日付かわった。
0494デフォルトの名無しさん2016/05/08(日) 21:11:37.01ID:WelKIVWp
お題:1から16までの連続した自然数をA,Bの二つのグループに分ける。
Aの要素の総和とBの要素の総和が等しく、Aの要素の2乗の総和と
Bの要素の2乗の総和も等しく、さらにAの要素の3乗の総和と
Bの要素の3乗の総和も等しくする。
0495デフォルトの名無しさん2016/05/08(日) 23:07:10.56ID:3m2Dr+7v
{2,3,5,8,9,12,14,15}
と
{1,4,6,7,10,11,13,16}
だけ?
0496デフォルトの名無しさん2016/05/08(日) 23:23:03.64ID:3m2Dr+7v
あ、共通部分があってもいいんだな

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

まだありそう
0497デフォルトの名無しさん2016/05/08(日) 23:38:34.59ID:r8xFef3w
5秒では終わらんなー。まぁ暇だからやってみようかなぁ・・・。
0498デフォルトの名無しさん2016/05/09(月) 00:30:22.73ID:pUXvKib1
>>494
http://ideone.com/gzHjPK
C++。一応こういうコードを書いてみた。ろくにデバッグできなかったのでバグってる可能性が高い。
コンビネーションほしー。16!とかほぼ無理なので、絶望した。
0499デフォルトの名無しさん2016/05/09(月) 01:03:48.60ID:yYTJyO7B
Haskellならマイクロ秒のオーダーで計算できますよ?
未だにC++に固執するのは宗教ですか?
0500デフォルトの名無しさん2016/05/09(月) 01:22:53.38ID:pUXvKib1
特に宗教じゃないけど、ほかの言語を覚える気にならないだけ。
真面目にゲーム作るときに使おうと思って覚えたのが動機だから、ゲーム基準なの。
constexprがもうちょっと高機能になったらいいなーと思ってる。
0501デフォルトの名無しさん2016/05/09(月) 01:25:19.28ID:pUXvKib1
>>499
というか、煽ってないでコードだしてよ。
ハスケール読めないけど。
0502デフォルトの名無しさん2016/05/09(月) 03:01:39.37ID:2YrVj7rY
>>496
グループ分けだから共通は無しじゃないの
0503デフォルトの名無しさん2016/05/09(月) 15:09:43.81ID:9C2z/2Vf
>>494
http://ideone.com/kcTdlh

16だけだと寂しかったので、答えが多数出てくる24も追加してみた。
1は必ずAグループに入るようにしている。
(A,Bを特定した時、全く逆の組み合わせも存在するが、今回は表示してない)
0504デフォルトの名無しさん2016/05/09(月) 20:05:26.31ID:t+bzhO52
>>494 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)

正の数をひとつのグループ、負の数をもうひとつのグループというこで
0505デフォルトの名無しさん2016/05/10(火) 00:08:20.11ID:E+X0dc0Z
>>494
http://ideone.com/3boCML
C++。重複なし版。相変わらず16!は解決してない。
>>503 これ早いなー。すごいなー。Orz
0506デフォルトの名無しさん2016/05/10(火) 19:41:46.28ID:2fCl6+HU
31の場合は何通り?
0507デフォルトの名無しさん2016/05/10(火) 20:56:18.35ID:0+ZmZvza
40通り
0508デフォルトの名無しさん2016/05/10(火) 21:01:50.08ID:TdrM46fl
>>494
@Mathematica

http://ideone.com/TPGKEh
0509デフォルトの名無しさん2016/05/11(水) 02:23:15.24ID:zcj8oTfj
>>494 Java
http://ideone.com/J6hgFy
0510デフォルトの名無しさん2016/05/11(水) 05:59:04.20ID:71pkMQnc
>>509
爆速だね。Core i7 4Gで
n=40で3646
n=47で173351
n=48で291482
個見つかった。所要時間1分くらいか
0511デフォルトの名無しさん2016/05/11(水) 21:27:01.99ID:zcj8oTfj
listupがメモ化とかで速くできそうな気がするけど頭が動いちょらん
0512デフォルトの名無しさん2016/05/12(木) 19:27:31.92ID:fkcp4aHY
>>494 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))) "
0513デフォルトの名無しさん2016/05/13(金) 20:53:50.90ID:6rd1u1gc
>>494
@Mathematica, リファクタリング後

http://ideone.com/QFce6S
0514デフォルトの名無しさん2016/05/14(土) 16:09:50.16ID:LEy4i3xG
>>494
スレ汚しスマソ

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

http://ideone.com/gvxa8t

testGroup の条件を書き換えて、枝刈り。
計算時間が半分に。
0515デフォルトの名無しさん2016/05/22(日) 16:51:30.35ID:QTcku1ZG
昔ダイナムで雪降ってたのでゴム長で行って
朝一大ヤマト1/498で一発入ったら艦長が
『戦闘配置につけ!』って出たのを思い出した。
2連で終わったけど。
0516デフォルトの名無しさん2016/05/22(日) 16:52:01.87ID:UXQjq3mC
どこの誤爆だw
0517デフォルトの名無しさん2016/05/22(日) 16:59:37.57ID:ZCteEarO
そういや昔のパチンコ雑誌はZ80のアセンブラの解析記事とか載ってたなw
0518デフォルトの名無しさん2016/05/25(水) 05:32:56.17ID:4GANdY7B
>>482
@Mathematica

http://ideone.com/4FZXRG
0519デフォルトの名無しさん2016/05/27(金) 20:18:44.31ID:2AExo9Gt
お題:n角形を隣接行列で表す
0520デフォルトの名無しさん2016/05/28(土) 04:06:02.91ID:t8+ZEFcK
>>519
http://ideone.com/GcMBSl
C++。こういうこと?かしらかしらごぞんじかしら。
0521デフォルトの名無しさん2016/05/28(土) 12:17:02.17ID:MAzFniKU
全然違うし何でそういう発想になったかわからん
0522デフォルトの名無しさん2016/05/28(土) 16:19:17.65ID:XDR4NRkL
おれはこれ以外に解釈できない
0523デフォルトの名無しさん2016/05/28(土) 18:12:21.03ID:t8+ZEFcK
>>521
線引いてみればわかるけど、N角形になるよ。
問題文が端的過ぎる。
0524デフォルトの名無しさん2016/05/28(土) 18:15:28.59ID:t8+ZEFcK
出題者でてきてー。
0525デフォルトの名無しさん2016/05/29(日) 01:35:58.98ID:l7Z0+24R
マジで出題者どこ行った。解こうにも解けないじゃないか。
ダメならダメでいいから出てこい。
0526デフォルトの名無しさん2016/06/01(水) 20:35:38.46ID:4RXp3JbO
>>519 J
f=:(_1&|. +. 1&|.) @ = @ i.

f 4
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
0527片山博文MZ ◆T6xkBnTXz7B0 2016/06/04(土) 22:13:22.70ID:9azu721e
お題:C/C++とWindowsに限定。レジストリ全体を記憶し、
変更があれば変更点を表示する。
Windows 2000で動作しなければならない。
GUIは必要ない。Enterキーを押したタイミングで差分を表示する。
報酬3000円。銀行振込、WebMoney、ビットキャッシュ、Amazonギフト券の中から選べる。
ただし、メールで連絡が取れること。
0528デフォルトの名無しさん2016/06/04(土) 22:13:38.13ID:9azu721e
あげ
0529デフォルトの名無しさん2016/06/05(日) 00:23:56.68ID:bEHxSIM9
DB全体のスナップショット機能と同じやん
0530デフォルトの名無しさん2016/06/05(日) 07:15:50.35ID:VJ6TUrY4
ブラック企業かよw
0531デフォルトの名無しさん2016/06/06(月) 08:41:23.90ID:6BPcdog/
Windows7以上?ではレジストリにアクセス権が設定できるんですが?
0532デフォルトの名無しさん2016/06/14(火) 17:21:21.81ID:ylR65uF/
N個の具材を3つ選んでハンバーガーにトッピングすることが出来ます。
合計285通りの組み合わせが出来ます。
必要な具材の最低個数と最高個数を求めてください。
0533デフォルトの名無しさん2016/06/14(火) 19:38:38.50ID:Eohj2elN
286個では
05345322016/06/14(火) 20:27:38.82ID:Wnl/zMEq
いいえ285であってるはずです
「マクドナルド 裏メニュー」の285通りから問題を作りました
0535デフォルトの名無しさん2016/06/14(火) 21:21:13.32ID:F0Va16Jg
この出題じゃその例にはならないぞ
0536デフォルトの名無しさん2016/06/14(火) 23:44:42.75ID:43s0H04y
>>532
ちょっと言ってる意味が解らないですね。
オーダーしてくる確率が決まってるならまだしも、イーブンに注文してくるなら最高値と最低値は一緒になるのでは?
初見でそう思った。

C++にコンビネーションを・・・。Orz
0537デフォルトの名無しさん2016/06/14(火) 23:46:00.30ID:sBc8t+V7
ハンバーガーにも種類があるのはググって分かったけど、それでも何を解答させんとしているのかはよくわからないね

http://ideone.com/etvHKm
0538デフォルトの名無しさん2016/06/17(金) 19:43:08.29ID:ZJPgf/2E
>>534
表に1個有るんだろ。
計286通り。
0539デフォルトの名無しさん2016/06/26(日) 01:19:32.87ID:BV3PG4b+
お題: 2つの異なる字幕ファイルをマージする
映画の字幕ファイルが2つ(日本語版と英語版)あります
また、2つのファイルはそれぞれ別の人が同じ映画から作成しました
ファイルのフォーマットは以下のように決まっています

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

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

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

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

1つのファイルには台詞が1000以上あります
作成者が異なるのでぞれぞれのファイルの台詞の時間はバラバラに記録されています
近しい時間帯の台詞が出来るだけ綺麗に連なるように2つのファイルをマージしてください
0540デフォルトの名無しさん2016/06/26(日) 01:27:48.70ID:ifKGTnOo
データをフォーマット通り読んでってソートするお仕事?
0541デフォルトの名無しさん2016/06/26(日) 01:33:13.09ID:BV3PG4b+
>>540
作者が異なるので記録する台詞も個人差(詳細だったり大雑把だったり)があります
ソートしたらダメでした…(´・ω・`)
0542デフォルトの名無しさん2016/06/26(日) 01:37:53.46ID:ifKGTnOo
データがなさ過ぎてなんとも言い難いなぁ。一抜け。
0543デフォルトの名無しさん2016/06/26(日) 01:55:05.38ID:ifKGTnOo
まぁ、ぼやっと思う感じでは、
1、ファイルAソート。時間で。
2、ファイルBソート。時間で。
3、両方を別バッファに取り込み。
4、一本化バッファ作成。
5、バッファA[i]の時間とバッファB[j]の時間を比較。
6、小さいほうを一本化バッファの後ろに追加。
7、追加したほうのインデックサをインクリメント。追加しなかった方はそのまま。
8、5にループ。
9、余ってるほうを全部突っ込む。
end。
って感じに思えるが。メンドクセー。
0544デフォルトの名無しさん2016/06/26(日) 02:35:16.23ID:xbYmT3r1
>>541
ソートしてダメならプログラムでやる意味ないじゃん
よくわからんお題だな
0545デフォルトの名無しさん2016/06/26(日) 08:12:11.46ID:a+kSsv7i
>>539
二つのファイルをマージするとどんなメリットがあるの?
0546デフォルトの名無しさん2016/06/26(日) 13:48:43.10ID:kOUAeqMS
とりあえずそのファイルをどこかに置いて見れるようにしとけよ。話はそれからだ。
0547デフォルトの名無しさん2016/06/26(日) 14:42:47.48ID:VC0ezbuZ
>>539
発生開始時刻と発生終了時刻の相加平均値でソートしてはどうでしょうか?
0548デフォルトの名無しさん2016/06/28(火) 21:40:42.79ID:JU4eR3PY
レス遅れてすまんが、お題としてはイマイチだったかな
ttp://www.opensubtitles.org/ja/subtitleserve/sub/5904174
ttp://www.opensubtitles.org/ja/subtitleserve/sub/6525137
>>545
英語の練習がしやすい
0549デフォルトの名無しさん2016/06/29(水) 02:19:12.68ID:sVTYBpM+
タダの準備不足。
人を動かす材料が足りない。
0550デフォルトの名無しさん2016/06/29(水) 23:31:32.20ID:OPqpBspr
そうか。すまんかった
0551デフォルトの名無しさん2016/06/29(水) 23:49:35.70ID:frOOdHyw
入力だけじゃなく出力も提示しないとわからんよ
0552デフォルトの名無しさん2016/07/03(日) 21:08:39.04ID:KvQk5E4z
>>539
JAVA ソース
ttp://ideone.com/vxIcvL

jarなど
ttp://www1.axfc.net/u/3686951.zip
0553デフォルトの名無しさん2016/07/05(火) 11:21:22.75ID:ALuHk1mL
レスがつかないのでいいのか悪いのかさっぱりわからん
無責任なやつだな
0554デフォルトの名無しさん2016/07/21(木) 20:01:41.38ID:rb76Qzme
お題:
いくつかの非負整数を区切り記号を略して書き並べてあります。
区切り記号の挿入箇所の組み合わせは全部で何通りありますか?
0555デフォルトの名無しさん2016/07/21(木) 20:05:24.57ID:rb76Qzme
>>554
あれ、例が抜けてた↓

"150301" -> 18
"150031" -> 16
"015000" -> 8
"2432902008176640000" -> ?
0556デフォルトの名無しさん2016/07/21(木) 23:07:45.64ID:8Nf0PhCE
>>554-555
C++
あってるかどうかは知らん
http://ideone.com/F28LZS
0557デフォルトの名無しさん2016/07/22(金) 12:57:04.31ID:M/7Z6G3a
>>555
↓のような分割かと思ったが・・・

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
…
0558デフォルトの名無しさん2016/07/22(金) 15:32:49.00ID:JXjdchXx
>>554
C言語 http://ideone.com/rIkKvv
例からすると区切り無しも含むのですかね
0559デフォルトの名無しさん2016/07/24(日) 06:35:51.96ID:el9EgK1j
>>554
Haskell
http://ideone.com/PsZ9vn
0560デフォルトの名無しさん2016/07/24(日) 23:19:04.90ID:IHR53C+P
久しぶりにこのスレ開いたけど
何か過疎ってね?
0561デフォルトの名無しさん2016/07/24(日) 23:34:50.13ID:253cC3eo
俺は最近はyukicoderとかpaizaとかでお題解いてるよ
0562デフォルトの名無しさん2016/07/25(月) 03:46:54.86ID:0UVAPYM3
「プログラマ脳を鍛える数学パズル」
2016、技術書部門の大賞、受賞作

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

Ruby, JS などで書いてある
0563デフォルトの名無しさん2016/07/28(木) 11:19:50.57ID:XvUIxyvW
>>554
http://ideone.com/r93ULh
http://ideone.com/PrKxyj
C++。数字が合わんがな。何か間違えてるかなぁ。
ルールの把握があいまいなのであってるか知らん。
もしかしたら、stringstreamでやってるwhileでカウントすればいいかもしれん。
それと対象ナンバーが64ビット超えたらたぶん動かない。
まぁいいや。せっかく作ったのでそれだけ認めてくれ。
0564デフォルトの名無しさん2016/07/28(木) 20:19:22.73ID:IfzkZoT6
>>563
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通りだと思うけど
0565デフォルトの名無しさん2016/07/29(金) 03:27:05.93ID:11+SH8DV
>>554
>>564
http://ideone.com/JHsovR
http://ideone.com/gz38Ko
C++。いじってみたけど、数字が合わず。何が間違ってるのかもわからない。
ルールを把握できないって、ぼけてきてるのかなぁ・・・。Orz
最近、思考してないし。
0566デフォルトの名無しさん2016/08/01(月) 04:25:27.15ID:4Q/skcnH
>>554
Pythonの勉強がてらやってみました
http://codepad.org/vszENnrW

>>565
最も愚直な方法は考えられる分け方を全て列挙し、その中から認められない分け方を除外して数えればいい
1,5,03,01の03と01のように二桁以上で先頭が0であるような分け方は認められないと思われる
0567デフォルトの名無しさん2016/08/02(火) 02:02:12.74ID:YLg91Q2/
>>554
>>566
http://ideone.com/8TbvLG
C++。やっと数字があった。
皆さま、愚かなワタクシメをお許しください。ラーメン。Orz
0568デフォルトの名無しさん2016/08/07(日) 22:49:29.00ID:K0guDqg3
>>554
>>566
http://ideone.com/ftx1M2
C++でさっくりと。
>>556にあるファイルからの入力受け取る方法いいすね
0569デフォルトの名無しさん2016/08/09(火) 11:14:00.48ID:92/o3tci
>>568
checkの返り値はboolなのにそのまま足しちゃうの?
0570デフォルトの名無しさん2016/08/10(水) 03:08:08.02ID:inQKn798
>>569
bool型はtrue=1,false=0なので次のコードは同じ
if(flag)ans++;
ans+=flag;
0571デフォルトの名無しさん2016/08/10(水) 07:54:16.90ID:rXBd1I+h
>>570
ん?
0572デフォルトの名無しさん2016/08/10(水) 11:18:58.21ID:eCSVoJoG
三流のROM専だけど、trueはnot0と思ってたし、trueを数値として扱うのは違和感すごいの。
0573デフォルトの名無しさん2016/08/10(水) 11:21:37.91ID:eCSVoJoG
少し訂正
boolを数値として使うのは違和感
0574デフォルトの名無しさん2016/08/10(水) 12:30:53.29ID:Gdje5e7d
言語による。Cなら普通におk
0575デフォルトの名無しさん2016/08/10(水) 12:35:35.23ID:j6o9ee9V
普通でもおkでもねえよw
0576デフォルトの名無しさん2016/08/10(水) 19:34:37.97ID:87OBHkNz
c++のbool型のtrueは1
if文のtrueがnon0であることとbool型の定義は別ってことを理解していれば使っていいんじゃないの?
http://ideone.com/s3uiYC
0577デフォルトの名無しさん2016/08/10(水) 20:05:43.36ID:6wlopmtf
じゃあ\0とNULLを混同して使っても(実際こんな人わんさといるけど)何も問題ないな
0578デフォルトの名無しさん2016/08/10(水) 20:20:05.28ID:R4BTC7dG
つか0(0x30)とNULL(0x00=\0)を混同だろ、お前まで間違えても何ら問題ない
0579デフォルトの名無しさん2016/08/10(水) 20:22:43.02ID:5BOEqgkW
Pythonのboolはintのサブクラスで数値演算に混ざっても警告やエラーなし
互換性捨てたPython3でもそのままでintから独立させる気配がない
0580デフォルトの名無しさん2016/08/10(水) 20:29:02.04ID:sHDHYt88
偽ではないものが真です。言語によって偽の定義が異なる。
0581デフォルトの名無しさん2016/08/10(水) 20:48:14.92ID:qB+vEzvD
if(韓国人の言うこと==true)
return false;
else if(中国人の言うこと==true)
return false;
else
return true;
0582デフォルトの名無しさん2016/08/10(水) 20:48:26.57ID:O/fexyuH
>>575
C に bool はない,だから普通にOKだ,C99 はしらんが
0583デフォルトの名無しさん2016/08/10(水) 21:08:56.81ID:6wlopmtf
>>578
言ってるそばから混同してる奴が出て来たけど、
\0とNULLはまったく意味が違う。
0584デフォルトの名無しさん2016/08/10(水) 21:12:11.66ID:6wlopmtf
>>582
型としてboolはなくても真偽の概念はある。
0585デフォルトの名無しさん2016/08/10(水) 21:23:29.03ID:6bflnq0j
boolをintにキャストして使うとお前らが怒ることはわかった
じゃあなんのためにキャスト出来るようになってるん?数値として扱うべきでないならキャストを禁止すべきだ
0586デフォルトの名無しさん2016/08/10(水) 21:56:03.25ID:6wlopmtf
>>585
別に目的があってキャストできるようにしてるわけじゃない。
単にif文等を機械語に翻訳する時に都合がいいからfalseを0にしてるだけ。
0587デフォルトの名無しさん2016/08/10(水) 22:17:30.88ID:aUoQ61q7
ブール値が無い、C89でも、実質的なブール値という概念がある。
真偽値を返す、比較演算 if(a == b)

これを、if(int型)などと書くのは、MISRA-Cなどではコーディング規則違反

偽は0だが、真は0以外で、1とは限らないかも

\0 は、NUL文字。文字列の最後に使う、番兵。
NULL は、無効なポインタで、0とは限らないかも
0588デフォルトの名無しさん2016/08/10(水) 22:33:17.47ID:20SNjYRS
C++なら問題ないよ
検索すりゃ分かるけどbool->intは0/1になることが言語仕様で決まってる
0589デフォルトの名無しさん2016/08/10(水) 22:48:50.81ID:6wlopmtf
>>588
だからそういう「問題」じゃないってばw
そういう話ならNULLと\0も混同しても問題ないことになるよ。
0590デフォルトの名無しさん2016/08/10(水) 23:10:16.36ID:aUoQ61q7
まあ、0, 1 とか暗号みたいな数値は、使わない方がいい

false, \0, NULL, 全ビット0 など、意図がわかるようにすべき
0591デフォルトの名無しさん2016/08/11(木) 00:10:30.93ID:yzOHsc1F
「私」は「言語」として考えたらboolをboolとして使いたいし、intとしては無しだと思ってます。
でも「プログラミング」としては有りだと思ってます。
宜しければ、bool論争をここで終結としませんか?
0592デフォルトの名無しさん2016/08/11(木) 09:47:35.13ID:EgW5aVb5
return (韓国人の言うこと)?false:!中国人の言うこと;
0593デフォルトの名無しさん2016/08/11(木) 10:23:51.85ID:TQheNK/m
>>585
べつにキャストする必要はない
0594デフォルトの名無しさん2016/08/11(木) 18:35:49.99ID:5aKqGy8m
くだらないことで争ってんな
正しく動きゃいいんだよ、んなもん
0595デフォルトの名無しさん2016/08/12(金) 12:46:03.49ID:W0ObG9Gv
これだから型安全でない言語は糞なんだよ
0596デフォルトの名無しさん2016/08/14(日) 11:38:09.80ID:uRifR0NT
YukiCoderたのしー。
3問目を解説見ながら解いた。
幅優先探索は苦手だ。Orz
0597デフォルトの名無しさん2016/08/14(日) 19:57:07.32ID:HA8B0Krx
縦H横Wのマスの中に現れるa→b→cの順に辿れる道は全部で何通りあるか出力しなさい。
存在しない場合は-1と出力しなさい。
移動は縦横のみできる。斜めに移動はできない。
H==W、3<=(H,W)<=1000とする

問題例
--c-
cab-
cbac

答え 4
--c-|----|--c-|----
-ab-|----|--b-|-a--
----|cba-|--a-|cb--
0598デフォルトの名無しさん2016/08/14(日) 20:29:36.17ID:itqO338w
>>597
問題例に不備があるじゃないか。
0599デフォルトの名無しさん2016/08/14(日) 21:16:51.46ID:HA8B0Krx
訂正


問題例
--c-
cab-
cbac
----

答え 4
--c-|----|--c-|----
-ab-|----|--b-|-a--
----|cba-|--a-|cb--
----|----|----|----
0600デフォルトの名無しさん2016/08/15(月) 01:18:23.97ID:ATOVcA82
全てのbの上下左右にあるaの数*cの数を足せば良いんだな。
0601デフォルトの名無しさん2016/08/15(月) 05:08:48.91ID:VvgCdVoy
>>597
>>599
http://ideone.com/AW6YTZ
C++。Yukiだとサンプルしか通らなそうなコード。
まぁ、これが俺の地だしなぁ。
俺は俺にガッカリだよ。Orz
0602デフォルトの名無しさん2016/08/15(月) 05:19:59.98ID:VvgCdVoy
>>597
>>599
http://ideone.com/oUQbfM
C++。>>600メソッド??
ちょっとすっきりした。
0603デフォルトの名無しさん2016/08/15(月) 13:40:01.81ID:YWGtPoG/
お題

ズッカーマン数(Wikipediaより)
ズッカーマン数(-すう、Zuckerman number)は自然数で、各桁の数字の総乗が元の数の約数
であるような数である。例えば315は各桁の数字の積が 3×1×5=15 であり、15は315の約数で
あるので315はズッカーマン数である。

ズッカーマン数を最初から100個求めよ。
0604デフォルトの名無しさん2016/08/15(月) 13:49:14.49ID:/RUSPZDT
梅干し食べて...

なんか力技でやるしかなさそうな感じだな
0605デフォルトの名無しさん2016/08/15(月) 14:10:04.63ID:VvgCdVoy
>>603
http://ideone.com/t6xXhj
C++。あってるかな?
0606デフォルトの名無しさん2016/08/15(月) 20:11:53.65ID:NvOrOVSG
こんな感じでいいのか?
http://ideone.com/NJ6rGr
0607デフォルトの名無しさん2016/08/15(月) 20:38:01.87ID:/9WWz1kS
なぜいいと思った
0608デフォルトの名無しさん2016/08/15(月) 21:21:48.34ID:cQHsobNS
C
http://ideone.com/peczRr
0609デフォルトの名無しさん2016/08/16(火) 01:56:24.06ID:fBfaZTKr
>>603 F#勉強中@半年

https://paiza.io/projects/Zt_Tw1LaKtiB93Fi6dWkJQ

Wikipediaに書いてある数字との照らし合わせはしました
あと、paiza.ioのを貼るのは初めてなのでうまく貼れてるかどうか・・・
ちなみに、F#は主にyukicoderで鍛えてます、少しは分かってきたかも
0610デフォルトの名無しさん2016/08/16(火) 02:08:11.71ID:q0PyZcrj
>>597 >>600のやり方で C言語
http://ideone.com/wkEP9Z

>>603 C言語
http://ideone.com/Pxskoy
0611デフォルトの名無しさん2016/08/16(火) 14:43:03.45ID:9WgV32AQ
>>603
@Mathematica

http://ideone.com/tq9juG
0612デフォルトの名無しさん2016/08/17(水) 08:55:07.31ID:5k4XIPv4
>>603 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
0613デフォルトの名無しさん2016/08/20(土) 20:32:51.59ID:vgYTWLvl
>>603
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
0614デフォルトの名無しさん2016/08/21(日) 01:56:15.80ID:bS7dpt9A
プログラミングのお題で言語間のコード量競うってか
いかに数学的アルゴリズムを考えるスレか?
0615デフォルトの名無しさん2016/08/21(日) 04:07:51.39ID://fxd30H
競プロの故郷じゃよ。なんて。
俺算数で解いてるんだぞ・・・。Orz
0616デフォルトの名無しさん2016/08/21(日) 07:18:31.83ID:DtQd7MF/
問題を解く早さ、

計算時間の速さ、

コードの短さ、

コードの美しさ、

色々あるね。
0617デフォルトの名無しさん2016/08/22(月) 00:07:09.67ID:x59Y2UAa
お題
フィボナッチ数列の先頭に近い数字の合計が、入力値になるように求める。
入力値の例--->出力
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
0618デフォルトの名無しさん2016/08/22(月) 00:37:32.44ID:RW2M/REU
30人の生徒がいるクラスで、同じ誕生日の子がいる、確立を求めて

1年を365日とする
0619デフォルトの名無しさん2016/08/22(月) 00:49:12.07ID:3wW8ItwJ
>>618

「確立」は求められないけれど,「確率」なら求められる…というのはさておき,

同じクラスで誕生日が同じ子がいる確率の問題は,
森口繁一『応用数学夜話』
に解説があるのだが,その本が本の山の中に
埋もれていて,いま探し出せないのが残念。
06206182016/08/22(月) 01:14:27.85ID:RW2M/REU
1 - 全員が異なる誕生日である確率

で求めて
0621デフォルトの名無しさん2016/08/22(月) 01:18:50.34ID:38ySFfYc
http://ideone.com/54J6iS
C++。数列に1を含んでいるので、例のようにやろうとすると全部1で分解しようとする。かも。
例がちょっと懇意なので、俺にはこれが限界やったわ。
0622デフォルトの名無しさん2016/08/22(月) 01:27:31.25ID:38ySFfYc
>>621 -> >>617
安価忘れた。
0623デフォルトの名無しさん2016/08/22(月) 01:53:51.46ID:38ySFfYc
>>618
>>620
http://ideone.com/BPf9XW
C++。確率の問題なんてだーいきらい。あってるか知らんけど大体こんな感じか?
0624デフォルトの名無しさん2016/08/22(月) 02:06:45.94ID:P8rthkb+
>>620を出された時点で理論的確率を求めて欲しいのは明らかだけど、それだとプログラムを組む意味がない
要するにスレチ
0625デフォルトの名無しさん2016/08/22(月) 02:15:23.57ID:38ySFfYc
>>624
算数でそれは無理なので、俺には無理だー。
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
0626デフォルトの名無しさん2016/08/22(月) 02:31:12.36ID:ze8O1aG1
>>624
いやいや、簡単な数式で表現できても人力で数値解を求めるのは
大変なんだから、それってまさに計算機の出番ではあるよ。

お題として楽しいかどうかは別にしてw
0627デフォルトの名無しさん2016/08/22(月) 03:39:29.64ID:PiS6AnEW
>>618 Java
https://ideone.com/Qmn3oZ
0628デフォルトの名無しさん2016/08/22(月) 03:55:16.97ID:38ySFfYc
あ、勘違いしてた。>>623の結果逆だ・・・。Orz
0629デフォルトの名無しさん2016/08/22(月) 10:05:22.23ID:6SPK9Sy9
お題
やじろべえの左右の腕に交互に重りを吊るしていく
ただし、左右の重りの重量差が10gを超えたらバランスを崩してしまう
重りの重量が順に与えられるので最後までバランスを保ったままかどうか判定せよ
0630デフォルトの名無しさん2016/08/22(月) 10:32:46.57ID:38ySFfYc
>>629
右と左を引き算してABS取ればいいのはわかるんだけど、重りのサンプル無いかい?
0631デフォルトの名無しさん2016/08/22(月) 18:46:34.40ID:FFKbVhI+
>>617 Common Lisp
https://ideone.com/A0NXTP

64個でタイムアウト
遅すぎるよねこれ
もっと速く解ける気がするけど分からなかった
0632デフォルトの名無しさん2016/08/22(月) 19:23:14.70ID:3wW8ItwJ
>>618

森口繁一『応用数学夜話』(ようやく見付けました)によると、この問題は、von Misesとのことです。
結果だけ書くと、k人からなるクラスで誕生日がだれひとりとして同じにならない確率は
(1/n^2):*(n!/(n-k)!)
で、kはひとクラスjの人数、nは場合の数で、閏年を考えなければ
n=365となります。
この本によると、この確率が0.5を超えるのは
k=23
の時だそうです、つまり24人以上のクラスからなる学校では、
誕生日の重なるクラスが多くなるということになります。
0633デフォルトの名無しさん2016/08/22(月) 22:39:24.73ID:RW2M/REU
24人で、0.5を超えるのか。不思議な感覚だな

漏れの感覚では、24人で、0.15ぐらい
0634デフォルトの名無しさん2016/08/23(火) 00:06:33.47ID:nbfEIr8Y
>>617
DP?

C言語
https://paiza.io/projects/NpNLBMGoxV-tDcmm4CycBQ
https://out.paiza.io/projects/NpNLBMGoxV-tDcmm4CycBQ/output.txt
0635デフォルトの名無しさん2016/08/23(火) 00:26:56.57ID:nbfEIr8Y
>>634
出力整形した

https://paiza.io/projects/rXzmboNl1gbBZflK_j8BrA
https://out.paiza.io/projects/rXzmboNl1gbBZflK_j8BrA/output.txt
0636デフォルトの名無しさん2016/08/23(火) 05:09:43.19ID:1XZ2ZUlZ
http://ideone.com/RLDrpn
ベンチマークしようとしたら、先に出力エラーになった。
0637デフォルトの名無しさん2016/08/23(火) 13:54:31.44ID:nbfEIr8Y
>>636
5,6,7は>>617の結果と違うようだけど
0638デフォルトの名無しさん2016/08/23(火) 14:03:36.67ID:nbfEIr8Y
そうかフィボナッチ数列はすぐ大きくなるから項数はそんなに大きくならないからgreedyでもいいのか
オーダーのことは未だよく分からないけど
たぶんDPよりgreedyのほうがいいのかな?
>>636がgreedyで求めてたので何となくそう思いました
0639デフォルトの名無しさん2016/08/23(火) 14:13:51.47ID:nbfEIr8Y
>>638
あ、greedyだから題意を完全に満たさない結果になってるのか
やはりメモ化探索か
brute forceはキツそうだし
0640デフォルトの名無しさん2016/08/23(火) 14:21:20.64ID:1XZ2ZUlZ
>>637
ちょっとよくわからないけど、バグかなぁ。>>634とかできてるしなぁ。
俺が悪かった。忘れてくれ。
0641デフォルトの名無しさん2016/08/23(火) 14:47:31.03ID:nbfEIr8Y
自分の解答>>634>>635は題意を満たしてに可能性があるかも
先頭に近い数字という条件を
構成数が最も多くなるうち最初に見つかったものという勝手解釈したが
そうじゃなく辞書順的に小さい数を含むほうを選択する必要あるなら構成数が最大になるとは限らないかも
俺も自分の解答>>634>>635を取り下げます
0642デフォルトの名無しさん2016/08/23(火) 14:52:37.15ID:nbfEIr8Y
>>641
となると、今のところbrute forceしかアイデアない
0643デフォルトの名無しさん2016/08/23(火) 15:46:43.07ID:8juwdgVG
>>617
C++で貪欲法
フィボナッチ数を小さなフィボナッチ数に分解するところはもっといいやり方があると思う
https://paiza.io/projects/4gT7Vzo3rwr-d2V0q_vK3w
0644デフォルトの名無しさん2016/08/23(火) 16:13:11.72ID:1XZ2ZUlZ
>>643
おぉ、すごいな。上手い。
0645デフォルトの名無しさん2016/08/23(火) 16:59:17.93ID:nbfEIr8Y
>>641のさらに考察してDPで問題なさそうだと思って>>635のを辞書順に選択するように変えてみたけど結果変わらなかった
https://paiza.io/projects/E3IiR1BZVilAaTnBITTY-w
https://out.paiza.io/projects/E3IiR1BZVilAaTnBITTY-w/output.txt

>>635とのdiff取った、同じと出た
https://paiza.io/projects/R-vSh83dQSqE0kq0WGagTA
0646デフォルトの名無しさん2016/08/23(火) 17:06:57.99ID:Z+VJIz/8
>>617 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)} "
0647デフォルトの名無しさん2016/08/23(火) 17:07:07.82ID:nbfEIr8Y
>>643
何これめっちゃすごいな・・・
フィボナッチ数列に関する定理があるのか
0648デフォルトの名無しさん2016/08/23(火) 22:31:24.67ID:xhPJKCKw
>>617
Rubyで。
https://ideone.com/3XA5Qw
0649デフォルトの名無しさん2016/08/24(水) 00:02:28.52ID:hGPUmbYi
良問まとめありますか?
0650デフォルトの名無しさん2016/08/24(水) 00:04:45.93ID:IQL/zjWi
競プロなんてどうでしょう
0651デフォルトの名無しさん2016/08/24(水) 06:31:48.04ID:emWUYHC0
>>617 C言語
http://ideone.com/3s4puY
>>618 C言語
http://ideone.com/n6mblc
>>629 C言語
http://ideone.com/bPehld
0652デフォルトの名無しさん2016/08/24(水) 12:37:09.73ID:IQL/zjWi
>>651
N =< f(0) + f(1) + ... +f(k) となるkを見つけたときにf(k-1)が>>617の題意を満たすフィボナッチの数の1つで再帰的にN := N - f(k-1)で貪欲法的に求められるのか
理屈が全然分からん
数学は奥が深すぎ
0653デフォルトの名無しさん2016/08/24(水) 15:34:01.41ID:DjG9ToKL
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が存在しててもおかしくなさそうだけど大丈夫なのかー
0654デフォルトの名無しさん2016/08/24(水) 16:45:04.33ID:38RcxOvs
>>652 N:=N-f(k)やんか!ならf(k+1)>N-f(k)>=f(k-1)になるから帰納法で展開可能なことはすぐに証明出来そうだね
おそらく>>651はフィボナッチ数の大きい方から順に、自然数をフィボナッチ部分列で展開できるギリギリの大きさのフィボナッチ数を選んでる
0655デフォルトの名無しさん2016/08/24(水) 17:22:27.06ID:hGPUmbYi
そもそも理解があやしいから確認したいが・・・
フィボナッチ数列でなるべく小さいNをとって、集合{f(1), ・・・,f(N)}で
その部分の和をある数と一致させるって話?
0656デフォルトの名無しさん2016/08/24(水) 17:30:24.68ID:hGPUmbYi
>>655とすると、Nの下限は>>651のように総和を計算すればすぐ求まるな。
しかし、任意の数はフィボナッチ数列の部分集合の和で表現できるかとか、
上でf(N)を引き算した数がN-1以下の部分集合の和で表現できるとかは簡単か?
06576512016/08/24(水) 20:06:38.41ID:emWUYHC0
>>654の言うように展開できるぎりぎりの数を順に選んでます。

とりあえず、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)の数列の組み合わせで表せるということに
なるんじゃないのかなぁと。正直全く自信ないです。

自分が書いたコードは、求めたフィボナッチ数列を配列に保存していたけど
その必要全くなかったですね。 http://ideone.com/oUIvN8
0658デフォルトの名無しさん2016/08/24(水) 20:50:39.06ID:Gt3DCYIG
>>617
@Mathematica

http://ideone.com/jtWvsW
0659デフォルトの名無しさん2016/08/25(木) 19:55:54.39ID:1lQyPTY4
>>656
>上で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
0660デフォルトの名無しさん2016/08/25(木) 19:59:23.41ID:1lQyPTY4
>>659
>となり仮定より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)}
0661デフォルトの名無しさん2016/08/26(金) 00:23:54.59ID:iNPRC5gr
速度が向上したのかどうか計るためのベースとして簡単なベンチマークテスト作った。
適当にウェイトいれて、機種・コンパイラの偏りをなくすようにしてみた。
http://ideone.com/KceBs4


ここ参考にした。
http://www001.upp.so-net.ne.jp/y_yutaka/labo/math_algo/calcbench.html
06626612016/08/26(金) 00:28:49.61ID:iNPRC5gr
ちょい疑問がシフト演算は早いという定説はあるとおもうが。
実際、計測比較してみると足し算、引き算よりも遅い。
オーバーフローが原因で遅くなってる気はするが・・・
0663デフォルトの名無しさん2016/08/26(金) 00:34:55.42ID:46yZwIqt
>>662
コンパイラが最適化しちゃうからじゃね?
0664デフォルトの名無しさん2016/08/26(金) 00:47:03.70ID:iNPRC5gr
最適化対策として、計算結果を引き継ぐことで、ループ無視は防止できてるはず・・・
0665デフォルトの名無しさん2016/08/26(金) 01:07:03.15ID:iNPRC5gr
計算途中で、内部でオーバーフローか型変換が起こって遅くなってると予測してみて、
整数値で扱えない範囲にならないように、足し算のところビットORで代替してみたけど同速度だった。
単純にシフト演算が遅いだけっぽい。
0666デフォルトの名無しさん2016/08/26(金) 01:29:53.53ID:rbtqc2qT
gccのo3でコンパイルしてみたけど確かにShiftが一番遅かった
どうしてこうなるかはアセンブリみれば一瞬でわかるよ
0667デフォルトの名無しさん2016/08/26(金) 01:53:05.11ID:rbtqc2qT
shiftも早くなるようにおまじないかけといたよ
http://ideone.com/t1qv2O
0668デフォルトの名無しさん2016/08/26(金) 01:54:53.90ID:rbtqc2qT
すまんローカルだと早くなってたんだが
Shift 421.0ms → 101.0ms
0669デフォルトの名無しさん2016/08/26(金) 01:56:20.02ID:iNPRC5gr
アセンブラはわからないけど。
内部で型変換がおってる説が間違いとすると、計算回数だろな・・・
シフト測定はシフト+足し算をしてて、足し算測定のほうは足し算一つだけ。
足し算測定のほうを、足し算1つ上乗せして公平にしてみる。
0670デフォルトの名無しさん2016/08/26(金) 02:01:15.45ID:CVrNr9ea
clang 3.7のCで動かしたらこんなんなったんだがどういうことだ?
http://ideone.com/5Cjgpy

ちゃんと動いてないのか最適化でばっさりなのか
0671デフォルトの名無しさん2016/08/26(金) 02:02:55.47ID:CVrNr9ea
clangの方が普通に最適化が効いて、gccの方が効いてないだけか?
0672デフォルトの名無しさん2016/08/26(金) 04:26:31.05ID:Mbltetpr
gcc6.2.0使ってコンパイルしたらAVX2命令使いまくりで激速になった
0673デフォルトの名無しさん2016/08/26(金) 22:19:12.01ID:iNPRC5gr
良いベンチマーク考案中。
実際の問題を解いたプログラム / 基準ベンチマーク 
の時間比がほぼ一定が良い。機種、コンパイラによらず。
0674デフォルトの名無しさん2016/08/27(土) 01:33:01.65ID:UE0kbjNO
>>661
最適化対策のための出力っていうのが良く分からん
あと、各々の命令の重さの係数(weight)はどうやって決めてるの?
0675デフォルトの名無しさん2016/08/27(土) 01:40:19.24ID:7nFiTNgH
必要の計算は無視される最適化に対応。、
意味はないけど最後まで計算を引き継いで出力する。各計算を和でつなぐ。
0676デフォルトの名無しさん2016/08/27(土) 01:42:17.34ID:7nFiTNgH
必要のない計算は・・・
0677デフォルトの名無しさん2016/08/27(土) 02:40:42.60ID:UE0kbjNO
なるほど、そういうことか。
シフト命令が遅いのは変数kでシフトしてるからじゃないかな。
kビットシフトするのではなく1ビットシフトをk回繰り返した方が早くなるかも?
0678デフォルトの名無しさん2016/08/27(土) 11:38:15.27ID:2qjvRKJV
つづきは個人のブログかチラシの裏でやれ
0679デフォルトの名無しさん2016/08/27(土) 12:50:08.51ID:8oHlLwTt
お題: 数字が書かれた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))
=> ?
0680デフォルトの名無しさん2016/08/27(土) 14:21:38.42ID:/lPBBpET
同じ数字の紙は何枚あってもいいの?
全部違う数字?
入っている数字はmより小さいの?
0681デフォルトの名無しさん2016/08/27(土) 14:28:53.21ID:/lPBBpET
ああ、ごめん。忘れてw
0682デフォルトの名無しさん2016/08/27(土) 14:54:16.82ID:9mBmz7KO
>>679
http://ideone.com/6XEpQt
C++。モンテカルロ。サンプル数少なすぎて収束してない。
確立はよくわからん。
0683デフォルトの名無しさん2016/08/27(土) 15:28:29.92ID:9mBmz7KO
>>682 をちょびっと整形した。
http://ideone.com/l9zgpe
0684デフォルトの名無しさん2016/08/27(土) 16:50:12.54ID:FbbA5YyG
>>679 Java
http://ideone.com/6BEAKE
0685デフォルトの名無しさん2016/08/27(土) 18:38:18.89ID:F1nYMYS3
>>679 C(C99)
http://ideone.com/IRsTjt
0686デフォルトの名無しさん2016/08/27(土) 23:43:10.10ID:8oHlLwTt
>>629 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
0687デフォルトの名無しさん2016/08/28(日) 21:20:07.72ID:9IFYhCBA
あなたは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枚なのでこうなります
0688デフォルトの名無しさん2016/08/28(日) 21:22:27.37ID:gdb/jxff
ちょっと財布を想像して吹いたw
0689デフォルトの名無しさん2016/08/28(日) 21:26:10.45ID:CCZyZi8n
>>687
それ1000枚の条件いるの?
0690デフォルトの名無しさん2016/08/28(日) 22:06:25.06ID:sxo5kh14
>>687
Rubyで。
https://ideone.com/fRleLH
0691デフォルトの名無しさん2016/08/28(日) 22:43:07.98ID:FpzTx2tv
>>687 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 '()))
""
0692デフォルトの名無しさん2016/08/29(月) 00:10:36.80ID:G+hsDqDY
>>687
C++で
http://ideone.com/p4dwIW
>>689
まあ本質的な意味はないけど一応1000枚の条件で答えは変わるぐらい
N=500500
0,0,0,0,5,1000
0693デフォルトの名無しさん2016/08/29(月) 10:41:31.05ID:6rwIECPC
まえにあった問題の解法が不明。
nに対して、2次元平面の円で、その円周上の整数点がちょうどn個となる円の最小半径を求める問題。
0694デフォルトの名無しさん2016/08/29(月) 16:45:06.30ID:fFx5B9de
>>693
問題関係のレスと自分が書いたコード見直したが、何やってるのかわけわからんくなってたから困るww
0695デフォルトの名無しさん2016/08/30(火) 01:05:58.62ID:0bBTSjL7
整数 a(0)、・・・、a(n)が与えられた時、
すべてのi に対して、 a(i) + c ≡ 0 (mod m)が成り立つような
m、c >1を求める問題。
0696デフォルトの名無しさん2016/08/30(火) 01:20:54.99ID:XiF8vPmR
はい。
0697デフォルトの名無しさん2016/08/30(火) 03:54:00.29ID:ccTd05WG
>>693
前スレからもってきたけど円の中心点の情報は書いてくれよ、めちゃくちゃ重要だろ

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
0698デフォルトの名無しさん2016/08/30(火) 07:35:24.70ID:o3zijpP7
>>679 Common Lisp
http://ideone.com/yyVA7g
>>687 C++11
http://ideone.com/rNuPAy
0699デフォルトの名無しさん2016/08/30(火) 11:00:38.72ID:bKDKxVCe
>>697
そのn=5は間違えてるから訂正しとく
N=5 (1/6,1/6) R=5.892557 R^2=625/18
0700デフォルトの名無しさん2016/08/30(火) 11:59:20.10ID:0bBTSjL7
>>697

個数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の積分解を一発で求めるアルゴリズムはしらんが、この方針で間違いないはず。
0701デフォルトの名無しさん2016/08/30(火) 12:11:16.96ID:0bBTSjL7
まちがってた・・・・これと比較してみたら。 たとえば
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
でいいらしい。

>>700を2で割ったらほぼ合ってるかと・・・





118 名前: 投稿日:2015/05/14(木) 19:56:36.53 ID:rp22TBsk
>>117
俺が計算したのではこんなん
ただし半径256以上は最小じゃないかも知れないから注意
http://ideone.com/2WBTbl
0702デフォルトの名無しさん2016/08/30(火) 12:28:56.64ID:0bBTSjL7
>>701によると、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個のはず。
0703デフォルトの名無しさん2016/08/30(火) 12:45:23.63ID:0bBTSjL7
324/7 = 46.28、
324/8 = 40.5なので、
>>702でaは8以上だと、41点以上生成できないはず・・
aは7もしくは14で決め打ちして。2倍するのだけは特別でこれは解個数を変化させない可能性。>>701と同様。
しかし2倍しないほうがよリみつかりやすいはず・・
適当にa、bをとれば
( 7x + a)^2 + ( 7x + b)^2 = 5^2 * 13^2 * 17^2 * 29^2 の形で41点生成できると予想。
0704デフォルトの名無しさん2016/08/30(火) 13:17:27.27ID:bKDKxVCe
5^2 * 13^2 * 17^2 * 41^2で出てくるのは39点と42点じゃないかな?
数学の事よくわからないけど。
0705デフォルトの名無しさん2016/08/30(火) 13:23:30.96ID:bKDKxVCe
おっと間違えた
5^2 * 13^2 * 17^2 * 29^2 の形で出てくるのが39点と42点な
0706デフォルトの名無しさん2016/08/30(火) 13:55:35.84ID:0bBTSjL7
いや数学的な裏付けなどなく、たんなる予測だけど・・
いま検証コード作成中。
0707デフォルトの名無しさん2016/08/30(火) 15:04:25.03ID:0bBTSjL7
>>705
そのとおりだったわ。どういう理屈?
あと、計算が間違ってなければ>>702は解なしで、41点でてくる方程式は

(7x-1)^2 + (7y)^2 = 5^2 * 13^2 * 17^2 * 41^2 だった。
0708デフォルトの名無しさん2016/08/30(火) 15:29:46.99ID:bKDKxVCe
>>707
理屈はわからん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になるんかな。
0709デフォルトの名無しさん2016/08/31(水) 16:46:14.27ID:9ufvv7Gu
円の格子点のやつは、P=NPとかいった計算理論の話題とみて、難しいクラスでは?
素因数分解とか、巡回セールスマン問題と較べても計算困難では?
( Ax + B)^2 + ( Ax + C)^2 = R^2は半径はR/Aだけど、RもAも無限大までしても、最小半径になる可能性があって。
一つ解けた半径が、最小値なのかすら調べられない気が・・
AかRに上限あるとでも証明できれば別だが。
0710デフォルトの名無しさん2016/08/31(水) 19:35:22.89ID:9ufvv7Gu
たとえば、2点のときの最小半径は0.5らしいが・・・ 方程式は(2x)^2 + (2y-1)^2 = 1で。

a 十分大で、r/a < 0.5 を満たすとして、( ax -b )^2 + ( ay -c )^2 = r^2の格子点数が2点のみとなる場合はないのか?
 
0711デフォルトの名無しさん2016/08/31(水) 19:38:46.35ID:9ufvv7Gu
>>710が合ってた場合、最小半径はいくらでも小さくできると予想。
>>710が合ってない事を証明できる人いる?
0712デフォルトの名無しさん2016/08/31(水) 19:40:33.34ID:9ufvv7Gu
すまん。そんなわけがなかった。半径が小さすぎれば図を書いてみて格子点が発生しない。
0713デフォルトの名無しさん2016/08/31(水) 19:47:55.57ID:p1K5Mzky
半径が自然数で中心が原点ならピタゴラス数の数を調べればわかるんだけどな。
0714デフォルトの名無しさん2016/08/31(水) 19:49:26.51ID:NSLbELcw
その相似形は等価?相似検出するのメンドクセーけど。
0715デフォルトの名無しさん2016/08/31(水) 20:41:09.29ID:9ufvv7Gu
円内部の格子点数を不等式で挟める式あった。 
少し大きい円、少し小さい円のドーナツ型にしたら、円周上の格子点数の理想値が求まるかと・・・



ガウスの円問題

原点を中心とした半径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と予想されている.

http://www.geocities.jp/ikuro_kotaro/koramu/834_r2.htm
0716デフォルトの名無しさん2016/08/31(水) 20:41:41.64ID:p1K5Mzky
半径rのときの点の最大数は
bごとにaを変化させていってx、yが同時に整数になる数の最大数だな。
x=r (cos a +cos b)
y=r(sin a+ sin b)
0717デフォルトの名無しさん2016/09/01(木) 00:30:32.18ID:F9uf4uEu
R(r) 半径rの円の内部の整数点の個数
L(r) 半径rの円の円周上の格子点の個数として。

rより小さいsをとれば、
L(r) <= πr^2 + cr^k - ( πs^2 - cs^k ) 、s -> rとして =2cr^k

>>715には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

評価式の性能はいまいち。
評価値とぴったり一致すれば最小半径が証明できるとおもったが使えない。
0718デフォルトの名無しさん2016/09/01(木) 01:40:05.53ID:F9uf4uEu
しかし、評価式のべつの使い道があるな。 L(r) < 7√rは正しい前提として。

たとえば、100点生成できる半径を求めようとしたとき、

L(203) < 99.7346 だから、半径が203以下ではムリだと判明する。探索するとき幅は狹められる。
0719デフォルトの名無しさん2016/09/01(木) 08:42:57.18ID:d9inzlx2
どこかほかでやってくれないかな…
0720デフォルトの名無しさん2016/09/01(木) 18:50:15.31ID:wr8HVpEY
そうだな。そもそも単なる数学の問題を
お題化したって、どうせ宿題なんだろって思ってしまう
0721デフォルトの名無しさん2016/09/02(金) 16:08:29.58ID:szLK569k
円周の格子点は一年半弱まえのやつだし、数学、数学の宿題の範疇では解けるとはおもえない。
僅かでも円のイチをずらせば格子点がまったく無くなったりするわけで
コンピュータの力技は必要だろ? ある程度、探索範囲をせばめることはできても検証でプログラムいるとおもう。
0722デフォルトの名無しさん2016/09/02(金) 19:02:35.81ID:VYGld2xC
思考垂れ流しうんこマンが自重してくれればそれでいい
一人で連投してんじゃねー
0723デフォルトの名無しさん2016/09/02(金) 20:03:49.13ID:enD9pirT
「論よりコード」
0724デフォルトの名無しさん2016/09/02(金) 21:05:07.04ID:+wy8tThR
この流れならむしろ数学板でもいいとおもう
0725デフォルトの名無しさん2016/09/02(金) 21:52:48.00ID:e1jBggiu
お題:
下図のように山の麓(標高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" -> ?
0726デフォルトの名無しさん2016/09/02(金) 23:34:33.91ID:hbWVf6eK
A:012101....
B:012123...
詰む気がするんだけど
0727デフォルトの名無しさん2016/09/03(土) 04:18:59.59ID:P0QwwpBf
>>725
c++ https://ideone.com/2sIaGw

とりあえず、サンプルが通ったからsubmitって感じ。
0728デフォルトの名無しさん2016/09/03(土) 08:16:17.90ID:QWBdU6+p
一年半弱立っててもまともなコードがあがってない難問。 論、一部結果はでてるが有効打ゼロ。
0729デフォルトの名無しさん2016/09/03(土) 18:06:05.39ID:fVb/pFms
>>727

https://ideone.com/2sIaGw (上書き修正)
BFS版を追加して、それを本採用

※依然として低い高さ制限=10に甘えたコードになっている
0730デフォルトの名無しさん2016/09/03(土) 20:46:56.74ID:hrFRXovl
>>603 OCaml(勉強中)

http://ideone.com/fRBQlj

F#と並行してその元になってるOCamlの勉強も始めてみました
yukicoderで同じ問題やったらOCamlの方が実行時間8倍速、使用メモり1/7くらいだった・・・
0731デフォルトの名無しさん2016/09/04(日) 04:44:05.42ID:swx+XD0y
>>725
Ruby
https://ideone.com/LcrSC5
0732デフォルトの名無しさん2016/09/04(日) 10:12:56.94ID:AIgtYd56
円周の格子点は、
平面上の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は小さい順に無駄なく動かせ網羅できるかと。
0733デフォルトの名無しさん2016/09/04(日) 14:51:14.83ID:+9WebUQ3
>>732
論よりコード もしくは演算結果
0734デフォルトの名無しさん2016/09/07(水) 01:44:45.83ID:Bbadz6db
>>725 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
0735デフォルトの名無しさん2016/09/09(金) 01:34:40.70ID:U1OL4Uha
>>725
Haskell
http://ideone.com/SHS7xc
0736デフォルトの名無しさん2016/09/12(月) 09:47:06.73ID:lP0lbdh9
お題: Hello, World! を円形にして出力。
円形の定義、CUI, GUI どちらでやるかも自由。
丸くなっていれば良しとする。
0737デフォルトの名無しさん2016/09/12(月) 16:48:28.87ID:cNnBFZuZ
>>736 Javascript
http://codepen.io/anon/pen/VKvNOg
0738デフォルトの名無しさん2016/09/13(火) 03:30:08.30ID:jvr3tDVu
http://ideone.com/cGLp0X
C++。イデオンで再現しようと思ってエスケープシーケンス検索したら、
win10の以前のアップデートで限定的に復活してたので使ってみた。
イデオンでは通らなかった。Orz
0739デフォルトの名無しさん2016/09/13(火) 03:30:44.87ID:jvr3tDVu
画像つけ忘れた。Orz
0740デフォルトの名無しさん2016/09/13(火) 08:28:14.57ID:ziymAouq
>>693
https://ideone.com/wVBe61 (コードではなく計算結果)
円周上の格子点、高速化頑張ったら15分でこれ位行けるようになった@PentiumG6950

https://ideone.com/lpXRWS
こっちは1年前にUPしたけどスレに貼らなかった計算結果…結構長い時間かけて計算したような覚えがある。
0741デフォルトの名無しさん2016/09/13(火) 11:57:17.52ID:EheVVWlB
円周の格子点問題は、数学でもプログラムでも一発で解答できる決定版はなさげで
力業をいかに高速化するかにかかってるとおもうな。
0742デフォルトの名無しさん2016/09/13(火) 12:05:57.03ID:UfB/Iygd
直径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
0743デフォルトの名無しさん2016/09/13(火) 12:44:49.89ID:c6Y5aSJz
>>742
nが2回出てきてるんですが
っていうか、答えは整数実数どっち?
後者なら有効数字はどうするの?
0744デフォルトの名無しさん2016/09/13(火) 12:45:20.45ID:jvr3tDVu
時計ですなー。
0745デフォルトの名無しさん2016/09/13(火) 13:35:13.01ID:ziymAouq
>>742 Java
https://ideone.com/nWux6W
直径って出力に関係ないよね…?
0746デフォルトの名無しさん2016/09/13(火) 23:16:40.62ID:Hd4kFj6N
>>736 C
http://ideone.com/JZTL1J
>>742 C
http://ideone.com/sIdSFq
0747デフォルトの名無しさん2016/09/14(水) 00:16:05.45ID:U8aDu041
>>742
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
0748デフォルトの名無しさん2016/09/14(水) 18:32:15.94ID:XNPp97JV
地球の半径ですら6400キロなのに
直径100000000キロまで設定している>>742って。。。
0749デフォルトの名無しさん2016/09/14(水) 21:22:01.11ID:lCv5R5I7
宇宙人なんだろう
観測史上最大の星 L1551 IRS5 だと1e8じゃあまだまだ足りんぞ
0750デフォルトの名無しさん2016/09/20(火) 20:19:45.34ID:9oYup838
出題出来るオレ、カッケー
とか思って調子に乗ってやったんだろ、どうせ。
今頃恥ずかしくてこのスレも見ていないだろ。
こういう奴はdat落ちして新スレに移行するか、最新50くらいの
過去ログが流れてしまった頃に
素知らぬ顔してまた書き込み出すぜ。
0751デフォルトの名無しさん2016/09/20(火) 20:44:49.56ID:goOJLnhv
山下雄介
0752デフォルトの名無しさん2016/09/21(水) 12:22:41.32ID:Fil1hk+D
Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS, Flash, PHP, C++, Java, C#, Python に書き出せる。
Windows8.1対応

IDEは、FlashDevelop

このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/

Haxeプログラミング入門、尾野政樹、2015
0753デフォルトの名無しさん2016/09/28(水) 00:14:12.32ID:x19ZT2Us
お題:足がコンパスのロボット
足がコンパスのようになっており、片足を支点にして交互に回転しながら歩くようなロボットがあります。
回転半径は1メートルで固定です。その回転角度は10〜360°まで設定できるのですが、
実際に動かすと、その設定範囲内で1歩毎に常にランダムの角度で動いてしまいます。
例えば90°に設定すると、1〜90の範囲で1°間隔にてランダムな回転角度です。
スタート地点にこのロボットを置き、1000歩、歩かせた場合、
最もスタート地点から遠ざかってしまう可能性が高い設定角度は
10°、30°、45°、60°、90°、180°、270°、360°のうちどれでしょう?
0754デフォルトの名無しさん2016/09/28(水) 00:25:35.81ID:va8I6tp2
回転角度は10度以上360度以下の整数で
設定がn度のとき、1,2,3,...,n度で歩く確率がそれぞれ1/nってこと?
設問がよくわからない
07557532016/09/28(水) 00:27:45.52ID:x19ZT2Us
>>753
訂正します。
最もスタート地点から遠ざかってしまう可能性×
最も歩く範囲面積が大きくなる可能性○
07567532016/09/28(水) 01:05:00.83ID:x19ZT2Us
>>755
面積は必要なかったw
最も歩く範囲が大きくなる可能性○
0757デフォルトの名無しさん2016/09/28(水) 01:08:31.73ID:va8I6tp2
歩く範囲って何?
そしてその範囲にどういう順序を導入すんの?
0758デフォルトの名無しさん2016/09/28(水) 01:31:23.36ID:x19ZT2Us
>>757
どうしようかな・・・
例えば、ロボットが大きな円盤に乗っている。ロボットを中心に置く。
1000歩歩かせた場合、一番大きな円盤を必要とする設定は概ね何度でしょう?
ってのがいいかな。
0759デフォルトの名無しさん2016/09/28(水) 01:44:05.92ID:vAKZVh2k
なんという泥縄...
0760デフォルトの名無しさん2016/09/28(水) 02:12:02.41ID:E00q6b/l
設定が360度の場合、1度〜360度でランダムなのか10度〜360度でランダムなのか
0761デフォルトの名無しさん2016/09/28(水) 02:13:21.23ID:E00q6b/l
て書いてあったわすまん
0762デフォルトの名無しさん2016/09/28(水) 02:18:42.43ID:E00q6b/l
>>753 Java
https://paiza.io/projects/CDqrMJ9Uzeu_xuPBk77a3Q
これで良いんかの
0763デフォルトの名無しさん2016/09/28(水) 02:45:02.35ID:E00q6b/l
うん、>>762バグってるねw
https://paiza.io/projects/y_4Q-6RWYYRQul600Fxw7A
07647532016/09/28(水) 09:28:28.82ID:5Q2VSD5F
>>763
正解!
0765片山博文MZ ◆T6xkBnTXz7B0 2016/09/28(水) 23:43:35.22ID:fvrxpn3K
お題:X-Y散布図のデータが与えられると、データの特徴を出力するプログラムを作れ。
0766デフォルトの名無しさん2016/09/29(木) 00:41:48.24ID:jq9v4dMk
質問。出力の型はな〜に?
0767片山博文MZ ◆T6xkBnTXz7B0 2016/09/29(木) 00:56:33.41ID:4ynE22uh
>>766
決まっていない。
0768片山博文MZ ◆T6xkBnTXz7B0 2016/09/29(木) 01:02:42.83ID:4ynE22uh
Xが変化しないなら、「Xは定数と思われます」。
統計的特徴として、最大値、最小値、平均値など。
相関の有無など。
データの特徴を学習させるときに使えたらなと思う。
0769片山博文MZ ◆T6xkBnTXz7B0 2016/09/29(木) 01:09:09.41ID:4ynE22uh
>>766
ごめんごめん、型は文字列がいいや。
0770デフォルトの名無しさん2016/09/29(木) 01:18:25.34ID:5Ed1CqY4
プログラミングの問題じゃねーなそれ
0771片山博文MZ ◆T6xkBnTXz7B0 2016/09/29(木) 01:24:57.46ID:4ynE22uh
お題:数列の規則性を分析して一般項のC言語式を推定するプログラム。
0772デフォルトの名無しさん2016/09/29(木) 01:26:33.81ID:iWzko7DS
変な奴きたなおい
0773デフォルトの名無しさん2016/09/29(木) 11:07:09.92ID:S1ISAJ/O
お題:
次の文章が成り立つように( )の中に数を入れよ(10進数の算用数字の形で)。

『この文章の中に
0は( )文字、1は( )文字、2は( )文字、3は( )文字、4は( )文字、
5は( )文字、6は( )文字、7は( )文字、8は( )文字、9は( )文字、
算用数字は( )文字あります』
0774デフォルトの名無しさん2016/09/29(木) 11:12:05.26ID:3fQeuqpk
前にそれ見たことあるけど。問題ちょっと違うけど。
0775デフォルトの名無しさん2016/09/29(木) 13:26:29.91ID:HDXVl+rI
>>773
複数解あるから全部列挙しろって事?

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]
0776デフォルトの名無しさん2016/09/30(金) 17:18:56.68ID:Y6l190wq
数字と漢数字を相互に変換するプログラムを作成お願いします。
出来ればC#でお願いします。
例
111231243235436 <==> 百十一兆二千三百十二億四千三百二十三万五千四百三十六
0777デフォルトの名無しさん2016/09/30(金) 17:34:05.09ID:CijhFsAG
じぶんでやれ
0778デフォルトの名無しさん2016/09/30(金) 19:16:59.63ID:GrCnAQwz
おーくせんまんおーくせんまん
0779デフォルトの名無しさん2016/10/01(土) 15:45:59.82ID:g8fgU4gY
お題と見せかけてプログラム作成依頼する奴って性格悪そう
0780デフォルトの名無しさん2016/10/01(土) 17:22:57.31ID:Hi+y6PXx
じゃぱぁーん!
0781デフォルトの名無しさん2016/10/01(土) 23:29:57.15ID:sU5CeuPC
>>776
Ruby
http://ideone.com/fKqGcR
0782デフォルトの名無しさん2016/10/02(日) 10:09:53.98ID:tpSAAMa5
逆方向が難しいな
0783デフォルトの名無しさん2016/10/02(日) 10:28:30.05ID:9tnsJKRL
そうなの?
いまから取り組む予定だったけど
そんなに難しいんなら止めよっと
0784デフォルトの名無しさん2016/10/02(日) 11:51:51.24ID:QvMQ+uX0
難しくはない
面倒くさいだけで
0785デフォルトの名無しさん2016/10/02(日) 17:21:53.04ID:k1HK9CGy
>>776
Rubyで両方向。
http://ideone.com/vTwBZc
0786デフォルトの名無しさん2016/10/02(日) 21:03:52.42ID:YNMJXJ08
お題:3×3×3のルービックキューブを最小手数で6面揃えるプログラム
0787デフォルトの名無しさん2016/10/02(日) 21:10:43.76ID:w8w2bVqI
すいません>>786は自己解決しました
0788デフォルトの名無しさん2016/10/02(日) 21:17:54.22ID:YgSevYt1
自己解決ってなんだ
0789デフォルトの名無しさん2016/10/03(月) 02:19:06.57ID:afA6oe1A
>>776 ruby 2.0.0
http://ideone.com/uwKDDc
・マイナスを▲で表現するアイデアは>>785さんから無断で拝借しました
・テスト部分のコードも>>785さんから無断で拝借しました
0790デフォルトの名無しさん2016/10/03(月) 07:04:42.97ID:g0wnVkPc
>>789
サンクス
0791デフォルトの名無しさん2016/10/03(月) 15:18:20.56ID:wy4v0QcT
>>786-788

ワラタw
0792デフォルトの名無しさん2016/10/03(月) 21:25:42.73ID:lIBXU/7G
数独ソルバーで任天堂問題解こうと思ったら、2000万年かかるようになった。Orz
総当たりだとキツイなぁ。数独は。平均サジェスト数が2個の81乗。死ぬわ。
0793デフォルトの名無しさん2016/10/03(月) 21:29:48.53ID:lIBXU/7G
http://cp1.nintendo.co.jp/ruby.html
ここから入門。
0794デフォルトの名無しさん2016/10/03(月) 21:33:29.69ID:RKI08UEe
任天堂問題とは?
0795デフォルトの名無しさん2016/10/03(月) 21:40:47.39ID:lIBXU/7G
>>794
俺が作った造語。すまんな。
>>793のページから問題解いてくとアルヨ。
0796デフォルトの名無しさん2016/10/03(月) 21:59:25.51ID:hxqof8pD
Rubyの自作ヘボ数独ソルバーですらコンマ以下で解けたぞ
0797デフォルトの名無しさん2016/10/03(月) 22:19:26.57ID:lIBXU/7G
>>796
俺あんまりロジック解くの得意じゃないからねぇ。
C++でかいたけど、総当たりは筋が悪いことはわかったよ。
0798デフォルトの名無しさん2016/10/03(月) 22:24:43.42ID:aKvG7AoT
総当たりから不要なパターンを省いていくのも一つの手だと思う
0799デフォルトの名無しさん2016/10/03(月) 22:25:59.85ID:hxqof8pD
>>796
基本ルール:ある数字と同じ列(or行or3*3の正方形)にはその数字が入らない
これだけでも実装して後は背理法でやればすぐ解けると思うぞ
解の一意性がどうかとか細かいこともあるけどこの問題は一意的に求まるから関係ないし
0800デフォルトの名無しさん2016/10/03(月) 22:27:06.95ID:lIBXU/7G
http://ideone.com/afSrEW
ここからどうしたらいいと思う?
i7-6700でも2000万年かかる。
0801デフォルトの名無しさん2016/10/04(火) 01:44:53.95ID:a8C2punc
>>792-793
昔書いたソースコードを流用した

http://ideone.com/ibTP88
0802デフォルトの名無しさん2016/10/04(火) 01:58:03.23ID:FAQ7jfY8
>>801
グレート!
すごいな、イデオン時間で解けるもんなんだなぁ。うーん。俺は修業が足りんな。
俺も結構書いたかと思ったけど全然うわてだ。
ロジック解くときはやっぱこれくらい書かないとダメかー。
ひぎぃ、頭がフットーしちゃうよぉ〜。
0803デフォルトの名無しさん2016/10/04(火) 02:23:25.94ID:a8C2punc
>>802
数独は有名な解き方がいくつかあるので、それを知らないと難しいかも
いくつもある解き方を実装するのは面倒なのでバックトラック法でやるのがいいと思う
0804デフォルトの名無しさん2016/10/04(火) 02:52:38.24ID:FAQ7jfY8
>>803
情報ありがとう。いいものが見れた。
0805デフォルトの名無しさん2016/10/04(火) 19:40:37.29ID:wFGKqamD
お題:任天堂の倒し方をプログラムせよ。
0806デフォルトの名無しさん2016/10/04(火) 21:58:16.07ID:ZRyYrZJK
大作だなあ…
0807デフォルトの名無しさん2016/10/04(火) 23:47:40.64ID:YN9fMNzy
「方法をブログラムせよ」ってのが謎なんですが
0808デフォルトの名無しさん2016/10/04(火) 23:50:15.04ID:FAQ7jfY8
日本語で。
株を買います。株主総会でゴネマス。倒せます。
0809デフォルトの名無しさん2016/10/05(水) 00:49:13.06ID:JfbCSBrf
>>805
プログラムしたよ。
0810デフォルトの名無しさん2016/10/05(水) 19:29:14.00ID:Bgv24eMU
任天堂の倒し方を知っていると
言っていた面接官は
0811デフォルトの名無しさん2016/10/05(水) 19:35:13.81ID:ljdAnrxD
お題:激問
0812デフォルトの名無しさん2016/10/05(水) 21:44:58.11ID:d6ezgCbb
>>792
http://ideone.com/cILqPg
C++。
やっと解けたよー。ほとんどデバッグも整形もしてないけど、答えはあってるかも。
2000万年が0秒になった。頭タコすぎて泣けるわ。
頭がフットーする。
>>801に感謝。
0813デフォルトの名無しさん2016/10/05(水) 21:45:50.48ID:iBWfgtGO
print "任天堂の倒し方"
0814デフォルトの名無しさん2016/10/05(水) 21:56:56.37ID:NHEuemUY
ヒントページ見れば苦労せずに誰でも書けそうなもんだが
0815デフォルトの名無しさん2016/10/05(水) 22:05:52.60ID:d6ezgCbb
>>814
ルビー読めません。Orz
0816デフォルトの名無しさん2016/10/06(木) 17:02:16.03ID:VkVdfdR0
スタックを操作するプログラムまたそれを表示するプログラムをお願いします
0817デフォルトの名無しさん2016/10/06(木) 17:48:54.19ID:Gk0vxqlO
狩野英孝のものまねで「スタックー」って叫べばOK
0818片山博文MZ ◆T6xkBnTXz7B0 2016/10/06(木) 18:13:10.02ID:KbZqo+3y
>>816
自動変数のアドレスはスタックへのポインターになる
0819デフォルトの名無しさん2016/10/06(木) 19:29:47.14ID:LwTuJfQY
スタックを操作するプログラムってこんなんでいいのかな?

#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;
}
0820デフォルトの名無しさん2016/10/06(木) 19:48:03.50ID:LwTuJfQY
>>819
すまん、これ間違ってますねぇ・・・
スタックの操作って環境依存な気がするけどどうなんでしょう
0821デフォルトの名無しさん2016/10/06(木) 20:04:22.70ID:SdPd3klr
え?データ構造の練習の話じゃなくてプログラムの一時領域の話?
ちなみにここは宿題スレじゃない。
0822デフォルトの名無しさん2016/10/06(木) 21:15:35.91ID:dAHZcQmf
スマホで入力した数字を出力しなさい
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
0823修正2016/10/06(木) 21:16:30.92ID:dAHZcQmf
スマホで入力した数字を出力しなさい
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
0824修正2016/10/06(木) 21:17:13.95ID:dAHZcQmf
Sの最後に+と-がこない
↑この1文も削除
0825修正2016/10/06(木) 21:18:37.24ID:dAHZcQmf
119+5
なら1205
0826デフォルトの名無しさん2016/10/06(木) 21:55:36.99ID:hrJ3iBy7
この+,-ってスマホの入力とどういう関係があるの?
0827デフォルトの名無しさん2016/10/06(木) 21:59:09.52ID:HEfd0Rj6
また山下雄介か
0828デフォルトの名無しさん2016/10/07(金) 10:59:44.51ID:1a/aMfXp
>>823
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
08298282016/10/07(金) 11:10:04.11ID:1a/aMfXp
ミス

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
08308282016/10/07(金) 11:21:01.09ID:1a/aMfXp
ミス
連投すまんこれで最後にするわ

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
0831デフォルトの名無しさん2016/10/08(土) 08:08:57.97ID:vxldEz4C
>>823
830を参考にしました。
Ruby
http://ideone.com/AizppP
0832デフォルトの名無しさん2016/10/09(日) 01:39:18.78ID:okPyT/Vt
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}*''}
0833デフォルトの名無しさん2016/10/09(日) 03:00:29.48ID:BybICDK4
やっぱRubyって・・・いや、なんでもない
0834デフォルトの名無しさん2016/10/09(日) 21:58:35.59ID:2oHV2A6O
>>822-825
・「右辺に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"]]
08358342016/10/09(日) 22:19:57.08ID:k3CHV3QP
>>834は完全に間違っているので取り下げます
1-1+1 が 120 になっちゃうねこれじゃあ
0836デフォルトの名無しさん2016/10/09(日) 23:19:57.10ID:0NJ6apgZ
>>835
http://ideone.com/Qb37qE で実行してみたが、 
1-1+1 は、ERRORじゃね?
0837デフォルトの名無しさん2016/10/10(月) 08:00:29.16ID:HHuVI6c/
お題:
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つ見つけよ。
0838デフォルトの名無しさん2016/10/10(月) 08:20:11.21ID:jxPg9rAk
辞書ファイルくださいw
0839デフォルトの名無しさん2016/10/10(月) 08:52:21.18ID:HHuVI6c/
>>838
っhttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1412673334
0840デフォルトの名無しさん2016/10/10(月) 09:34:42.77ID:jxPg9rAk
>>837 Java
https://paiza.io/projects/vpDhY14oTq6f2YXv4a5wIA
0841デフォルトの名無しさん2016/10/10(月) 11:41:38.97ID:PJGQtdQ9
>>837
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]*''
0842デフォルトの名無しさん2016/10/10(月) 15:20:38.52ID:vALgwmuK
>>837 Emacs Lisp

(require 'cl-lib)

(cl-mapcan (lambda (s) (and (not (string-match
0843デフォルトの名無しさん2016/10/10(月) 15:47:08.07ID:vALgwmuK
>>837 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"
0844デフォルトの名無しさん2016/10/10(月) 17:24:16.08ID:Tl2g/5GS
左下から右上に登る階段を作りなさい

標準入力よりA Bが与えられる
Aは段数
Bは平らな部分の長さ
0 ≦ (A,B)
何も出力されるものがなければNONEと出力すること

[stdin]
3 2
[stdout]
******__
****__|
**__|
__|

[stdin]
0 1
[stdout]
_

[stdin]
0 0
[stdout]
NONE
0845デフォルトの名無しさん2016/10/10(月) 18:14:49.37ID:jxPg9rAk
>>844
段数1以上で平らの部分の長さが0の場合はNONEと|が縦に並ぶのとどっち?
0846デフォルトの名無しさん2016/10/10(月) 18:21:18.09ID:PJGQtdQ9
>>844
Ruby 1行で

eval"a,b=%s+1,%s;b<1?$><<:NONE:a.times{|i|puts ?**(a+~i)*b+?_*b+?|*i[0]}"%gets.split
08471642016/10/10(月) 18:30:33.51ID:WihadwZK
>>844 Perl
use feature 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
08481642016/10/10(月) 18:33:10.57ID:WihadwZK
>>847 の

d:\Home>perl 8_844_step.pl

から下の行はコマンドプロンプトから実行した結果の画面のコピペで、
プログラムソースは

use feature qw{:5.16};
…
print $s ? $s : "NONE\n";

の範囲です
0849デフォルトの名無しさん2016/10/10(月) 18:40:27.87ID:PJGQtdQ9
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
0850デフォルトの名無しさん2016/10/10(月) 18:41:34.94ID:XcJmDjCA
>>844
C#
なんか宿題っぽいし(悪いけど)いまいちなお題に思えたけど暇だからやってみた

https://ideone.com/sAWIyp
やっぱりかなり退屈だなw
0851デフォルトの名無しさん2016/10/10(月) 20:10:20.45ID:GJ6N0Utq
>>837 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);
}
}

>>844 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")
0852デフォルトの名無しさん2016/10/10(月) 20:29:46.85ID:GJ6N0Utq
>>844 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")
0853デフォルトの名無しさん2016/10/10(月) 20:35:05.59ID:XcJmDjCA
ケチつけるつもりは全然なくて純粋な疑問なんだけど、
Rubyってとにかく短く書くのが命で可読性はどうでもいいっていう文化なの?
0854デフォルトの名無しさん2016/10/10(月) 20:39:05.26ID:QHxKPE5l
>>853
せやで
0855デフォルトの名無しさん2016/10/10(月) 20:40:37.95ID:PJGQtdQ9
>>853
>>846とか>>849は勝手にゴルフっぽいことしてるだけで
Rubyではコードが短いほど良いという共通の価値観はないよ
0856デフォルトの名無しさん2016/10/10(月) 20:45:28.26ID:GJ6N0Utq
>>853
個人的にはそれはむしろPerlだと思うけどw
(過去の個人的な体験に基づく偏見です)
0857デフォルトの名無しさん2016/10/10(月) 20:45:57.40ID:XcJmDjCA
>>855
やっぱりそうだよねw
ありがとう
0858デフォルトの名無しさん2016/10/10(月) 20:51:52.34ID:xXMHDLa+
rubyは作者がそもそもコードの表記法にこだわっているからruby文化全体に表記にこだわりを持つ部分があるのは事実
08591642016/10/10(月) 21:02:10.31ID:WihadwZK
>>856
Perlは短くするために難読性が高くなるような
書き方もできる自由度があるけど
>>847はなるべく難読にならないように俺としては配慮して書いたつもりだよ。
ただ、ここに貼るとインデントがなくなっちゃうので見やすさは損なわれているけれど…
>>847にポイントするとインデントが付くのでよかっらたポイントしてみてね。
>>847であえて意識したのは無名関数の自己再帰を使ったことくらいかな。
08601642016/10/10(月) 21:56:18.64ID:WihadwZK
>>837 Perl
use feature say;
use List::Util 'sum';
for (1..3) {
local $_ = <>;
chomp;
redo if sum(map {ord($_) - ord('A') + 1} split '') != 100;
say;
}
0861デフォルトの名無しさん2016/10/10(月) 22:06:38.74ID:GJ6N0Utq
>>859
実は俺はPerlの可読性なんかを1ミリも語れる状況に無くて
20年前に赤いラクダ本を先輩に貰ったまま本棚で腐らせてるような体たらく
読み書きままならないってだけなんで、どうかお気になさらないでください
0862デフォルトの名無しさん2016/10/11(火) 20:20:36.62ID:4j+X4FeX
そうね、誕生石なら
0863デフォルトの名無しさん2016/10/11(火) 20:49:10.20ID:5wY1VI8m
>>837
@Mathematica

http://ideone.com/kMqMeG
08641642016/10/12(水) 00:29:27.25ID:RXlYYM2a
>>822 >>823 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';
}
08651642016/10/12(水) 00:30:18.77ID:RXlYYM2a
>>864 の実行結果の例
5+1-32c8 => 8
32+8 => 338
+24c25 => ERROR
119+5 => 1205
1-1+1 => 111
0866デフォルトの名無しさん2016/10/13(木) 20:27:03.99ID:PLGkmVG9
>>822-825 rust 1.8.0
https://ideone.com/OGRf5X
・正規表現不使用
・最後のjoin処理はideoneのrust 1.0.0に合わせて修正
0867デフォルトの名無しさん2016/10/14(金) 05:03:01.25ID:ayBWV1jp
>>823
http://ideone.com/wEetSD
C++。テストは>>834を一部拝借。失礼。
本分書き始める前に色々使いそうな関数書いたものの結局使わず。無駄だった。
あってるかなぁ。
0868片山博文MZ ◆T6xkBnTXz7B0 2016/10/24(月) 18:40:09.78ID:Ea5AKtst
お題:隣接行列で与えられたネットワークを可能ならば一筆書きする。
不可能なら「No solution.」と表示する。
0869片山博文MZ ◆T6xkBnTXz7B0 2016/10/24(月) 18:56:42.71ID:Ea5AKtst
お題:架空の4ビットCPUの機械語を設計し、その論理式と回路図を出力するプログラムを作れ。
0870デフォルトの名無しさん2016/10/24(月) 23:05:36.84ID:iFtzBvZM
>回路図を出力

図の形式は出題者が指定しなくちゃ。
0871デフォルトの名無しさん2016/10/24(月) 23:33:47.03ID:Ea5AKtst
>>870
.svgか.pdf
0872デフォルトの名無しさん2016/11/04(金) 18:56:54.02ID:8tGR/IuU
お題:1から9までの数字を1回づつ使って分数をつくる。
たとえば123/456789, 3962/17548など。
約分すると1/8になるものをすべてもとめる。
0873デフォルトの名無しさん2016/11/04(金) 19:08:46.32ID:XfxE6vHI
4ケタの順列を総なめしながら8倍してチェックするのかな
3024個みたいだからたいしたことなさそう
0874デフォルトの名無しさん2016/11/04(金) 22:07:13.71ID:UQXTh2xL
>>872
https://ideone.com/oxmJ61
0875デフォルトの名無しさん2016/11/04(金) 22:20:51.84ID:K4HA426Y
>>872
http://ideone.com/kfs5ma
0876デフォルトの名無しさん2016/11/05(土) 07:20:45.14ID:JpuKs6gN
>>872
http://ideone.com/iDj8rX
C++。総当たりのはずだけど、あってるかな?
0877デフォルトの名無しさん2016/11/05(土) 07:36:20.45ID:JpuKs6gN
>>875
しゅごい。
0878デフォルトの名無しさん2016/11/05(土) 08:01:48.28ID:eq+4G+9Q
>>872 Java
http://ideone.com/ACELnF
0879デフォルトの名無しさん2016/11/05(土) 19:59:02.35ID:giaAjwb2
>>872 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
0880デフォルトの名無しさん2016/11/05(土) 20:10:30.03ID:4QNuq7Ui
>>878
なるほど、どうせ数が知れてるから真面目に順列でやる必要ないのかw
08811642016/11/05(土) 22:55:55.41ID:9FbiGoMz
>>872 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桁の順列を生成する
再帰関数を作ろうとしたけど
めんどくさくなって、別解法にしました。
0882デフォルトの名無しさん2016/11/05(土) 23:03:21.88ID:Kvw69EBs
>>872
@Mathematica

{"1","2","3","4","5","6","7","8","9","/"}//
Permutations//
Select[#,#[[1]]!="/"&]&//
Select[#,#[[-1]]!="/"&]&//
ParallelMap[StringJoin,#]&//
Select[#,ToExpression[#]==1/8&]&
0883デフォルトの名無しさん2016/11/06(日) 10:45:05.08ID:Ls7dpV42
>>872 類題

お題:1から9までの数字を1回づつ使って引き算をつくる。
たとえば123-456789, 3962-17548など。
引き算すると44444になるものをすべてもとめる。
0884デフォルトの名無しさん2016/11/06(日) 11:16:41.58ID:BmMxYEOk
>>883 C
http://ideone.com/H2wG0P
0885デフォルトの名無しさん2016/11/06(日) 12:39:57.86ID:1PuOCcw9
>>883 Java
http://ideone.com/qRUcKG
書き換え2行
0886デフォルトの名無しさん2016/11/06(日) 14:47:56.12ID:UyE09MO8
>>883 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
0887デフォルトの名無しさん2016/11/06(日) 15:31:09.29ID:+kwTAqkL
>>872 >>883 c
https://ideone.com/OVUNzF
・全パターンをチェック
・肝心な部分(comb, permute)はぐぐったサイトから無断で拝借しました
・セパレータ要素も一緒に混ぜとく案は>>882さんを参考にしました
・一部の関数名(permutations_do)について>>886さんを参考にしました
0888デフォルトの名無しさん2016/11/06(日) 16:07:27.17ID:1MCBSGi9
>>883 Io
Range
1234 to(9876)select(i,
(i ..(i+44444))asMutable sort =="123456789
)map(j,(44444+j).."-".. j)
0889デフォルトの名無しさん2016/11/06(日) 19:36:04.77ID:jK1sWMF7
https://twitter.com/codera_iroha/status/795116603557879808
> せんぱいは、10億以下の整数の中で、最も約数の多い整数を求めるプログラムを書けますか?
0890デフォルトの名無しさん2016/11/06(日) 20:36:12.30ID:9KctHGA8
直感的には重複しない素数の積だと思うけど証明はできんなw
0891デフォルトの名無しさん2016/11/06(日) 23:07:17.87ID:1PuOCcw9
>>889 Java
https://ideone.com/lJ037U
あまり考えずに
0892デフォルトの名無しさん2016/11/06(日) 23:39:17.02ID:jK1sWMF7
>>891
Good Job
0893デフォルトの名無しさん2016/11/06(日) 23:40:47.89ID:jK1sWMF7
>>891
Good Jobじゃなく正解というべきだったな
0894デフォルトの名無しさん2016/11/07(月) 00:17:44.47ID:+ilf/hxD
>>891
どういうロジックかさっぱりわかんないやw
でも、

newYakusu += yakusu;

これはちょっとおかしい気がするw
0895デフォルトの名無しさん2016/11/07(月) 00:55:26.00ID:MDpsc3Qw
newYakusu *= 2;
が正解だろうな、たぶん
0896デフォルトの名無しさん2016/11/07(月) 01:14:46.43ID:t5QB3k9f
っていうか、2*3*5は2*3の2倍の約数があるのはわかるけど、
2*2*2は2*2より1つ多いだけだと思うんだけど...

まあたぶん俺が何か勘違いしてるんだろうなw
0897デフォルトの名無しさん2016/11/07(月) 01:18:30.50ID:N5kIq+jA
重複ははずしてだろ。ふつうに。どうみても2べきが小さいから。
0898デフォルトの名無しさん2016/11/07(月) 09:25:12.04ID:VzgYAniQ
素因数の指数+1をすべて掛け合わせれば約数の数になる
0899デフォルトの名無しさん2016/11/07(月) 19:37:58.99ID:ZbCfelvl
>>898
素因数分解がむずかしいね,テーブルで持っておくしかないか
0900デフォルトの名無しさん2016/11/07(月) 21:09:59.66ID:hgWS81A3
>>891 が計算量を減らすためにバッサリ切り捨ててるとこが良く分からないけど
出てる答え 735134400 = 2^6*3^3*5^2*7*11*13*17 の他にもう一つ約数の数 1344 があった
931170240 = 2^6*3^2*5*7*11*13*17*19
もっとあるかも、というか正解は別にあるかもという気がしなくもない
0901デフォルトの名無しさん2016/11/07(月) 21:37:10.62ID:VzgYAniQ
>>900
https://ideone.com/UJF04i

>>891の素数リスト、19が抜けてるやw
リスト表示するようにしても931170240が出てこないからおかしいなと確認したら初歩的なミスw
0902デフォルトの名無しさん2016/11/08(火) 02:53:20.88ID:E77IrmWO
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
0903デフォルトの名無しさん2016/11/09(水) 05:42:59.95ID:rWt9CCW+
>>889
@Mathematica

http://ideone.com/3wqeR5
0904デフォルトの名無しさん2016/11/09(水) 09:54:20.69ID:bJUc+90s
>>889
>>901 を参考に C++

http://ideone.com/OeTnpx
0905デフォルトの名無しさん2016/11/09(水) 12:57:49.64ID:n6HvGTQo
hello worldを出力しなさい
但し文字リテラルと数字をコード中に書いてはいけません
0906デフォルトの名無しさん2016/11/09(水) 13:07:00.37ID:DsWyA9Yw
>>905
誰得。
0907デフォルトの名無しさん2016/11/09(水) 13:39:36.94ID:RQn7BeEP
>>905
https://ideone.com/StMgsy
https://ideone.com/whA3mU
0908デフォルトの名無しさん2016/11/09(水) 14:40:02.73ID:yNpdMLCi
>>905
ruby -e 'class HelloWorld ;end; p HelloWorld'
0909デフォルトの名無しさん2016/11/09(水) 15:20:35.35ID:7Gidw00Y
>>905
https://ideone.com/xwzB8Z
0910デフォルトの名無しさん2016/11/09(水) 15:22:04.34ID:7Gidw00Y
可読性の高いコードができたぜ
0911デフォルトの名無しさん2016/11/09(水) 15:57:41.78ID:R5k7JcnE
>>905
http://ideone.com/xt4UEz
0912デフォルトの名無しさん2016/11/09(水) 16:09:57.80ID:RQn7BeEP
>>905
https://ideone.com/4Z2U4N
標準入力はコードのうちに入りますか?
0913デフォルトの名無しさん2016/11/09(水) 18:09:11.97ID:w47niDgV
>>905
文字リテラルは禁止だけど文字列はOK?
0914デフォルトの名無しさん2016/11/09(水) 18:11:01.84ID:w47niDgV
>>905
これに似てるね

普通じゃないHello World問題「Restricted Words」の解説記事 #伝説 #しえる|CodeIQ MAGAZINE
https://codeiq.jp/magazine/2013/09/120/
0915デフォルトの名無しさん2016/11/09(水) 19:45:29.90ID:B1AmaaJH
>>905 Squeak Smalltalk

| hello world | thisContext method tempNamesString "=> 'hello world' "
0916デフォルトの名無しさん2016/11/09(水) 21:56:55.91ID:3MgWSwni
>>905
https://ideone.com/o8SEV1
https://ideone.com/0PwVHQ
0917片山博文MZ ◆T6xkBnTXz7B0 2016/11/09(水) 22:31:53.26ID:A1mSNctr
お題:テーブルの上にきれいにきちんと重なったトランプ1セットが置いてあり、全てのカードの表が上向きになっている。
プログラムはカードの並びを入れ換えたり、上からn番目のカードを読み込むことができる。
この仮想的なトランプを操作することによって円周率を求めるプログラムを書け。
0918デフォルトの名無しさん2016/11/09(水) 22:43:42.78ID:RQn7BeEP
まず>>917のコードが見たいなー}
0919デフォルトの名無しさん2016/11/10(木) 00:53:34.51ID:7cWLs5su
>>905
https://ideone.com/i6ZnJc
09201642016/11/10(木) 01:07:34.71ID:UjUlxJgT
>>907
あんさんは、
Programmingを
楽しんでますなー。
気に入ったぜ。
09211642016/11/10(木) 01:11:20.89ID:UjUlxJgT
以下、enterprise fizzbuzzみたいな
hellow worldを書く椰子
↓
0922デフォルトの名無しさん2016/11/10(木) 01:21:32.89ID:rkwF1pIg
brainfuckやwhitespeceで文字出力するだけってジェネレータで出来るじゃん
0923デフォルトの名無しさん2016/11/11(金) 21:28:06.13ID:drAYGWtl
>>905
@Mathematica

http://ideone.com/1PtMdm
0924デフォルトの名無しさん2016/11/12(土) 12:36:20.63ID:OOJ7Wqnx
大文字を出力してるので減点
0925デフォルトの名無しさん2016/11/12(土) 14:05:38.79ID:FKtxBunI
真面目か
0926デフォルトの名無しさん2016/11/12(土) 14:44:10.92ID:5nMDDcWB
>>905 C
http://ideone.com/Be4XYH
0927デフォルトの名無しさん2016/11/12(土) 18:06:10.50ID:pVnBGILb
お題
整数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
0928デフォルトの名無しさん2016/11/12(土) 18:31:12.94ID:kNoTIrA7
>>927
>3桁に区切って
の意図がわからない

普通に多桁長加算の実装じゃないのか?
0929デフォルトの名無しさん2016/11/12(土) 18:50:09.31ID:8285RMD/
多桁長の演算を実装するだけのようだし
3桁に区切るって限定しなくてもいいよな。
0930デフォルトの名無しさん2016/11/12(土) 19:55:55.39ID:Q4JxAaLZ
>>905 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 &__ - &__;
}
0931デフォルトの名無しさん2016/11/12(土) 20:04:46.68ID:8285RMD/
>>930
こりゃすごい!

今まで最短の上に可読性が高い!
0932デフォルトの名無しさん2016/11/12(土) 20:22:45.93ID:X4UPo+EY
>>930
ideoneでもローカルでもダメだったゾ
https://ideone.com/hhNgqg
09339302016/11/12(土) 21:03:19.70ID:Li4gnKYC
>>931
ども!
でも最短じゃあないよねw

>>932
ごめん
sizeof(long)が8の環境で確認してた
struct {struct {char a,b,c,d;} a,b,c,d;} _a, _b, space, _d, _e, _f;
これでどこでも動くはず
0934デフォルトの名無しさん2016/11/12(土) 22:58:47.72ID:VjO69xXO
>sizeof(long)が8の環境で確認してた

あれま?
paiza.IOではちゃんと動いたけど
ideoneやCodeIQではダメだったか
0935デフォルトの名無しさん2016/11/13(日) 00:35:59.69ID:GDVX8Ikh
>>930
>数年前に同じお題を

>>914のCodeIQの問題とかじゃね?
0936デフォルトの名無しさん2016/11/13(日) 08:49:46.08ID:y8U2/o7H
>>905
https://ideone.com/ST1qS2
0937デフォルトの名無しさん2016/11/13(日) 09:05:29.71ID:FuKHFetX
お題:nビットのグレイコ^ドを生成する。
例
n 3
000
001
011
010
110
111
101
100
S
0938デフォルトの名無しさん2016/11/13(日) 09:14:09.45ID:FuKHFetX
お題:nビットのグレイコードを生成する。
例
n=3
000
001
011
010
110
111
101
100
0939デフォルトの名無しさん2016/11/13(日) 11:09:32.80ID:w9Y83CjX
>>938
@Mathematica

http://ideone.com/WXOxKH
0940デフォルトの名無しさん2016/11/13(日) 12:26:26.96ID:ArrhAnA/
>>938 Java
http://ideone.com/SOEHsd

brainfuckでやろうかなと思ったが、少し考えてめんどくさくなってやめた
0941デフォルトの名無しさん2016/11/13(日) 19:09:07.56ID:EpE2S11k
>>938
C#
http://ideone.com/Gbq0NT

>>940
こんな短く書けるのかw
ガックリ来たわ
どういうロジックかさっぱり分からんw
0942デフォルトの名無しさん2016/11/13(日) 20:45:37.87ID:qMZbrJPH
>>941
ニコニコ百科からの転載でアレだけどこれ抑えてれば理解できるんじゃね
>二進数を1ビット右にシフトし(先頭は0)、元の二進数と各桁で排他的論理和をとると得られる。また、1ずつ増やした場合、グレイコードで変化する桁は、二進数で0が1に変化する桁(繰り上がる先の桁)に等しい。

入力数値の分だけ1をシフトさせてやりゃ入力数値が桁数に変換できるから
あとはその桁数に達するまでforループ回して元数値と右シフト数値の排他的論理和とって2進表示し続けてる感じだと思う
無駄がなくてスマートなプログラムな感じがするけどsubstring(1)だけよく分からない
0943デフォルトの名無しさん2016/11/13(日) 20:53:45.16ID:ArrhAnA/
>>942
指定桁数の2進数を作るのに最上位ビット捨ててる
n=3だと1xxxの文字列作って一番左削ってる感じ

printf等で指定桁数の2進数作れりゃそっち使うんだけどw
0944デフォルトの名無しさん2016/11/13(日) 21:00:49.81ID:qMZbrJPH
>>243
桁数調整の為に一旦論理和とってから最初の1だけ捨ててるのか
勉強になりました
0945デフォルトの名無しさん2016/11/13(日) 21:09:45.44ID:EpE2S11k
>>942
なるほどそういう定式化された求め方があるのか
グレイコードなんて大昔学校で習って以来まったく使ったことがないから知らなかったよ。
ありがとう
0946デフォルトの名無しさん2016/11/14(月) 04:33:29.92ID:/TJLzgQW
>>938
Nim
https://ideone.com/JsyrW3
0947デフォルトの名無しさん2016/11/15(火) 07:10:12.87ID:H9REv+Ri
>>905 J
hello =: noun
world =: noun
;:inv nl $~ noun
0948デフォルトの名無しさん2016/11/15(火) 07:34:43.51ID:HcDSv4MP
>>905

ここをクリック >>905
0949デフォルトの名無しさん2016/11/15(火) 07:52:00.92ID:k57TIQI7
次スレあるの?
0950デフォルトの名無しさん2016/11/15(火) 15:27:30.98ID:Veyi95OJ
>>931
何が凄いのか分からん
hello worldがコード中に埋め込まれて
いるのが見えるんだが、だったら
printfでhello world書いているのと同じじゃあないの?
0951デフォルトの名無しさん2016/11/15(火) 16:32:08.46ID:evn38iuN
>>950
printf("hello world");←これの""で囲まれてる部分が文字列リテラル
今回は文字列リテラルと数字を使わずにハロワを出力してみろってお題だからprintfでそのまま書いてたらアウト
0952デフォルトの名無しさん2016/11/15(火) 18:08:30.22ID:DO3IaX9S
>>905のお題は文字列リテラル禁止じゃなく文字リテラル禁止だよ
0953デフォルトの名無しさん2016/11/15(火) 18:30:01.74ID:evn38iuN
そうかそいつはすまなかった読み違えたよ
>>951の2行目の「文字列リテラル」は「文字リテラル」に置き換えて読んでくれ
0954デフォルトの名無しさん2016/11/15(火) 18:59:50.88ID:DO3IaX9S
C言語なら
"hello world"のダブルクオートで括るのは文字列リテラルだけど
文字リテラルはシングルクオートで括るから 文字列リテラル使うprintf("hello world")は合法だよ
0955デフォルトの名無しさん2016/11/15(火) 19:02:18.94ID:DO3IaX9S
brainfuckやwhitespaceは処理系によってはもしかすると文字リテラルや文字列リテラルあるのかもしれないけど
C言語で>>905の問題を解くなら>>930と基本同じように文字コード計算して出力するだけだから大差ないよね
0956デフォルトの名無しさん2016/11/16(水) 06:37:25.19ID:NqgYpFgU
?
0957デフォルトの名無しさん2016/11/16(水) 20:12:56.69ID:5Ihw572q
>>905
C#
http://ideone.com/FHDr9j
やっぱり面白くないな
0958デフォルトの名無しさん2016/11/16(水) 21:43:19.98ID:h+UNZgYe
" "や'_'を使ってるところがウケ狙いなのかもしれないけど
確かにそんなに面白くない
0959デフォルトの名無しさん2016/11/16(水) 22:49:50.11ID:opmi2l/i
文字コードが絡む問題は悪名高いEBCDICを真っ先に思い浮かべてしまって
その考慮がされてないとちょっと白ける部分がある
0960デフォルトの名無しさん2016/11/20(日) 01:25:08.34ID:60DKtBPZ
>>905
ruby2

print :hello, [:s, :S].map(&:to_s).map(&:ord).inject(:-).chr, :world

http://melpon.org/wandbox/permlink/i4MWT1u23HHuoe7P
0961デフォルトの名無しさん2016/11/20(日) 13:28:08.49ID:mWWihz9s
>>905 Haskell
http://ideone.com/QN4BaU
0962デフォルトの名無しさん2016/11/21(月) 08:38:02.28ID:4Ckt/1Kw
>>905 F#

type ``hello world`` = W
printfn "%s" typeof<``hello world``>.Name
0963デフォルトの名無しさん2016/11/21(月) 08:39:37.06ID:4Ckt/1Kw
訂正
>>905 F#

type ``hello world`` = W
stdout.WriteLine typeof<``hello world``>.Name
0964デフォルトの名無しさん2016/11/21(月) 18:47:44.72ID:3NXFWxK7
>>938 ruby
n = 3
(1 << n).times do |v|
puts "%0#{n}b" % (v ^ (v >> 1))
end

http://melpon.org/wandbox/permlink/BnpyEB9rsl73vBDI
0965デフォルトの名無しさん2016/11/21(月) 19:50:16.01ID:nCxXmPKB
>>934
(´・∀・`)ヘー 動く環境もあったのね

>>935
CodeIQ見たことも聞いたこともない

>>905 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
0966デフォルトの名無しさん2016/11/21(月) 20:56:30.60ID:/F1fcl9l
文字コードに依存するわエンディアンに依存するわ、後出しでどんだけ劣化するんだ
0967デフォルトの名無しさん2016/11/21(月) 23:37:55.18ID:7dMNwwBf
数字もダメ
というのがルール
0968デフォルトの名無しさん2016/11/22(火) 02:14:49.59ID:bN+iUVDf
勝手に問題作り変えちゃダメだよね
国語できなさそう
0969デフォルトの名無しさん2016/11/22(火) 04:14:16.14ID:hJpZQ6a9
>>905
http://ideone.com/X7Wrl9
C++?? 既出の回答に感動してパクってみた。
数字自作してる時点であんまり問題の意味ないよね。
体をなしてないというか。
0970デフォルトの名無しさん2016/11/22(火) 05:24:33.85ID:7Ti0FWyJ
>>905
http://ideone.com/XH28rr
Python3 HQ9+的アプローチで数値計算してない
0971デフォルトの名無しさん2016/11/22(火) 08:07:22.61ID:ofQaf/jO
リバースエンジニアリングしてもコード中にリテラルが無いので解読されにくいという事だよね
0972デフォルトの名無しさん2016/11/22(火) 08:58:18.46ID:hJpZQ6a9
秘密主義は技術の向上を阻害するのであんまり興味ないな。
0973デフォルトの名無しさん2016/11/22(火) 11:24:14.19ID:O62ysXRT
でも「神秘的!ステキ!」とか言われてクラッカーやハッカーにモテるかもよ
0974デフォルトの名無しさん2016/11/22(火) 20:14:09.73ID:svcAyLEK
>>905 Common Lisp
https://ideone.com/jcgKGl
0975デフォルトの名無しさん2016/11/22(火) 21:11:42.55ID:0aK0hXHG
>>905 c
https://ideone.com/5oPjJu
・数字無し
・四則演算ビット演算無し
・文字リテラル文字列リテラル無し
・移植性と他の環境で動く保障無し

>>905 ruby
・バッククォートつこうた
puts `echo hello world`
0976デフォルトの名無しさん2016/11/22(火) 22:00:15.16ID:GG9ZZPlA
>>975
cの方面白い
細かいけどreturn 0;に数字使われてるのに笑ってしまった
0977デフォルトの名無しさん2016/11/22(火) 22:12:48.53ID:bzMDKvPC
bash
$echo hello world
0978デフォルトの名無しさん2016/11/22(火) 22:32:08.95ID:GG9ZZPlA
それがありなら
c++
https://ideone.com/5fVbir
0979デフォルトの名無しさん2016/11/22(火) 22:33:06.33ID:GG9ZZPlA
もう出てたか
0980デフォルトの名無しさん2016/11/23(水) 03:02:34.05ID:1DVlaY/L
>>975
その手があったか。思いつかなかった
0981デフォルトの名無しさん2016/11/23(水) 16:23:56.87ID:zVQCWlzE
>>976
> return 0;に数字使われてる

どわーっ!!

>>905 c
http://codepad.org/4F3U6t52
・移植性と他の環境で動く保障無し
(少なくともideoneじゃコンパイルエラー
変形して通しても次の問題が出てきて駄目)
0982デフォルトの名無しさん2016/11/23(水) 17:00:53.66ID:v3lmFY9L
bash
$cat message.txt
09831642016/11/28(月) 21:11:05.16ID:rbBqsttl
>>905 Perl
sub AUTOLOAD {($AUTOLOAD =~ /::(.+)$/)[0]}
print Hello()." ".World()."\n";
09841642016/11/28(月) 21:24:43.26ID:rbBqsttl
>>983
しまった、listのindexに0を使っちゃってる。
return 0;がダメ?かもしれないならば数字使っちゃダメ??

ならばこうか…

>>905 Perl
sub AUTOLOAD { $AUTOLOAD =~ s/^.*:://; $AUTOLOAD }
print hello()." ".world()."\n";
09851642016/11/28(月) 21:42:11.18ID:rbBqsttl
>>905 Perl つか、これでイイジャン。
package hello_world;
print join ' ', split '_', __PACKAGE__;

連投スマソ
0986デフォルトの名無しさん2016/11/28(月) 21:56:43.31ID:dQXmDcQq
文字リテラル知らんのか?
09871642016/11/28(月) 22:24:35.04ID:rbBqsttl
"hello world"の文字列リテラルだけじゃなく
" "もダメてことか…orz
' 'は一応「文字」だけどまぁ歓迎されない感じだな
もうひと工夫いるけどマンドくさくなってきた
0988デフォルトの名無しさん2016/11/29(火) 19:26:40.96ID:LsagP9/y
コードとコンパイラによっては最適化で文字が埋め込まれることに
0989デフォルトの名無しさん2016/11/29(火) 21:35:16.55ID:1MA0K2jV
先入れ中出しのアルゴリズムを実装せよ
0990デフォルトの名無しさん2016/11/29(火) 21:39:13.43ID:+UdcctZr
やだ、できちゃう
0991デフォルトの名無しさん2016/11/29(火) 21:49:39.94ID:PX7t+lnB
先っちょだけだから
0992デフォルトの名無しさん2016/11/30(水) 01:45:20.18ID:b7dyxQXg
>>989
C++にはSTLにQueueあるからねぇ。
今更、作る意義がわからない。
0993デフォルトの名無しさん2016/11/30(水) 04:13:31.77ID:b7dyxQXg
って、ネタかよ。真面目に答えるんじゃなかった。
0994デフォルトの名無しさん2016/11/30(水) 12:22:48.19ID:y2jQ/DIV
STLは知らないけど.NETのキューって要素1つずつしか出し入れできないんだよね
これだとバッファーとしては使いづらいから自作したわ
0995デフォルトの名無しさん2016/11/30(水) 12:44:08.74ID:UIwN06Hs
LINQ使えばいいんじゃね
0996デフォルトの名無しさん2016/11/30(水) 23:47:33.27ID:8E5tVjA8
Queueって先入れ中出しなん?
0997デフォルトの名無しさん2016/12/01(木) 00:54:11.48ID:NHXaAvDm
それもネタなんだろ
0998デフォルトの名無しさん2016/12/01(木) 06:10:42.69ID:I/74Zq7s
次スレありますでしょうか。
0999デフォルトの名無しさん2016/12/01(木) 15:05:04.44ID:HhJrKDKy
t
1000小倉優子 ◆YUKOH0W58Q 2016/12/01(木) 15:05:24.69ID:HhJrKDKy
  ∧,,,∧ 
 (  ・∀・) 1000ならジュースでも飲むか
  (    ) 
  し─J 
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 420日 18時間 46分 18秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。