プログラミングのお題スレ Part4
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2014/06/13(金) 10:14:53.01ID:GvJv3b6q前スレ
プログラミングのお題スレ Part3
http://peace.2ch.net/test/read.cgi/tech/1390525149/
プログラミングのお題スレ
http://toro.2ch.net/test/read.cgi/tech/1357191974/
出されたお題をコーディングして罵られるスレ
http://toro.2ch.net/test/read.cgi/tech/1354393458/
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
【ソースコードが長くなったら】
http://codepad.org/
http://ideone.com/
宿題は宿題スレがあるのでそちらへ。
0002デフォルトの名無しさん
2014/06/13(金) 10:17:20.80ID:Q8FRmQS5乙。
0003デフォルトの名無しさん
2014/06/13(金) 10:52:12.91ID:Q8FRmQS5最近、問題の出題者が是非を問わず失踪する事件が相次いでおり続報が待たれます。
それではおやすみなさい。
0004デフォルトの名無しさん
2014/06/13(金) 14:04:49.30ID:kccJ4S5h0005デフォルトの名無しさん
2014/06/13(金) 15:31:39.26ID:71nCtwZMabc
c
abd
?
abe
b
ae?
a
???
これはある規則に沿って表示されている
?の部分の文字を埋めよ
0006デフォルトの名無しさん
2014/06/13(金) 15:34:44.97ID:71nCtwZMabc ←スタート
c ← 直前の文字列からcを引く
abd ←お尻にcの次の文字が追加する
d ←dを引く
abe ←dの次の文字のeをお尻に追加する
b ←bを引く
aec ←bが引かれてeが繰り上がり、bの次の文字cをお尻に追加する
a
ecb
0007デフォルトの名無しさん
2014/06/13(金) 15:46:01.59ID:71nCtwZMSの左辺の文字をS1,中央の文字をS2,右辺の文字をS3とする
例)S=xyz, S1=x, S2=y, S3=z
SからCを引くと、Sに含まれるCを削除し、Sの語尾にCの次の文字(アルファベット順)を加える。
例)S=abc, C=cなら、S-C="abd"となる
また、SにCが存在しない場合は何も引かれない・足されない。
'z'の次の文字は'a'とする。
10回目の文字の足し算でS1=S2=S3となるSとCの組み合わせを全て求めよ
0008デフォルトの名無しさん
2014/06/13(金) 15:47:22.93ID:71nCtwZM0009デフォルトの名無しさん
2014/06/13(金) 15:48:11.71ID:Q8FRmQS5俺解けなかったけど、あんたはいい出題者だ。またなんか考えてもってきて〜。
文句言うなら。パターン認識するために、お膳立てをもうちょっとしてほしかったかな。
さて、睡眠継続〜。
0010デフォルトの名無しさん
2014/06/13(金) 15:51:03.50ID:71nCtwZMSの左辺の文字をS1,中央の文字をS2,右辺の文字をS3とする
例)S=xyz, S1=x, S2=y, S3=z
SからCを引くと、Sに含まれるCを削除し、Sの語尾にCの次の文字(アルファベット順)を加える。
例)S=abc, C=cなら、S-C="abd"となる
また、SにCが存在しない場合は何も引かれない・足されない。
'z'の次の文字は'a'とする。
ループの初めはC=S3とする。SにCを足した後はC=S3とする。
9回目の文字の足し算でS1=S2=S3となるSとCの組み合わせを1つ求めよ
0011デフォルトの名無しさん
2014/06/13(金) 15:53:53.60ID:Q8FRmQS5足し算の法則性は自分で考えろってこと?
0012デフォルトの名無しさん
2014/06/13(金) 17:03:55.52ID:CyA6OO09S=aabは考えなくていいのか
0013デフォルトの名無しさん
2014/06/13(金) 17:44:01.09ID:24IwXXBF0014デフォルトの名無しさん
2014/06/13(金) 17:47:54.41ID:24IwXXBF1からNまでの整数を右回りの渦巻きで出力せよ
標準入力から以下の形式で与えられる
N
(例)
[input]
9
[result]
1 2 3
8 9 4
7 6 5
0015デフォルトの名無しさん
2014/06/13(金) 18:01:10.51ID:FrjLIVoMN(0<N<10000)は2で"割り切れない"整数である
1からNまでの整数を右回りの渦巻きで出力せよ
標準入力から以下の形式で与えられる
N
(例)
[input]
9
[result]
1 2 3
8 9 4
7 6 5
0016デフォルトの名無しさん
2014/06/13(金) 19:15:03.54ID:ZlYpURCX9以外の場合の出力は?
0017デフォルトの名無しさん
2014/06/13(金) 20:06:38.85ID:MtxIaOIX0018デフォルトの名無しさん
2014/06/13(金) 21:31:09.60ID:Q8FRmQS5TimeUsing:357Min@31905732CountCalced
見つかったかどうかはわからん。かーたーつーむーりー。
0019デフォルトの名無しさん
2014/06/13(金) 23:48:18.14ID:xctJNyBfttp://ideone.com/pzxO7g
0020デフォルトの名無しさん
2014/06/14(土) 00:05:44.14ID:MgRt7LMK0021デフォルトの名無しさん
2014/06/14(土) 00:20:09.07ID:MgRt7LMKコードゴルフに特化してないのがいいんだけどない?
0022デフォルトの名無しさん
2014/06/14(土) 01:14:50.13ID:SwBFDyk2筆算
______
237)18472...
をやりながらコードを見るんだ
0023デフォルトの名無しさん
2014/06/14(土) 02:32:41.23ID:owGByNifあのでかい数筆算するんか。精度的に自信ない。
筆算なんか十何年やってないからねぇ。Orz
>>15
寝不足とサイオン足りないので今日はパスするかも。
NをSqrtしてX^2あまりYでいいよね。適当だけど。
Sqrt重たいのわかるけどこの問題ならアリかなと思う。
0024デフォルトの名無しさん
2014/06/14(土) 04:50:00.40ID:owGByNifttp://ideone.com/X1WsTo
ほぼC。綺麗さ重視であまり出しながらも形は作る感じ。
>>19とは対称ですねぃ。
サイオン回復したので一応作ってみた。
・・・。標準入力・・・だ・・・と・・・。
ttp://ideone.com/XCZXGb
対応した。さて、飯食うか。
0025デフォルトの名無しさん
2014/06/14(土) 08:43:09.91ID:wNU/NJPK>>5
たとえばabcの次にcが来る理由を考えてた。
問題文をよく読め。
0026デフォルトの名無しさん
2014/06/15(日) 21:35:27.50ID:lBQJsMnk衛星Aは1時間23分かけて地球一周できます
衛星Bは3時間9分かけて地球一周できます
衛星Cは5時間45かけて地球一周できます
衛星は同じ位置にくると自動的によけてくれるので衝突して故障することはありません。速度も一定に移動します。
衛星Aは60度の位置、衛星Bは192度の位置、衛星Cは265の位置からスタートする。
3つの衛星が同じ位置に重なりあうのは何時間後か求めて出力せよ。また、重なりあうまで何周したかそれぞれ出力せよ。
0027デフォルトの名無しさん
2014/06/15(日) 22:07:52.18ID:wjE+lkrG多バイト長÷短バイト長はわりあいと楽ですね
http://peace.2ch.net/test/read.cgi/tech/1313183984/610
http://ideone.com/as7Jow
0028デフォルトの名無しさん
2014/06/15(日) 22:14:35.24ID:wjE+lkrG仮に円軌道かつ赤道面上を周回するとしても、それでも、人工衛星の周回軌道は高度と一対一に結びついている
なんだか非常に無理のある設定だ、というか「衛星は同じ位置にくると自動的によけてくれるので衝突して故障することはありません」はいらない文
誰の出題だ?
0029デフォルトの名無しさん
2014/06/16(月) 01:45:11.10ID:MERkKOKe実装例:
http://tenhou.net/2/
麻雀ルール等:
http://mahjong.nomaki.jp/
http://mahjong.ara3.net/lecture/shanten.htm
http://dora12.net/modules/dic/syantensu.html
0030デフォルトの名無しさん
2014/06/16(月) 05:10:53.21ID:eNuyf1Ao全ての衛星は赤道上を回る高度の違う衛星です、とかでいいだろというか、
角度合わせないと重ならないよな…出題者は1次元で考えてんだろうけど。
衛星A:(60/360+t/83) mod 1.0
衛星B:(192/360+t/189) mod 1.0
衛星C:(265/360+t/345) mod 1.0
衛星Aと衛星Bが重なる周期と、衛星Aと衛星Cが重なる周期の最小公倍数を
求める方向でいいかな? >>28
0032デフォルトの名無しさん
2014/06/16(月) 12:47:07.47ID:9OUnGSWw宝石店には輪になったカウンターがあり、そこに客は座っています。
宝石店には10個の色が異なる宝石(h1...h10)があります。
1人の客に一度に見せられる宝石は2つまでで、5人同時に異なる宝石を見せます。
一度見た宝石を2度も見せることはしません。
ただし、客に見せた2つの宝石のうちの1個はとなりの客に見せます。
例)k3の隣はk2とk4, k5の隣はk4とk1
全ての客に全ての宝石を見せ終わるまで何回かかるか調査しなさい。
0033デフォルトの名無しさん
2014/06/16(月) 18:21:58.44ID:lnWmJsSA組み合わせの問題苦手だけど、これだったら10回あれば回せないか?9回かもな。
普通に一周させて4回目で右と左をスワップしてもう一周と思ったけど、
これ、一回一個を2周させるより早い手順ある?2個必ず見せるとは書いてない。
うーん。
0034デフォルトの名無しさん
2014/06/16(月) 18:25:53.76ID:lnWmJsSA一個はなので二個でもおk?
0035デフォルトの名無しさん
2014/06/16(月) 18:39:59.16ID:lnWmJsSAttp://ideone.com/lWeDh6
ほぼC。めちゃくちゃ適当に書いたけど、こういうことだよね?
t=499 (minute) EPSILON=1.000000e-002
A=0.178715 B=0.173545 C=0.182488 (360 degree=1.0)
AB=1.861159 BC=-3.219462 CA=1.358303 (degree)
A=7 B=3 C=2 (times)
- - - - - - - - - - - - - - - - - - - - - - - - - - -
t=538444 (minute) EPSILON=1.000000e-003
A=0.443775 B=0.443386 C=0.443357 (360 degree=1.0)
AB=0.139989 BC=0.010352 CA=-0.150341 (degree)
A=6488 B=2849 C=1561 (times)
0037デフォルトの名無しさん
2014/06/17(火) 17:27:01.98ID:DkLyoDX2今日の窓の杜に日本語で計算させるソフトが載ってる
0038デフォルトの名無しさん
2014/06/18(水) 23:43:02.82ID:xlveYer0標準入力から以下の形式で与えられます
YYYY/MM/dd
年齢は誕生日の前日に歳を重ねることに注意せよ。4/1生まれの場合は3/31に歳が増えることになる。
0039デフォルトの名無しさん
2014/06/18(水) 23:44:54.58ID:TxeGU8JJhttp://peace.2ch.net/test/read.cgi/tech/1392388003/
0040デフォルトの名無しさん
2014/06/18(水) 23:54:31.17ID:DFxPJl2r未来の日付が与えられた時の仕様は?
0041デフォルトの名無しさん
2014/06/18(水) 23:56:27.56ID:xlveYer00042デフォルトの名無しさん
2014/06/19(木) 00:09:32.23ID:+j7TYHbL0043デフォルトの名無しさん
2014/06/19(木) 00:29:42.44ID:lwMZS3uyruby
require 'date'
y, m, d = gets.split('/').map{|e|e.to_i}
day2 = Date.today + 1
age = day2.year - y
age -= 1 if Date::new(day2.year, m, d) > day2
p age
0044デフォルトの名無しさん
2014/06/19(木) 00:33:56.29ID:td7zSXVn0045デフォルトの名無しさん
2014/06/19(木) 02:04:17.89ID:D7BmUZOO日本の法律では前日に歳が増える
0046デフォルトの名無しさん
2014/06/19(木) 02:05:16.48ID:D7BmUZOO0047デフォルトの名無しさん
2014/06/19(木) 06:47:37.65ID:gzfpEmrhhttp://ideone.com/8DPtbc
答えは自信ない...
0048デフォルトの名無しさん
2014/06/19(木) 15:08:54.60ID:UADYZqLi言語に実装された和を求める為の関数やライブラリの使用は禁止とする
0049デフォルトの名無しさん
2014/06/19(木) 15:10:04.69ID:UADYZqLi0050デフォルトの名無しさん
2014/06/19(木) 16:48:56.36ID:EHpEAUer0051デフォルトの名無しさん
2014/06/19(木) 16:57:22.80ID:OLf00bFf0052デフォルトの名無しさん
2014/06/19(木) 16:59:02.04ID:OLf00bFf0053デフォルトの名無しさん
2014/06/19(木) 17:05:35.80ID:EHpEAUer(a1 + an ) * (an / 2)
以外の答えを求めてるの?
意図が分からん
0054デフォルトの名無しさん
2014/06/19(木) 17:07:50.58ID:a/a0+n9Y0055デフォルトの名無しさん
2014/06/19(木) 17:08:16.01ID:OLf00bFf奇数でも問題なく通用するよ
0056デフォルトの名無しさん
2014/06/19(木) 17:11:32.58ID:EHpEAUerこれは二つの点で良くない
ひとつめ
結果を得るための計算としては有効であるが
そのように計算可能となるアルゴリズムが直接的に表現されていない
ふたつめ
不要な大きな数の計算をする事になる
数学とプログラミングはイコールではないし
計算とアルゴリズムもイコールではない
高校数学!話にならん話
0057デフォルトの名無しさん
2014/06/19(木) 17:12:29.20ID:EHpEAUer計算としてなら通用する
0058デフォルトの名無しさん
2014/06/19(木) 17:16:39.01ID:BcmtgtjI0059デフォルトの名無しさん
2014/06/19(木) 17:21:28.32ID:OLf00bFf0060デフォルトの名無しさん
2014/06/19(木) 17:21:49.32ID:up+oEz5h0061デフォルトの名無しさん
2014/06/19(木) 17:23:23.05ID:up+oEz5h0062デフォルトの名無しさん
2014/06/19(木) 17:25:22.03ID:OLf00bFf0063デフォルトの名無しさん
2014/06/19(木) 18:01:30.86ID:x9PjgZWi意味不明
0064デフォルトの名無しさん
2014/06/19(木) 18:44:20.51ID:nGqFEu9yn(n+1)/2で求めるのも立派なアルゴリズムなんだけど?
0065デフォルトの名無しさん
2014/06/19(木) 18:56:35.57ID:fgOwoOKT多桁だから少しは工夫できる。
0066デフォルトの名無しさん
2014/06/19(木) 19:25:38.20ID:Brdb8B0I>>48
> 言語に実装された和を求める為の関数やライブラリの使用は禁止とする
なので、
・n(n+1)/2 はok
・多倍長整数計算を実装せよ
って意図では
0067デフォルトの名無しさん
2014/06/19(木) 20:00:43.15ID:Lgo8NLINっていうか、多倍長理解してないんだよな。だから無理。
0068デフォルトの名無しさん
2014/06/19(木) 20:03:04.89ID:fgOwoOKT0069デフォルトの名無しさん
2014/06/19(木) 20:13:33.99ID:Lgo8NLINそうだけど、Ideonで証明できないからなぁ。
すまんけど、ちょっとつまらん。
0070デフォルトの名無しさん
2014/06/19(木) 22:54:19.34ID:gzfpEmrh#2進数 (b+1)*b/2
b = "10000000000000000000000000000000000000000000000000000000000000000000"
#print b[:-1] + "1" + b[1:-1]
#print b[:-1] + b[:-1]
print b[:-1] * 2
0071デフォルトの名無しさん
2014/06/19(木) 23:11:17.83ID:4S5DOub90072デフォルトの名無しさん
2014/06/19(木) 23:23:18.13ID:qa8nBQ3x入力された値の総和を求めるプログラムじゃなくて固定値なんだから・・・
1から10なら55、1から100なら5050,1から1000なら500500なわけだ
つまり、ゼロの数をxとして
5を出力、改行せずにゼロをx-1回出力、5を出力、改行せずにゼロをx-1回出力、改行
ってな感じでやったら石投げられるかなwww
ttp://codepad.org/G7rWZhu4
0073デフォルトの名無しさん
2014/06/19(木) 23:39:40.48ID:2ortrccsその結果あってるのか?
49999999999999999136838789195927991586198914377904661392885735751680000000000000000000000000000000000000000000000000000000000000000000
0074デフォルトの名無しさん
2014/06/19(木) 23:45:09.27ID:7NaVp+xv> 言語に実装された和を求める為の関数やライブラリの使用は禁止とする
足し算から定義するか・・・そのためにまず自然数から定義してっと・・・
0075デフォルトの名無しさん
2014/06/19(木) 23:54:33.92ID:qa8nBQ3xその怪しい解をおかしいと思わないあなたが心配です。。。
0076デフォルトの名無しさん
2014/06/20(金) 00:02:20.04ID:MNvGdz/i(10000+1)*10000/2
=(10000+1)*5000
=10000*5000 + 5000
だからな。
0077デフォルトの名無しさん
2014/06/20(金) 00:04:13.95ID:rmN2sG+2変な改行になってしまうから勝手に桁を減らした
http://ideone.com/JI1T1W
0078デフォルトの名無しさん
2014/06/20(金) 00:13:10.06ID:rNGAsf/H((10000000000000000000000000000000000000000000000000000000000000000000)+(10000000000000000000000000000000000000000000000000000000000000000001))/2
0079デフォルトの名無しさん
2014/06/20(金) 00:13:36.94ID:rNGAsf/H((10000000000000000000000000000000000000000000000000000000000000000000)*(10000000000000000000000000000000000000000000000000000000000000000001))/2
0080デフォルトの名無しさん
2014/06/20(金) 00:14:34.33ID:rNGAsf/H0081デフォルトの名無しさん
2014/06/20(金) 00:35:34.20ID:eyF0lSTD4桁の2個の数に使用した8種類の数字はひとつも現れなかった。
この4桁の2個の10進数を求める。
0082デフォルトの名無しさん
2014/06/20(金) 00:40:46.54ID:HuhJSpav0083デフォルトの名無しさん
2014/06/20(金) 00:41:28.00ID:HuhJSpav>>78-80
0084デフォルトの名無しさん
2014/06/20(金) 01:28:45.54ID:G5yuErw/結構重いなぁ。
0085デフォルトの名無しさん
2014/06/20(金) 01:39:12.16ID:G5yuErw/サンプルプリーズ。
0086デフォルトの名無しさん
2014/06/20(金) 01:51:48.40ID:fqUiErnm確認だけど積は2種類の数字からなるってこと?
0087デフォルトの名無しさん
2014/06/20(金) 02:17:34.18ID:MNvGdz/i4つ+4つを選んで、掛け算したあとの下位1桁目のあり得るパターンから探してくとかか?
0088デフォルトの名無しさん
2014/06/20(金) 02:33:39.39ID:ZcO8mb2F禁止ワード: false true if % !
0089デフォルトの名無しさん
2014/06/20(金) 02:46:06.40ID:G5yuErw/http://ideone.com/6IAX6X
ほぼC。ideonはえー。うちで計算したら2時間くらいかかったんだが。
そこはかとなくバグってるがキニシナイ。
6712*5049=33888888
5132*867=4449444
143*5796=828828
1924*357=686868
1274*539=686686
5796*143=828828
357*1924=686868
457*2869=1311133
867*5132=4449444
539*1274=686686
5049*6712=33888888
2869*457=1311133
0090デフォルトの名無しさん
2014/06/20(金) 03:00:01.61ID:C6Xti4O4そこで異なる数字が出たら上2桁を縛れる
0091デフォルトの名無しさん
2014/06/20(金) 03:06:18.32ID:C6Xti4O4奇奇・偶偶がそれぞれ3通り
奇偶が4*4の16通り 計22通りだと思う
>>89
つまり最終的に1組しかないのね
0092デフォルトの名無しさん
2014/06/20(金) 03:13:32.41ID:G5yuErw/俺、なんか間違ってる?
余計な計算してるだけだったら、解説頼む。
4桁*4桁はそういえば一組か。
0もちゃんと扱えないとなーと思って3ケタも混ぜたんだが。
0093デフォルトの名無しさん
2014/06/20(金) 03:14:52.47ID:09C2glzphttp://ideone.com/kFMnzH
celeronM1.86GHzで0.2sくらいで終わった
0094デフォルトの名無しさん
2014/06/20(金) 03:29:53.62ID:G5yuErw/超速いな。ふむふむ・・・。Orz
0095デフォルトの名無しさん
2014/06/20(金) 05:25:41.18ID:09C2glzp60行目
> for (a[4] = 1; a[4] < 10; a[4]++) { if (check(a, 4)) continue;
↓
> for (a[4] = 5; a[4] < 10; a[4]++) { if (check(a, 4)) continue;
と変更したら、1.5倍くらい速くなった
0096デフォルトの名無しさん
2014/06/20(金) 05:27:48.00ID:09C2glzp0097デフォルトの名無しさん
2014/06/20(金) 06:59:37.63ID:Xn/NpwsDうちのi7では0.76s
exeやvectorがL3キャッシュに乗ると滅茶苦茶速くなるんじゃね
>>93
こちらは31ms
chrono便利だな
0098デフォルトの名無しさん
2014/06/20(金) 08:38:36.31ID:+x3ndtqKfor (a[4] = a[0]+1; a[4] < 10; a[4]++) { if (check(a, 4)) continue;
で良いと思う。
aa<bbのチェックが不要になる。
0099デフォルトの名無しさん
2014/06/20(金) 09:41:40.85ID:2EQ+l0AP★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi
※ 要タイトル検索
※ 2chブラウザ併用推奨
0100デフォルトの名無しさん
2014/06/20(金) 12:42:12.58ID:C6Xti4O4Debugのままで実行してたりとか
0101デフォルトの名無しさん
2014/06/20(金) 18:20:40.40ID:QPzcx6bM......#####.....####
..##.######.########
#.##.###.....##...##
#....###.##......###
#.##.###.##.##?#####
####.....#.......###
##########..########
左上の?の位置から右下の?までの最短距離と再長距離を求めよ
0102デフォルトの名無しさん
2014/06/20(金) 18:32:03.52ID:QPzcx6bM?.#########.########
......#####.....####
..##..#####.###.####
#.##.###.....##...##
#....###.##.......##
#.##.###.##.##?##.##
#........#.........#
##########..####...#
左上の?の位置から右下の?までの最短距離と再長距離を求めよ
0103デフォルトの名無しさん
2014/06/20(金) 20:52:46.31ID:mZs9ZBuX0104デフォルトの名無しさん
2014/06/20(金) 21:28:13.37ID:kSpxa/vA?1#########.########
.2345.#####.....####
..##6.#####.###.####
#.##7###78901##...##
#...8###6##.234...##
#.##9###5##.##?##.##
#...01234#.........#
##########..####...#
最大 距離61
?.#########.########
145678#####23456####
23##09#####1###7####
#.##1###7890.##812##
#5432###6##7890903##
#6##.###5##6##?##4##
#78901234#.54321056#
##########..####987#
0105デフォルトの名無しさん
2014/06/20(金) 21:37:22.86ID:kSpxa/vA0106デフォルトの名無しさん
2014/06/20(金) 21:52:18.47ID:09C2glzpなるほど、そうですね。
>>93の http://ideone.com/kFMnzH に以下の 4変更
・23行目 〜 keisan();の aa > bb を無くした
・56行目 〜
for (a[0] = 1; a[0] < 10; a[0]++) {
→ for (a[0] = 1; a[0] < 9; a[0]++) {
・60行目 〜
for (a[4] = 1; a[4] < 10; a[4]++) { if (check(a, 4)) continue;
→ for (a[4] = a[0] + 1; a[4] < 10; a[4]++) { if (check(a, 4)) continue;
・64行目 〜 switch の判定を無くした
を加え、更にアルゴリズムによる速度差計測のためを考え gcc -O0 の
最適化なしで比較したら 410ms → 227ms (8割増) になりました。
http://ideone.com/bYzWM9
0107デフォルトの名無しさん
2014/06/20(金) 22:10:06.39ID:G5yuErw/VCリリースです。しかし、CPUがATOMだ!!Orz
0108デフォルトの名無しさん
2014/06/21(土) 01:19:30.31ID:oxWL7iixうちだとlinuxで、g++コンパイラに最適化の-O3とC++11コンパイルするための
-std=c++11オプションを付けただけだけど、3.6秒で計算終わる。-O0でも12.0秒。
0109デフォルトの名無しさん
2014/06/21(土) 02:13:08.89ID:Qlvgm7Ikいや、アトムBTだからさ、CORE2の7割しかシングル性能でないんですよ。
今の最新と比べるべくもない。環境はVSドノーマルなんだけどね。
0110デフォルトの名無しさん
2014/06/21(土) 02:56:30.10ID:oxWL7iix0111デフォルトの名無しさん
2014/06/21(土) 03:52:49.10ID:Qlvgm7Ikブーストして2.4Ghzくらいまで上がるけどアーキテクチャがあれ何でね。
コンパイラの最適化もこっち向けじゃないのもあると思う。むー。
0112デフォルトの名無しさん
2014/06/21(土) 05:42:11.03ID:/fMJIWigf =: 3 : 0
a =. ~.'* '(4 5)}"1(i.!10) A.'0123456789'
a =. a #~ *./"1 '0' ~: 0 6 {"1 a
a =. a #~ (-:(-.":@".))"1 a
~. /:~"1 ". ' '4}"1 a
)
f''
5049 6712
0113デフォルトの名無しさん
2014/06/21(土) 08:44:10.71ID:osxplvy7https://ideone.com/J2NBtX
>>112
なるほどね〜。
0114デフォルトの名無しさん
2014/06/21(土) 18:36:45.72ID:/fMJIWig文字列Aを求める。ただしAの候補が複数ある場合は最短のものとする。
例
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> a
123412312341231234123123412312341231234123 -> 1234123
oxoxoxoxoxoxoxoxxoxoxoxoxoxoxoxoxx -> oxoxoxoxoxoxoxoxx
0115デフォルトの名無しさん
2014/06/21(土) 18:53:17.85ID:JBvb3h4tPython3
https://ideone.com/i9h3eA
0116デフォルトの名無しさん
2014/06/21(土) 19:11:07.28ID:JBvb3h4t0117デフォルトの名無しさん
2014/06/21(土) 20:00:18.20ID:FX+q3pzwhttp://dpaste.dzfl.pl/c6e20183386e
逆に、対象文字列を繰り返したものと全体とを比較してみる
0118デフォルトの名無しさん
2014/06/21(土) 20:59:37.62ID:5st0+XMlhttp://ideone.com/fQ6iLB
0119デフォルトの名無しさん
2014/06/21(土) 22:12:20.68ID:a//TlJVmttps://ideone.com/gyK5k5
0120デフォルトの名無しさん
2014/06/21(土) 22:52:10.32ID:FX+q3pzwfunc("axaxa") // repeat = ax
strlen(a) == (int)(a - b)でないとaとbが重なる
http://ideone.com/OHLuSr
0121デフォルトの名無しさん
2014/06/21(土) 22:58:10.07ID:FX+q3pzw0122デフォルトの名無しさん
2014/06/21(土) 23:07:07.47ID:FX+q3pzw正しくはこうかな、ドヤ顔で間違った指摘して恥ずかしいです……
http://ideone.com/jWkZrz
0123デフォルトの名無しさん
2014/06/21(土) 23:34:52.08ID:1rwRXb7k>>119のまねをいたしました
def f114(s):
for i in range(1,len(s)):
if s[:len(s)-i] == s[i:]:
break
print "{} -> {}".format(s, s[:i])
q = """
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
123412312341231234123123412312341231234123
oxoxoxoxoxoxoxoxxoxoxoxoxoxoxoxoxx
""".split()
for s in q:
f114(s)
0124デフォルトの名無しさん
2014/06/21(土) 23:36:28.88ID:a//TlJVm>>114
文字列長の因数の長さ(例:24文字の場合、1,2,3,4,6,8,12)で比較する方法に変更。
ttps://ideone.com/f4DiSl
0125デフォルトの名無しさん
2014/06/22(日) 02:28:12.07ID:qas3Gn4Rhttp://ideone.com/jmDmeB
ほぼC。環境変わってちょっと頭がおバカになってしまったので問題を解くことを最優先した。
あってるかな?でもいろいろバグがあると思う。とりあえず、動いてるようにみえるだけと・・・。Orz
もしかしたらこの条件なら尻尾から検索した方が効率いいかもなー???と思った。
0126デフォルトの名無しさん
2014/06/22(日) 04:15:33.61ID:EYYBBLS5なんの工夫もないHaskell http://ideone.com/kSsFHC
0127デフォルトの名無しさん
2014/06/22(日) 08:50:48.27ID:fDsJnYZIf := method(s,
a := s size
for(i, 1, a - 1,
if(a % i == 0 and (s slice(0, a - i)) == s slice(i),
return s slice(0, i)
)
)
s
)
Io> f("abab"repeated(100000))
==> ab
Io> f("1234123")
==> 1234123
Io> d:=("1234123"repeated(10000).."x");d==f(d)
==> true
0128デフォルトの名無しさん
2014/06/22(日) 18:47:42.88ID:t7qk0ITT'文字列Aを1回以上繰り返した文字列Bが与えられたとき文字列Aを求める。
ただしAの候補が複数ある場合は最短のものとする。'('',_) :- !.
'文字列Aを1回以上繰り返した文字列Bが与えられたとき文字列Aを求める。
ただしAの候補が複数ある場合は最短のものとする。'(_文字列B,_文字列A) :-
先頭からの文字列パターン(_文字列B,_文字列A,_残り文字列),
'文字列Aを1回以上繰り返した文字列Bが与えられたとき文字列Aを求める。
ただしAの候補が複数ある場合は最短のものとする。'(_残り文字列,_文字列A),!.
先頭からの文字列パターン(_文字列,_先頭からの文字列パターン,_残り文字列) :-
sub_atom(_文字列,0,Len,_残り文字数,_先頭からの文字列パターン),
\+(Len = 0),
sub_atom(_文字列,_,_残り文字数,0,_残り文字列).
0129デフォルトの名無しさん
2014/06/22(日) 19:45:04.68ID:8dyb2xfWhttp://peace.2ch.net/test/read.cgi/tech/1350893602/
0130デフォルトの名無しさん
2014/06/22(日) 19:53:33.54ID:r6hyP6ZKここはどんなバットで打ってもいいのです
0131デフォルトの名無しさん
2014/06/23(月) 13:34:27.38ID:BsRgtYHO0132デフォルトの名無しさん
2014/06/23(月) 19:19:11.14ID:Utaqz1fC例
110, 119 -> 2
1234, 214 -> 2
567, 23 -> 0
0133デフォルトの名無しさん
2014/06/23(月) 20:34:26.27ID:+5UJW/yX例2がよくわかりません。
0134デフォルトの名無しさん
2014/06/23(月) 21:39:08.83ID:/w+ap15xttp://ideone.com/YRddoZ
0135デフォルトの名無しさん
2014/06/23(月) 23:14:11.51ID:LKXrXOru0136デフォルトの名無しさん
2014/06/23(月) 23:33:47.36ID:Yz5J3/fndef func(*args):
ss = [reversed(str(d)) for d in args]
n = sum(1 for p in zip(*ss) if len(set(p)) == 1)
print "{} -> {}".format(str(args).strip("()"), n)
func(110, 119)
func(1234, 214)
func(567, 23)
0137デフォルトの名無しさん
2014/06/24(火) 06:48:21.25ID:3fEyMdRlhttp://ideone.com/e5FYS9
0138デフォルトの名無しさん
2014/06/24(火) 07:50:21.11ID:+d9rugo5'ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。'(_数_1,_数_2,_数字が一致している桁の個数) :-
ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2),
'数字が一致している桁の個数を求める。'(_数字文字列_1,_数字文字列_2,_数字が一致している桁の個数).
ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2) :-
atom_number(_数文字列_1,_数_1),
atom_number(_数文字列_2,_数_2).
'数字が一致している桁の個数を求める。'(_数字文字列_1,_数字文字列_2,_数字が一致している桁の個数) :-
'個数を求める。'('数字が一致している桁の'(_数字文字列_1,_数字文字列_2),_数字が一致している桁の個数).
'数字が一致している桁の'(_数字文字列_1,_数字文字列_2) :-
sub_atom(_数字文字列_1,_,1,_残り文字数,_数字),
sub_atom(_数字文字列_2,_,1,_残り文字数,_数字).
'個数を求める。'(P,_個数) :-
findall(1,P,L),
length(L,_個数).
0139138
2014/06/24(火) 08:10:25.14ID:+d9rugo5% 間違えた。
ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2) :-
atom_number(_数字文字列_1,_数_1),
atom_number(_数字文字列_2,_数_2).
% でした。第一引数の _数文字列_1 と _数文字列_2 は間違いです。
0140デフォルトの名無しさん
2014/06/24(火) 09:25:25.06ID:+d9rugo5'ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。'(_数_1,_数_2,_数字が一致している桁の個数) :-
ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2),
'数字が一致している桁の個数を求める。'(_数字文字列_1,_数字文字列_2,_数字が一致している桁の個数).
ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2) :-
atom_number(_数字文字列_1,_数_1),
atom_number(_数字文字列_2,_数_2).
'数字が一致している桁の個数を求める。'(_数字文字列_1,_数字文字列_2,_数字が一致している桁の個数) :-
'個数を求める。'('数字が一致している桁の'(_数字文字列_1,_数字文字列_2),_数字が一致している桁の個数).
'数字が一致している桁の'(_数字文字列_1,_数字文字列_2) :-
sub_atom(_数字文字列_1,_,1,_残り文字数,_数字),
sub_atom(_数字文字列_2,_,1,_残り文字数,_数字),
\+(_数字 = '-').
'個数を求める。'(P,_個数) :-
findall(1,P,L),
length(L,_個数).
0141デフォルトの名無しさん
2014/06/24(火) 10:10:50.59ID:AAHBTYvg0142デフォルトの名無しさん
2014/06/24(火) 12:04:35.52ID:prMa5jfif =: [: +/ [: =/ ":@,:
110 f 119
2
1234 f 214
2
2142112322 f 1111111111
3
0143デフォルトの名無しさん
2014/06/24(火) 18:23:54.57ID:prMa5jfif:=method(a,b,if(a==0 or b==0,if(a%10==b%10,1,0)+f(a/10|0,b/10|0)))
Io> f(110,119)
==> 2
Io> f(1234,214)
==> 2
Io> f(567,12)
==> 0
0144デフォルトの名無しさん
2014/06/24(火) 18:28:07.01ID:prMa5jfi間違えました。訂正します。
f:=method(a,b,if(a==0 or b==0,0,if(a%10==b%10,1,0)+f(a/10|0,b/10|0)))
0145デフォルトの名無しさん
2014/06/24(火) 18:40:34.83ID:nNYqUb+/ttp://ideone.com/TItId9
ほぼC。問題があいまいなので変な仕様で作ってみた。
言い分は満たしてるはず。えぇ、めんどくさかったんですよ。
ほとんど標準関数に投げました。
0146デフォルトの名無しさん
2014/06/24(火) 18:44:13.79ID:6pATSNEw+++?++?+++++++?++?++
+++++++?++++?+++++++
?++?+++++++???++++?+
+?++++++?++++?++++++
++++?+++++?+++++?++?
+++?+++++?++?++++++?
+?+++?+++++?+++?++++
++++?+++++?+++++++++
?+?++++?+++++?++++?+
同じ道を通らずに全ての ? を通過する最短経路を求めよ
開始地点は+ 終了地点は?であればスタートとゴールは自由に決めて良い
0147デフォルトの名無しさん
2014/06/24(火) 18:47:36.73ID:6pATSNEw勉強家で最速7分で解け他人あり
0148デフォルトの名無しさん
2014/06/24(火) 19:05:53.33ID:nNYqUb+/ttp://ideone.com/KOPHTa
あってるかなー??
0149デフォルトの名無しさん
2014/06/24(火) 19:09:22.59ID:prMa5jfiたとえば>>132の問題文はどう書けばあいまいじゃないの?
0150デフォルトの名無しさん
2014/06/24(火) 19:12:37.57ID:nNYqUb+/空白が壁?
0151デフォルトの名無しさん
2014/06/24(火) 19:17:32.84ID:miiJpTHR0152デフォルトの名無しさん
2014/06/24(火) 19:21:36.38ID:nNYqUb+/たとえばねー。
お題:ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。
ただし、
・不同順ok
・2つの整数の桁数は少ない方に合わせる。合わせた時の多い方の末尾は削除される。
・同じ数字が続く場合の処理は、ほげほげ。(書いてないから知らんよ。)
等々。
例
110, 119 -> 2
1234, 214 -> 2
567, 23 -> 0
といった感じで、但し書きをすることで条件をちゃんと絞ってほしいんだよ。
こういうのは、自己参照ちゃんとできないとできないんだけどね。
0153デフォルトの名無しさん
2014/06/24(火) 19:22:31.48ID:nNYqUb+/了解。
0154デフォルトの名無しさん
2014/06/24(火) 19:24:55.48ID:nNYqUb+/0155デフォルトの名無しさん
2014/06/24(火) 19:28:28.25ID:prMa5jfiひええ
凡人にはまねできません
0156デフォルトの名無しさん
2014/06/24(火) 19:28:49.85ID:+d9rugo5整数だから、剰余の絶対値でないとうまく行かない筈だけれど、例だけ見ていると、そんなことが窺えないということかな。
0157デフォルトの名無しさん
2014/06/24(火) 19:40:13.89ID:nNYqUb+/じゃー、マネしなくてもいいけど、バグってても出題者の自己責任ね。
0158デフォルトの名無しさん
2014/06/24(火) 19:44:15.76ID:+d9rugo53つの例で桁の定義問題は解決しているように思えるが。
0159デフォルトの名無しさん
2014/06/24(火) 19:46:52.99ID:nNYqUb+/ttp://ideone.com/RFgqBx
マップこれであってるの?
一通のはずが、小島がいくつか見られるが。
そういう場合どうするの?
0160デフォルトの名無しさん
2014/06/24(火) 19:50:30.27ID:nNYqUb+/俺バカだからわからなかったんだよ。
質問したけど無視されたし。
コード書き始めて割り切っていってやっと理解したような気がしたんだけどねぇ。
設計時さっぱりだった。
0161デフォルトの名無しさん
2014/06/24(火) 20:10:18.97ID:nNYqUb+/0162デフォルトの名無しさん
2014/06/24(火) 20:12:21.98ID:ESPrt6pD@Mathematica
numberOfAgreement[n1_,n2_]:=Module[{d1,d2,maxlen},
{d1,d2}={n1,n2}//
Map[IntegerDigits,#]&;
maxlen={d1,d2}//
Map[Length,#]&//
Max;
{d1,d2}//
Map[PadLeft[#,maxlen]&,#]&//
MapThread[List,#]&//
Map[If[#[[1]]==#[[2]],1,0]&,#]&//
Total
];
0163デフォルトの名無しさん
2014/06/24(火) 20:38:49.47ID:nNYqUb+/俺、>>148で2パターン書いたけど、どっちが正解っていえるか?または間違いを指摘できるか?
11,110 -> 2 とかなら、ああ左から比較するんだなとか。
0165デフォルトの名無しさん
2014/06/24(火) 22:25:42.63ID:nNYqUb+/でしょ。情報が圧倒的に足りない。
こういう仕様のいざこざはむっかしから絶えないんだよね。
0166デフォルトの名無しさん
2014/06/24(火) 22:34:58.79ID:6LnPDmO+それが数学というより一般的な「桁」という用語。
何「番目」とかなら、左からとか右からという話になる。
何も言わずに回答している人たちは当然桁という言葉を当然のように踏まえて受け取っている。
0167デフォルトの名無しさん
2014/06/24(火) 22:37:13.63ID:nNYqUb+/じゃー、例2の解法を言葉で説明してほしいなぁ。できたら全力で誤る。
0168デフォルトの名無しさん
2014/06/24(火) 22:39:59.03ID:6LnPDmO+0169デフォルトの名無しさん
2014/06/24(火) 22:43:56.45ID:nNYqUb+/0170デフォルトの名無しさん
2014/06/24(火) 22:47:28.09ID:UpeRHjTe空白を入れてるのはなに?子島とは?
0171デフォルトの名無しさん
2014/06/24(火) 22:49:53.79ID:nNYqUb+/空白は壁って言ってたから、末尾はデータ調整のために空白入れました。
それ以外はこのスレからのコピペです。
0172デフォルトの名無しさん
2014/06/24(火) 22:50:41.71ID:6LnPDmO+国語力に難があるようだね
0173デフォルトの名無しさん
2014/06/24(火) 22:56:02.69ID:nNYqUb+/俺には君の認識能力が特殊に見えるよ。
169>>1桁目は、1と2で、3桁目は3と4じゃないか?それとも二個目の数字の前に一桁あるのか?
合ってるか?
0175デフォルトの名無しさん
2014/06/24(火) 23:04:53.29ID:6LnPDmO+大間違い
0176デフォルトの名無しさん
2014/06/24(火) 23:05:33.48ID:+d9rugo5> お題:ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。
> 例
> 110, 119 -> 2
> 1234, 214 -> 2
> 567, 23 -> 0
例の2
1234
214
^ ^
| |
| 1の 桁
|
100の桁
この二桁だけが同じ数字だから -> 2
0177デフォルトの名無しさん
2014/06/24(火) 23:09:42.24ID:nNYqUb+/214
ちがってるか?
0179デフォルトの名無しさん
2014/06/24(火) 23:12:06.14ID:WID+irzQこういう場合もっと例が何パターンかないとね
0180デフォルトの名無しさん
2014/06/24(火) 23:13:47.21ID:nNYqUb+/N番目まで厳密に規定してなくて並びが同じものを探す話?
0182デフォルトの名無しさん
2014/06/24(火) 23:16:41.04ID:nNYqUb+/これ、分割した数字を右から左に精査するんか。
0183デフォルトの名無しさん
2014/06/24(火) 23:17:24.35ID:+d9rugo5例2が意味するところは、
1) 1の桁と100の桁が4と2で揃っているから-->2
2) 上位桁から揃えるルールではない。それだと-->0 となるはず。
3) 桁の小さい方の整数を自由に移動できるルールだとしたら答えは 0または2になるが、
-->2と答えているから、自由に移動できるルールではない。
0184デフォルトの名無しさん
2014/06/24(火) 23:20:10.30ID:hFZ0LSQg0185デフォルトの名無しさん
2014/06/24(火) 23:23:51.66ID:9vAhTnrq2桁目=十の位
3桁目=百の位
0186デフォルトの名無しさん
2014/06/24(火) 23:26:16.35ID:nNYqUb+/これはすまんかった。算数だったな。根本的に失念していた。
俺のミスだわ。本当にごめんなさい。
しばらく反省するために書くのやめるか。
なんてこった。こんな基本的なこと忘れてるなんて。あいたたたたた。
どう誤ればいいのかよくわからんけど、ほんとにすまんかった。
0187デフォルトの名無しさん
2014/06/24(火) 23:28:49.66ID:+d9rugo5そうですね。位というのだった。
0188デフォルトの名無しさん
2014/06/24(火) 23:29:46.27ID:nNYqUb+/なぜ動いてるのかもわかりませーん。たまたま答えだけ合わせました。
ってことになるな。アー怖い。
0189デフォルトの名無しさん
2014/06/24(火) 23:30:51.58ID:+d9rugo5-1112,110 などがほとんど解答は上手く行かないのではないか。
0190デフォルトの名無しさん
2014/06/24(火) 23:31:51.46ID:WID+irzQ0191189
2014/06/24(火) 23:32:35.09ID:+d9rugo50192デフォルトの名無しさん
2014/06/24(火) 23:33:27.52ID:TXJiobF4そうかー?むしろ例は必要十分じゃね
>>132は問題文にちょっと不備があるけど、例で補えてると思うけどな
「数字が一致している桁の個数を求める」じゃなくて
「同じ位同士の数字を比較し、一致している個数を求める」
とかだったら例がなくても解けそう。
0193デフォルトの名無しさん
2014/06/24(火) 23:35:30.49ID:nNYqUb+/俺のuint64_tなので、裏返って何億とかの数字になっちゃうー。
0194デフォルトの名無しさん
2014/06/24(火) 23:36:32.98ID:6LnPDmO+今回の件で、どちらかというと認識が特殊な状態に陥ってたのは君の方だったね。
(相手が特殊と考えるより自分が先に特殊ではないのかと疑う)謙虚な態度でいた方が、一旦陥った罠から脱出はしやすいと思う。
IQテストとかだと、君のようにこういう「桁」という言葉の常識に囚われない見方も、大切ではある。
0195デフォルトの名無しさん
2014/06/24(火) 23:42:11.14ID:X3HExdh5一番早く正解できるのは誰かな
0196デフォルトの名無しさん
2014/06/24(火) 23:46:10.56ID:nNYqUb+/うん、ごめんね。
プログラムやってると、常識がうっとおしくなって忘却しちゃったんだよ。
それでうまくいってたしなぁ。うーん。こんな罠が・・・。Orz
気を付けてたはずなのに。うーむ。
いい経験になった。あいたたたたた・・・。
0197デフォルトの名無しさん
2014/06/24(火) 23:49:11.40ID:X3HExdh5例に沿って連続する文字をカウントするプログラムを作成せよ。
出力の最後に改行を挿入すること。
標準入力から以下の形式で与えられる。
S
例)
In:
aaaaaaaaaabbbbbbbbbbbbcccccccddddddddddeeeeeeefffffffffghiiiiiiiii
Out:
a10b12c7d10e7f9ghi9
In:
Out:
0
0198デフォルトの名無しさん
2014/06/24(火) 23:49:41.62ID:+d9rugo5>>132は数字の比較を求めていて、
-123,-3423 の場合、剰余数が -2 と -2、-3 と -3 で --> 2 となるのでも間違ってはいないが、
何か仕様と遠い気がする。 -2 と 数字の'2'は同じものではない。
0199デフォルトの名無しさん
2014/06/24(火) 23:50:24.19ID:X3HExdh5abcddd
Out:
abcd3
0200デフォルトの名無しさん
2014/06/24(火) 23:51:06.51ID:X3HExdh50201デフォルトの名無しさん
2014/06/25(水) 00:11:17.61ID:H0BLkDsiなんか不格好になっちゃったw
C
http://ideone.com/jtFVPF
0202デフォルトの名無しさん
2014/06/25(水) 00:20:29.98ID:B1Ok+FAFhttp://ideone.com/B0eki7
ほぼC。2番目か。残念。あってるかな?
結構ヤケになって書いたので間違ってるかも。
さて、しばらくミュートします。みなさま、また逢う日まで!
0203デフォルトの名無しさん
2014/06/25(水) 01:05:21.52ID:R/pd8eJN例:
110, 119 -> T
-110, -119 -> T
-110, 119 -> F
1234, 214 -> F
567, 23 -> F
567, -23 -> F
0204デフォルトの名無しさん
2014/06/25(水) 01:52:18.87ID:WPdQrCl70205デフォルトの名無しさん
2014/06/25(水) 04:22:41.38ID:/nsw1r0Ihttp://peace.2ch.net/test/read.cgi/tech/1313183984/757
0206デフォルトの名無しさん
2014/06/25(水) 04:48:41.24ID:/nsw1r0Ihttp://peace.2ch.net/test/read.cgi/tech/1313183984/758
ideone の runtime error ってなんだろう?
0207デフォルトの名無しさん
2014/06/25(水) 07:21:14.49ID:f3dQ4AsB'アルファベットの小文字aからzで成り立つS(0≦S≦100)が標準入力から与えられる。連続する文字をカウントする。出力の最後に改行を挿入すること。' :-
write('In: '),read(_文字列),
'連続する文字をカウントする'(_文字列,'',_出力文字列),
writef('Out:\n%t\n',[_出力文字列]).
'連続する文字をカウントする'('','') :- !.
'連続する文字をカウントする'(_文字列,_出力文字列) :-
文字列の先頭から同一文字を切り取る(_文字列,_連続文字,_連続文字数,_残り文字列),
'連続する文字をカウントする'(_残り文字列,_残り出力文字列),
atomic_list_concat([_連続文字,_連続文字数,_残り出力文字列],_出力文字列).
文字列の先頭から同一文字を切り取る(_文字列,_連続文字,_連続文字数,_残り文字列) :-
sub_atom(_文字列,0,1,_,_連続文字),
連続文字数と残り文字列を得る(_文字列,_連続文字,_連続文字数,_残り文字列).
連続文字数と残り文字列を得る(_文字列,_連続文字,_連続文字数,_残り文字列) :-
sub_atom(_文字列,_連続文字数,1,_,_文字),
\+(_連続文字 = _文字),
sub_atom(_文字列,_連続文字数,_,0,_残り文字列),!.
連続文字数と残り文字列を得る(_文字列,_連続文字,_連続文字数,'') :-
atom_length(_文字列,_連続文字数).
0208デフォルトの名無しさん
2014/06/25(水) 07:33:17.91ID:5ZruJZzNhttp://ideone.com/nftddV
>>203
http://ideone.com/NqH3JC
0209208
2014/06/25(水) 07:51:38.73ID:5ZruJZzN>>197 Perl
http://ideone.com/IAKmMX
0210デフォルトの名無しさん
2014/06/25(水) 08:00:42.64ID:f3dQ4AsB'2つの整数が与えられたとき、桁数が同じ場合を求める。 指数関数は使わないこと。'(_整数_1,_整数_2) :-
number_chars(_整数_1,_数字ならび_1),
number_chars(_整数_2,_数字ならび_2),
length(_数字ならび_1,_桁数),
length(_数字ならび_2,_桁数).
0211デフォルトの名無しさん
2014/06/25(水) 08:24:39.87ID:8w+cRTmXa := 0
c := 0
File standardInput foreach(v,
if(v != a,
write(if(c > 1, c, ""), v asCharacter)
c = 1
,
c = c + 1
)
a = v
)
c println
0212132
2014/06/25(水) 09:30:08.51ID:8w+cRTmXそれから>>203は別の人の出題です。
0213デフォルトの名無しさん
2014/06/25(水) 09:35:34.23ID:mgUMoqXVttp://ideone.com/GbaVHe
0214デフォルトの名無しさん
2014/06/25(水) 12:27:10.04ID:8w+cRTmXf=:[:;('1'-.~":)(L:0)@(~. (;"_1) (#/.)~)
echo f stdin''
f'aassd'
a2s2d
0215207
2014/06/25(水) 16:49:42.18ID:f3dQ4AsB'連続する文字をカウントする'(_文字列,'',_出力文字列),
% これ3引数で呼び出しているが、これは第二引数を削除し忘れ。
'アルファベットの小文字aからzで成り立つS(0≦S≦100)が標準入力から与えられる。連続する文字をカウントする。出力の最後に改行を挿入すること。' :-
write('In: '),read(_文字列),
'連続する文字をカウントする'(_文字列,_出力文字列),
writef('Out:\n%t\n',[_出力文字列]).
% が正しい。
0216デフォルトの名無しさん
2014/06/25(水) 19:09:52.11ID:AAkwOzRQそれらの共通部分の長方形を求めたいのですが、お手軽な方法はありますか?
P、Qは、以下のように4つの頂点座標が与えられているとして。
座標は整数値とします。
P12(x1p,y2p) P22(x2p,y2p)
P11(x1p,y1p) P21(x2p,y1p)
Q12(x1q,y2q) Q22(x2q,y2q)
Q11(x1q,y1q) Q21(x2q,y1q)
0217デフォルトの名無しさん
2014/06/25(水) 19:15:34.66ID:G8i3M3G9第9回 凸多角形の交差計算(前編)
http://gihyo.jp/dev/serial/01/geometry/0009
凸多角形の共通部分
http://www.prefield.com/algorithm/geometry/convex_intersect.html
0218デフォルトの名無しさん
2014/06/25(水) 20:11:25.97ID:AAkwOzRQ長方形の場合に限定して、誰かプログラム作ってください。
0219片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/25(水) 20:28:19.98ID:n7E3MpSB{
return rc->x0 >= rc->x1 || rc->y0 >= rc->y1;
}
bool intersect_rect(rect *dst,const rect*src1,const rect*src2)
{
if (is_rect_empty(src1) || is_rect_empty(src2) ||
src1->x0 >= src2->x1 || src2->x0 >= src1->x1 ||
src1->y0 >= src2->y1 || src2->y0 >= src1->y1)
return false;
dst->x0 = max(src1->x0,src2->x0);
dst->x1 = min(src1->x1,src2->x1);
dst->y0 = max(src1->y0,src2->y0);
dst->y1 = min(src1->y1,src2->y1);
return true;
}
0220デフォルトの名無しさん
2014/06/25(水) 20:36:42.95ID:QX6G9n4a2つの線分(x1p, x2p)、(x1q, x2q)が重なる場合は、
(x1p - x2q) * (x2p - x1) < 0
となる。
例えば下図のとおり。
x1p----------x2p
x1q---------------x2q
yについても同様に、重なり有無を判定出来る。
x, yの両方に重なりがあれば、重なる長方形エリアが有る、という事。
重なるエリアの座標の求め方。
まずxについては
(x1p, x2p, x1q, x2q)をソートした結果が(x1, x2, x3, x4)とすると
(x2, x3)が重なるエリアのx座標。
yも同様に求める。
0221デフォルトの名無しさん
2014/06/25(水) 20:58:06.95ID:fIlVvDUl@Mathematica
countSerialCharacter[s_]:=s//
Characters//
Tally//
Flatten//
Map[If[#==1,"",#]&,#]&//
Map[ToString,#]&//
StringJoin//
#<>"\n"&;
0222デフォルトの名無しさん
2014/06/25(水) 21:13:44.19ID:8w+cRTmX関係ないけど「凸多角形」をみると凸という字は凸多角形じゃないと思ってしまう
0223デフォルトの名無しさん
2014/06/25(水) 21:30:53.24ID:kfu/Y8iAimport re, sys
s = "aaaaaaaaaabbbbbbbbbbbbcccccccddddddddddeeeeeeefffffffffghiiiiiiiii"
if len(sys.argv) >= 2:
s = sys.argv[1]
print "".join(["{}{}".format(m.group(1),len(m.group(0))) for m in re.finditer(r"([a-z])\1*", s)])
0224デフォルトの名無しさん
2014/06/26(木) 06:49:20.73ID:3bBuyKJI0225デフォルトの名無しさん
2014/06/26(木) 09:15:51.05ID:anyqRfvP(format t "~{n=~D, ~D steps.~}~%"
(loop for n from 1 upto 10000
collect (loop for count upfrom 0
for i = n then (if (evenp i) (/ i 2) (* (+ i 1) 3))
until (= i 3)
finally (return (list n count)))
into seq
finally (return (first (sort seq #'> :key #'second)))))
出力:
n=7421, 239 steps.
0226デフォルトの名無しさん
2014/06/26(木) 09:47:24.38ID:jelhdoL6有難うございました。
たいへん感謝しております。さっそく利用させて頂きます。
>>220
解説ありがとうございました。理解できました。
皆さん頭いいですね。
0227デフォルトの名無しさん
2014/06/26(木) 11:06:46.24ID:j1I0ttpix0<=x1かつy0<=y1を前提にしていますのでご注意を。
0228デフォルトの名無しさん
2014/06/26(木) 11:47:23.22ID:SC8QqvR30229デフォルトの名無しさん
2014/06/26(木) 12:26:30.27ID:a5DVBYeG0230デフォルトの名無しさん
2014/06/26(木) 12:43:55.13ID:b6/TNK68http://ideone.com/1L8Dc1
0231デフォルトの名無しさん
2014/06/26(木) 18:05:42.04ID:oxBW6fYkこれはひどい
0232デフォルトの名無しさん
2014/06/26(木) 18:25:17.39ID:3bBuyKJIちゃんと理由も書かずにそんなことを言う方がひどい
0233デフォルトの名無しさん
2014/06/26(木) 21:02:03.97ID:UtgvthMy@Mathematica
g[nmax_]:=Module[{f},
f[n_]:=NestWhileList[
Which[
EvenQ[#],#/2,
True,3*(#+1)]&,
n,
#!=3&];
nmax//
Range[1,#]&//
Map[{#,Length[f[#]]-1}&,#]&//
Sort[#,#1[[2]] > #2[[2]]&]&//
First//
"n="<>ToString[#[[1]]]<>", "<>ToString[#[[2]]]<>" steps"&
];
0234デフォルトの名無しさん
2014/06/27(金) 01:15:21.35ID:z83xp8mBttp://ideone.com/thhLQG
0235デフォルトの名無しさん
2014/06/27(金) 06:05:09.55ID:6gnfhLnKとってもわかりやすく美しいコーディングだな
0236デフォルトの名無しさん
2014/06/27(金) 06:15:11.42ID:/tBLbKnnhttp://peace.2ch.net/test/read.cgi/tech/1393660194/
0237デフォルトの名無しさん
2014/06/27(金) 08:13:07.91ID:6gnfhLnKScheme
ステップ数を求める関数を再帰にしてみた。
Schemeなので末尾再帰の最適化が効いているとはいえシンプルなループより20%ほど遅い
http://codepad.org/Kv6PMM5u
0238デフォルトの名無しさん
2014/06/27(金) 08:13:34.08ID:6gnfhLnKそんな君は硬直頭乙
0239デフォルトの名無しさん
2014/06/27(金) 09:47:14.96ID:cYIjyZKJ0240デフォルトの名無しさん
2014/06/27(金) 10:25:12.24ID:+d6mrCHpすごくSchemeっぽくない
0242デフォルトの名無しさん
2014/06/27(金) 13:16:22.62ID:1+Sp/Gzhまあ、超初心者だし
Schemeぽくかくとどうなるの?
0243デフォルトの名無しさん
2014/06/27(金) 13:18:34.88ID:T6qhwk5cL(100≦L≦100)
標準入力から以下の形式で与えられる
S L
例を参考にoとxを配置せよ
例
3 2
oooxxx
oooxxx
oooxxx
xxxooo
xxxooo
xxxooo
2 3
ooxxoo
xxooxx
ooxxoo
1 1
o
2 1
oo
0244デフォルトの名無しさん
2014/06/27(金) 13:19:07.70ID:T6qhwk5c0245デフォルトの名無しさん
2014/06/27(金) 13:40:40.34ID:1+Sp/Gzhていうか、俺は勉強中だし短く書かない
0246デフォルトの名無しさん
2014/06/27(金) 14:03:08.81ID:TynlDK3k0247デフォルトの名無しさん
2014/06/27(金) 14:13:23.67ID:IIJLJhWZ「出力例から仕様を推測せよ」というお題は苦手
0248デフォルトの名無しさん
2014/06/27(金) 14:18:03.91ID:6gnfhLnK0249デフォルトの名無しさん
2014/06/27(金) 14:29:40.92ID:jrf75mY10250デフォルトの名無しさん
2014/06/27(金) 14:32:19.40ID:6gnfhLnK規則1 一つのブロックの長さはS
規則2 一列の長さはS*L
規則3 げ・・わからなくなった
0251デフォルトの名無しさん
2014/06/27(金) 14:34:06.26ID:6gnfhLnKそこは(1≦L≦100)の間違いだろ(と見なした)
0252デフォルトの名無しさん
2014/06/27(金) 14:34:31.27ID:6gnfhLnK0253デフォルトの名無しさん
2014/06/27(金) 14:36:22.75ID:TynlDK3k単純に考えても上手くいかないよねぇ
AとBとかじゃなくて、SとLにしたことに何か意味があるのかとか考えてるけど思いつかないwww
0254デフォルトの名無しさん
2014/06/27(金) 14:38:49.94ID:SKslXSwB0255デフォルトの名無しさん
2014/06/27(金) 14:44:59.82ID:+d6mrCHpループカウンタなどを累積引数として関数の引数に追加すれば、破壊的代入を使わずに末尾再帰できる
そもそもループを破壊的代入を使って表現する必要があるのは
末尾再帰最適化が仕様にないCommonLispやEmacsLispで
それらもループマクロとして表現しているので破壊的代入は隠蔽されている
http://ideone.com/aSVmkC
0256デフォルトの名無しさん
2014/06/27(金) 15:02:39.50ID:6gnfhLnKサンキュ
勉強する
0257デフォルトの名無しさん
2014/06/27(金) 15:15:30.76ID:gfNg5K0F某コードゴルフの英文を和訳しただけだからできない奴がレベルが低いんだお
0258デフォルトの名無しさん
2014/06/27(金) 15:21:08.06ID:mP/api6Q出題に対していくつも間違っていない回答例が出るけど正解は出題者の回答だけって。
0259デフォルトの名無しさん
2014/06/27(金) 15:24:38.32ID:gfNg5K0F0260デフォルトの名無しさん
2014/06/27(金) 15:26:52.92ID:gfNg5K0F例
3 2
oooxxx
oooxxx
oooxxx
xxxooo
xxxooo
xxxooo
2 3
ooxxoo
ooxxoo
xxooxx
xxooxx
ooxxoo
ooxxoo
1 1
o
2 1
oo
0261デフォルトの名無しさん
2014/06/27(金) 15:27:29.92ID:TynlDK3kそれなら解けるわアホwwww
0262デフォルトの名無しさん
2014/06/27(金) 15:34:33.43ID:mP/api6Q0263デフォルトの名無しさん
2014/06/27(金) 15:36:07.74ID:+d6mrCHp> 2 1
> oo
解く気ないけどこれあってる?
0264デフォルトの名無しさん
2014/06/27(金) 15:43:33.76ID:gfNg5K0F0265デフォルトの名無しさん
2014/06/27(金) 16:01:18.23ID:6gnfhLnKゲゲゲ!!!!
出題みすだらけ!
ちゃんと見直してほしい
0266デフォルトの名無しさん
2014/06/27(金) 16:47:02.93ID:6gnfhLnKそれ、
○○
○○
じゃないかね
0267デフォルトの名無しさん
2014/06/27(金) 16:48:22.91ID:hZLtHGAAhttp://ideone.com/S0jmC5
>>260 Common Lisp
http://ideone.com/xJrUSI
0268デフォルトの名無しさん
2014/06/27(金) 17:16:12.97ID:6gnfhLnK>>243
Scheme
(make-matrix 3 2)
(0 0 0 1 1 1)
(0 0 0 1 1 1)
(0 0 0 1 1 1)
(1 1 1 0 0 0)
(1 1 1 0 0 0)
(1 1 1 0 0 0)
(make-matrix 2 3)
(0 0 1 1 0 0)
(0 0 1 1 0 0)
(1 1 0 0 1 1)
(1 1 0 0 1 1)
(0 0 1 1 0 0)
(0 0 1 1 0 0)
(make-matrix 1 1)
(0)
(make-matrix 2 1)
(0 0)
(0 0)
相変わらずSchemeぽくないだろうけど
ttp://codepad.org/R7MYVzCy
0269デフォルトの名無しさん
2014/06/27(金) 17:18:58.08ID:6gnfhLnKS=2 L=1がちがうんだあ
うーむ、ねる
0270デフォルトの名無しさん
2014/06/27(金) 17:23:14.06ID:7YjTFkejttp://ideone.com/3yOOpr
0271デフォルトの名無しさん
2014/06/27(金) 17:55:21.82ID:WBIkvaOn2 1 のケースがわからないので特別扱い。
f =: 4 : 0
c =. (y = 1) { x , 1
a =. 'o' $~ c , x
b =. 'x' $~ c , x
,./,./>(b ; a) {~ =/~ 0 1 $~ y
)
2 f 1
oo
1 f 1
o
3 f 1
ooo
1 f 3
oxo
xox
oxo
2 f 2
ooxx
ooxx
xxoo
xxoo
0272デフォルトの名無しさん
2014/06/27(金) 18:42:03.89ID:tVuv5STrhttp://ideone.com/6GuIKW
0273デフォルトの名無しさん
2014/06/27(金) 19:00:49.15ID:/cFHuc2v2 1
oo
oo
0274デフォルトの名無しさん
2014/06/27(金) 19:01:54.76ID:2pAWE6pohttp://ideone.com/1oR3Vd
0275デフォルトの名無しさん
2014/06/27(金) 19:24:07.88ID:1+Sp/Gzhやっぱりそうかあ
じゃ>>268でよしと
0276デフォルトの名無しさん
2014/06/27(金) 19:33:03.23ID:WBIkvaOnf =: 4 : 0
a =. 'o' $~ x , x
b =. 'x' $~ x , x
,./,./>(b ; a) {~ =/~ 0 1 $~ y
)
2 f 1
oo
oo
3 f 1
ooo
ooo
ooo
0277デフォルトの名無しさん
2014/06/27(金) 21:23:50.23ID:0NE+vhQDdef f(S,L):print"\n".join(["".join(["ox"[(i/S+j/S)&1]for j in range(S*L)])for i in range(S*L)]+[""])
f(3,2),f(2,3),f(1,1),f(2,1)
0278デフォルトの名無しさん
2014/06/28(土) 01:53:06.97ID:/hGDVenf0279デフォルトの名無しさん
2014/06/28(土) 06:02:00.78ID:ceaE8o9Rもう、ド底辺ドカタの発想やめてくんない?
0280デフォルトの名無しさん
2014/06/28(土) 06:38:06.40ID:8fzSy6NM0281デフォルトの名無しさん
2014/06/28(土) 08:12:09.23ID:hS2Ud4cQC言語で。
#include <stdio.h>
int main()
{
int s, l;
scanf("%d %d", &s, &l);
for (int i = s * l; i--;)
{
for (int j = s * l; j--;)
putchar((i / s + j / s) % 2 ? 'x' : 'o');
putchar('¥n');
}
return 0;
}
0282デフォルトの名無しさん
2014/06/28(土) 09:05:02.55ID:yP1KNiEz@Mathematica
makeMatrix[s_,l_]:=Module[{makeBaseMatrix,elementExpander},
makeBaseMatrix[lx_]:=Table[If[EvenQ[i+j-1],1,0],{i,1,lx},{j,1,lx}];
elementExpander[sx_,bx_]:=Table[bx,{i,1,sx},{j,1,sx}];
makeBaseMatrix[l]//
Map[Map[elementExpander[s,#]&,#]&,#]&//
Map[MapThread[List,#]&,#]&//
Map[Map[Flatten,#]&,#]&//
Flatten[#,1]&
];
0283デフォルトの名無しさん
2014/06/28(土) 09:34:41.79ID:nE8Pthavcheck [n,m] = f [f "ox", f "xo"] where f = (replicate n =<<) . take m . cycle
main = putStrLn . unlines . check . map read . words =<< getLine
0284デフォルトの名無しさん
2014/06/29(日) 10:00:12.32ID:6bSP0Nqnreturn (long int)a *10;
}
-------------------
void swap(int *p, *q){
int tmp;
temp = *p;
*p = *q;
*q = temp;
return
}
下の、ポインタのやつは分かるんですが、上のやつはポインタ使ってないのに
値を返すのは、どうしてですか?
0285デフォルトの名無しさん
2014/06/29(日) 10:31:01.83ID:zjmbmtCs大きな構造体を返す関数を書いてコンパイルしてデバッグしてみなよ
面白いコード吐くから
0286ああああああああああ
2014/06/29(日) 11:09:24.69ID:NFKC3os6戻り値の変数型 関数名(){}
0287デフォルトの名無しさん
2014/06/29(日) 12:33:06.51ID:SODsEjjY2. tmpなのかtempなのか
3.returnのあとに;をつけましょう
4.こんなもんにはつられんぞ
0288デフォルトの名無しさん
2014/06/29(日) 19:13:53.32ID:f0WIPed4これの問題わかる?
0289デフォルトの名無しさん
2014/06/29(日) 19:19:33.40ID:lFZ15VQI0290デフォルトの名無しさん
2014/06/29(日) 19:27:46.92ID:f0WIPed40291デフォルトの名無しさん
2014/06/29(日) 20:24:14.45ID:XIYpqSXLこういうこと?
http://codepad.org/BCSvsDU0
0292デフォルトの名無しさん
2014/06/29(日) 20:33:04.86ID:XIYpqSXL+ #define N (8 * sizeof(int))
- #define N sizeof(int)
0293デフォルトの名無しさん
2014/06/29(日) 20:41:08.47ID:s1CDyW9K確かにオーバーフローしたらうまくいかないけど、
このあたりは問題文の記述が不足している感じがする。
C言語としても未定義だし
>>【前提】
>>扱う数値は全てNビットの整数
だけでは符合無しのNビットの数とも読めるし
0294デフォルトの名無しさん
2014/06/29(日) 23:47:01.23ID:zB0X93p/int a = ((y - x) & (~x ^ y) | (~x & y)) >> (N - 1); // (x > y) ? -1 : 0
int z = y ^ ((x ^ y) & a);
0295デフォルトの名無しさん
2014/06/30(月) 00:00:41.64ID:t2QY93Gt見やすさなんてしらねえよ、一番短いコードを書いた奴が海賊王だ
0296デフォルトの名無しさん
2014/06/30(月) 00:26:08.54ID:+bYHVEuQuse 5.18.2;
use bigint;
my $last = 481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447580;
say (++$last) * $last / 2;
結果:481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447581
0297デフォルトの名無しさん
2014/06/30(月) 00:35:17.59ID:CGk8SAom0298デフォルトの名無しさん
2014/06/30(月) 00:36:32.30ID:+bYHVEuQuse 5.18.2;
use bigint;
my $last = 481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447580;
say ((++$last) * $last / 2);
結果:
115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579815724530711698507413079937558286807046061562081164567035924479985814641465025169002222375780
0299デフォルトの名無しさん
2014/06/30(月) 00:39:33.15ID:+bYHVEuQつうか何もカッコ付けない方が良かったぽい
say ++$last * $last / 2;
0300デフォルトの名無しさん
2014/06/30(月) 00:45:19.88ID:q3ApJOlF例:123は、1,23 1,2,3 12,3のように分割出来る。
1,23 ---> 23*23-1 ---> 528
1,2,3 ---> 1*1+1*1 ---> 2
12,3 ---> 12*12-3*3 ---> 135
よって1,23が答え。
0301デフォルトの名無しさん
2014/06/30(月) 00:47:36.71ID:3F05CPDt7580*(7580+1)/2 = 28731990
下4桁は 1990 じゃね?
0302デフォルトの名無しさん
2014/06/30(月) 00:48:51.19ID:q3ApJOlF訂正します。
1,23 ---> 22*22 ---> 484
1,2,3 ---> 1*1+1*1 --> 2
12,3 ---> 9*9 ---> 81
です。
0303デフォルトの名無しさん
2014/06/30(月) 00:56:34.66ID:1re/oN4f115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579575211243625269821893824789712416737726474921561932652343069235804990490541883466083413151990
0304デフォルトの名無しさん
2014/06/30(月) 01:10:02.22ID:+bYHVEuQなんでだろう?
Perlのバグ?
インクリメント止めたら
say (($last + 1) * $last / 2);
115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579575211243625269821893824789712416737726474921561932652343069235804990490541883466083413151990
になった。
bigintでインクリメントは使っては駄目なんだろうか?
ちょっとでもコードを短くと思ったんだけど……
0305片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/30(月) 01:14:22.20ID:CGk8SAom0306デフォルトの名無しさん
2014/06/30(月) 01:15:53.22ID:+bYHVEuQそっか。それは確かにそうだ。thanx!
0307デフォルトの名無しさん
2014/06/30(月) 02:26:07.66ID:by3cNm9Pこれ
>>273
とおなじひと?
どうも出題が曖昧だな
0308デフォルトの名無しさん
2014/06/30(月) 06:36:05.99ID:76lBVk6p90文字
http://ideone.com/Z2iJQd
0309デフォルトの名無しさん
2014/06/30(月) 08:44:41.68ID:FpyV2Xga与えられた数値の数字列を先頭から順に使って
0311デフォルトの名無しさん
2014/06/30(月) 08:51:40.06ID:FpyV2Xga0312デフォルトの名無しさん
2014/06/30(月) 09:00:48.60ID:YKYlOP4w>>300 与えられた数字を先頭から順に桁ごとに区切って使って数列を作り、>>295 use bigint; say
240513287086428685519255147845870069319586640519231914692855244180824150923141702918809223790 *
481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447581 ;
0313☆☆☆☆☆
2014/06/30(月) 12:13:05.64ID:J2AJY7m0目標3分以内
25秒以内で書ければ優秀
----------------------
田中君はアイテムを合成して別のものを作る能力を持っています
銅を3個合成すると銀が1個作れます
銀を3個合成すると金が1個作れます
各アイテムの個数を銅=D, 銀=G, 金=Kとします
標準入力から与えられる個数の範囲を0≦(D, G, K)≦10000とします
お客さんから必要なアイテムのオーダーを受けるので、全て作成するのに必要最低限の銅の数を求めなさい
標準入力から以下の書式で与えられます
K G D
-------------------
テストケース
0 0 1 => 1
0 2 1 => 7
1 0 3 => 30
0314デフォルトの名無しさん
2014/06/30(月) 12:16:06.92ID:J2AJY7m00 0 1 => 1
0 2 1 => 7
1 0 3 => 10
0315片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/30(月) 12:30:03.52ID:T7TvcWS5<文> ::= <領域> "は" <領域> "か。".
<領域> ::= <制約> <基本領域>.
<基本領域> ::= "自然数" | "整数" | "実数".
<制約> ::= <OR制約> "でない" | <OR制約>.
<数> ::= [0-9]+ "." [0-9]+ | [0-9]+.
<OR制約> ::= <OR制約> "または" <AND制約> | <OR制約> "か" <AND制約> | <AND制約>.
<AND制約> ::= <数> "以下で" <AND制約>
| <数> "以下" <AND制約>
| <数> "以上で" <AND制約>
| <数> "以上" <AND制約>
| <数> "より小さく" <AND制約>
| <数> "より大きく" <AND制約>
| <AND制約> "かつ" <基本制約>.
| <基本制約>.
<基本制約> ::= <数> "以下"
| <数> "以上"
| <数> "より小さい"
| <数> "より大きい"
| "(" <OR制約> ")".
0316片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/30(月) 12:34:07.72ID:T7TvcWS5<領域> ::= <制約> <基本領域> | <基本領域>.
0317片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/30(月) 13:03:21.85ID:CGk8SAom0318デフォルトの名無しさん
2014/06/30(月) 13:09:27.46ID:YKYlOP4wK*9+G*3+D じゃあだめなのか。
0319デフォルトの名無しさん
2014/06/30(月) 13:37:41.95ID:26x9m6sz0320デフォルトの名無しさん
2014/06/30(月) 13:49:24.84ID:7FoUPvVOほんと、迷惑なのでやめてほしい
人の迷惑考えてる?
問題解けないからせめて出題したいのか?
それは考え違い
解けない人が出すと
いいかげんな問題についてなるのがおち
なんて書くとプッツンきてあらしになりそうだな
0321デフォルトの名無しさん
2014/06/30(月) 14:09:43.48ID:CGk8SAom0322デフォルトの名無しさん
2014/06/30(月) 14:15:48.78ID:7FoUPvVOその後、修正してたけど
いちいち、問題自体の妥当性検討なんかきてられるか
ここは
「それは妥当な問題か健闘するスレ」
なのか?
話にならん
0323デフォルトの名無しさん
2014/06/30(月) 14:16:19.50ID:7FoUPvVO0324デフォルトの名無しさん
2014/06/30(月) 14:18:31.19ID:7FoUPvVO0325デフォルトの名無しさん
2014/06/30(月) 14:20:23.15ID:9okftfsw0326デフォルトの名無しさん
2014/06/30(月) 14:20:33.33ID:CGk8SAom○なんかしてられるか
×健闘するスレ
○検討するスレ
0327デフォルトの名無しさん
2014/06/30(月) 14:27:55.81ID:CGk8SAom0328デフォルトの名無しさん
2014/06/30(月) 14:34:02.54ID:l9aKrYN2どうした?学校でいじめられてるのか?落ち着け
0329デフォルトの名無しさん
2014/06/30(月) 14:36:43.37ID:7FoUPvVOやれやれ
ぞくぞくとあほーが
仕方ないな、こんなスレだし
0330デフォルトの名無しさん
2014/06/30(月) 14:38:58.43ID:9SMqmnH2それが多分一番いいと思う
var tax = 1.05みたいな税率固定で後で修正が生まれる感じなので俺はやらないけど
0331デフォルトの名無しさん
2014/06/30(月) 14:40:46.01ID:CGk8SAom0332デフォルトの名無しさん
2014/06/30(月) 14:55:46.28ID:7FoUPvVOおまえ、精神病か?
それとも妄想即現実視の形而上学馬鹿か?
ん?馬鹿だから意味わかんないってか?
アハハ
0333デフォルトの名無しさん
2014/06/30(月) 15:13:31.69ID:CGk8SAom別に君のことを言った訳じゃないからね
0334デフォルトの名無しさん
2014/06/30(月) 15:19:53.80ID:by3cNm9Pわかりやすいくず
乙
0335デフォルトの名無しさん
2014/06/30(月) 17:08:30.97ID:26x9m6sz>>243-244
>>257
>>259-260
>>263-264
>>273
0336デフォルトの名無しさん
2014/06/30(月) 17:19:43.81ID:EYDR7xk50337デフォルトの名無しさん
2014/06/30(月) 17:35:05.85ID:26x9m6sz見ただけで分かるような間違いを平気でそのまんまにしておくやつにかける言葉としちゃ優しい方だろ
0338デフォルトの名無しさん
2014/06/30(月) 17:37:24.22ID:j9QoncGa0339デフォルトの名無しさん
2014/06/30(月) 19:00:30.67ID:OP+eMRFG0340デフォルトの名無しさん
2014/06/30(月) 19:01:07.51ID:HhKWif/x0341片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/30(月) 20:17:07.31ID:CGk8SAomはい
>2より大きく4より小さい整数は実数か?
はい
0342片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/06/30(月) 20:20:42.31ID:CGk8SAomいいえ
>実数は整数か?
いいえ
0343デフォルトの名無しさん
2014/06/30(月) 23:19:47.83ID:HxSDp0H80344デフォルトの名無しさん
2014/06/30(月) 23:29:15.07ID:uUajdWw8>>243-273までの流れみて同じこと言えるなら、お前はそれでやってけば?
0345デフォルトの名無しさん
2014/06/30(月) 23:54:15.75ID:649AII3Xアニメ見るので帰りますよ
0346デフォルトの名無しさん
2014/06/30(月) 23:57:26.99ID:E06QCwsR全録レコーダーくらい用意しておくのが社畜のたしなみとゆうものだろう!
0347デフォルトの名無しさん
2014/07/01(火) 02:23:35.61ID:hWpKdQkT( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、、、、し 、、、(((.@)/30 7/1 7/2
0348デフォルトの名無しさん
2014/07/01(火) 04:38:27.43ID:BVpg6CTGではなくて
問題になっていないものを出し続ける馬鹿が一人いるということ
適当すぎ
0349デフォルトの名無しさん
2014/07/01(火) 05:20:54.74ID:otDDn24O0350デフォルトの名無しさん
2014/07/01(火) 07:56:48.98ID:3GABGLyQ0351デフォルトの名無しさん
2014/07/01(火) 11:30:25.93ID:5MgriEGv0352デフォルトの名無しさん
2014/07/01(火) 14:43:38.36ID:J4eryFJGn = p*q - modulo
(e, n) - public parameters of cryptosystem
(d, n) or (d, p,q) - private parameters of cryptosystem
m - message
m^e = c (mod n) - cipher text
m^(e*d) = m (mod n)
So, your task to find d parameter having p,q,e numbers.
I'm guarantee that the number e is valid.
Input: p q e
Output: d
テストケース
------------
IN
5
7
5
Out
5
素数pと素数qから(p-1)と(q-1)の最小公倍数を求める。
最大p*qまでの数で、n*最小公倍数+1の集合を求める。
この集合の中から、eで割り切れる数を探す。
例:p=5,q=7:(5-1)と(7-1)つまり4と6の最小公倍数は12。
例:p*q=35なので12+1,24+1,36+1(>35)つまり13と25。
例:25/5=5=dとなる。eは割り切れる数があらかじめ入力される。
0354デフォルトの名無しさん
2014/07/01(火) 18:21:19.43ID:XPXTuhdJ偉そうにコメント書き込んでた奴らは英語読めないんだなwwwwwwwwwwwww
0355デフォルトの名無しさん
2014/07/01(火) 18:43:09.30ID:AM6RIy0R日本語で出題してください
0356デフォルトの名無しさん
2014/07/01(火) 19:33:07.79ID:ZUAu2eXQhttp://ideone.com/guv4YD
> この集合の中から、eで割り切れる数を探す。
なら、
Out
25
じゃなくていいの?
0357デフォルトの名無しさん
2014/07/01(火) 19:37:05.97ID:4ksOGHD/きみなの?馬鹿な問題出し続けてたの
で、>>352 これまたはるかにお馬鹿な問題だしたの?
英語になってないよ
これとは別に、(p-1)と(q-1)の最小公倍数を素因数分解して、eの候補を全て列挙したいです。
357>>英語読める人?
0359デフォルトの名無しさん
2014/07/01(火) 20:27:22.80ID:l9yjQtpJSo, your task to find d parameter having p,q,e numbers.
↓
So, your task is to find d parameter having p,q,e numbers.
0360デフォルトの名無しさん
2014/07/01(火) 20:28:18.25ID:l9yjQtpJI'm guarantee that the number e is valid.
↓
I guarantee that the number e is valid.
0361デフォルトの名無しさん
2014/07/01(火) 21:46:09.01ID:0frJXIds帰っていいよ
0362デフォルトの名無しさん
2014/07/01(火) 21:48:58.23ID:gE7BozM3お前恥ずかしいなww
0363デフォルトの名無しさん
2014/07/01(火) 21:52:03.48ID:l9yjQtpJeおよびdは、(p-1)と(q-1)の最小公倍数を求めてそれを整数倍して、1を足した数の素因数です。
p, q ... 素数
n = p*q ... 2個の素数の積
(e, n) ... eとnは暗号化の公開鍵
(d, n) or (d, p, q) ... dとnまたは、dとpとqは暗号化の秘密鍵
m ... 暗号化する文(平文)
m^e = c (mod n) ... cはmをe乗した値{をnで割った余り}、cはmを暗号化した暗号文
m^(e*d) = m (mod n) ... 暗号文をさらにd乗した値{をnで割った余り}がm(平文)である
Input:
p
q
Output:
e d
e d
Test case.
------------
Input:
29
37
Output:
11 23
5 101
英語のハードルは低いと思うけど、問題を変えてみた。
0365デフォルトの名無しさん
2014/07/01(火) 21:55:01.85ID:0frJXIdsお前の力じゃ読めても解けなさそう
0366デフォルトの名無しさん
2014/07/01(火) 22:33:20.39ID:ZVl2H7Qpもうちょっと言葉選ぼうぜー。
0367デフォルトの名無しさん
2014/07/01(火) 22:59:25.44ID:Y7RI/8xmほら原文貼ってやるから解いてみろって
世の中にはお前みたいなカスだらけじゃないんだよ
http://jagc.org/task/52bd90bb2735ee4a6a080000
0368デフォルトの名無しさん
2014/07/01(火) 23:00:02.76ID:Y7RI/8xmはい解いてね〜wwwwwwwwwwwwwwwww
0369デフォルトの名無しさん
2014/07/01(火) 23:13:35.98ID:8OIckluf0370デフォルトの名無しさん
2014/07/01(火) 23:18:11.17ID:AM6RIy0Rspiral
Build a matrix of numbers, which will be presented in the form of a spiral.
The input is the size of the matrix. Use tabs as a delimeter.
IN
3
OUT
1 2 3
8 9 4
7 6 5
IN
5
OUT
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
0371デフォルトの名無しさん
2014/07/01(火) 23:41:43.01ID:5GRPRLAI0372デフォルトの名無しさん
2014/07/01(火) 23:53:59.31ID:AM6RIy0R・入出力例が一つしかなくどう並べるのかわからない((√n,√n)なのか(3,n/3)なのかそれ以外なのか)
・平方数ならわかるが、なぜ奇数に限定するのか
・もし正方形に並べさせたい場合、平方数以外が与えられた場合どう処理するのか
問題文には右回りとしか書かれていない
Input:
5
7
7
Output: 7
0374デフォルトの名無しさん
2014/07/02(水) 00:49:39.62ID:QdENQKENdef f(n):
a = [[0,]*n for y in range(n)]
(x,y), d = (0,0), complex(1,0)
for i in range(1,1+n*n):
if a[y][x] == 0:
break
a[y][x] = i
x1,y1 = x+int(d.real), y+int(d.imag)
if not all([0 <= z < n for z in (x1,y1)]) or a[y1][x1] != 0:
d *= complex(0,1)
x,y = x+int(d.real), y+int(d.imag)
for s in a:
print ("{:<{width}}"*n).format(*s, width=len(str(n*n))+1)
f(3), f(5), f(20)
http://ideone.com/7kt72X
>>356 参考にさせていただきました。
return の中には納まりませんでした。
#!/usr/bin/perl
use 5.016;
use warnings;
sub gcd { $_[1] ? gcd($_[1], $_[0] % $_[1]) : $_[0] }
sub lcm { $_[0] * $_[1] / gcd($_[0], $_[1]) }
sub rca {
my ($p, $q, $e) = @_;
my $lcm = lcm($p - 1, $q - 1);
for (1 .. $p * $q) {
$_ = $_ * $lcm + 1;
if(!($_ % $e) && ($_ != $e)) {
return $_ / $e;
}
}
}
say rca(map{ <STDIN> }(1 .. 3));
0377デフォルトの名無しさん
2014/07/03(木) 00:00:24.39ID:Dsf0pQuEhttp://ideone.com/mooKVA
0378デフォルトの名無しさん
2014/07/03(木) 06:56:25.40ID:vG38XDPkf =: 3 & #.
f 0 0 1
1
f 0 2 1
7
f 1 0 3
12
f 100 100 100
1300
0379デフォルトの名無しさん
2014/07/03(木) 07:31:11.16ID:zQnvFAz4また、
1,テストケース間違ってるし。
2,日本語もいい加減だし
「 お客さんから必要なアイテムのオーダーを受けるので 」
なんじやこりゃ。文脈から意味は分かるが
3,銅、銀、金をD,G,Kで表すし、参るな
C,S,Gかcu,ag,auにしろよ、恥ずかしい
変数 c, s , gにそれぞれの必要個数を入力
必要な銅の数は
c = c + s*3 * g*3*3
出題すべき問題ではない
0380デフォルトの名無しさん
2014/07/03(木) 08:51:38.30ID:LiPjrIzD随分と銅が必要になりそうだね。
0381デフォルトの名無しさん
2014/07/03(木) 10:17:24.07ID:T6nbxnRY0382デフォルトの名無しさん
2014/07/03(木) 14:26:26.95ID:Lygb4FeS0383デフォルトの名無しさん
2014/07/03(木) 14:29:00.16ID:9jCbUWE0揚げ足取ったつもりなのに算数が出来もできないバカは来るなよ
0384デフォルトの名無しさん
2014/07/03(木) 14:38:44.95ID:M7lcZRBSそれを知る機会は二度と来ないだろう
0385デフォルトの名無しさん
2014/07/03(木) 14:50:12.53ID:/sivhkNEB,S,Gなら分かるけど。
cu,ag,auのように無駄に文字数使うのは競技プログラミングのお題では使わないほうが良いかと。
0386デフォルトの名無しさん
2014/07/03(木) 15:12:18.67ID:G+zVYNAC>何でC,S,Gになるのか分からん。
>B,S,Gなら分かるけど。
オリンピックのメダルじゃないんだし
ブロンズは合金だから、この場合、銅はカッパーで良いと思うけど
0387デフォルトの名無しさん
2014/07/03(木) 15:14:32.46ID:T6nbxnRY0388デフォルトの名無しさん
2014/07/03(木) 15:21:16.37ID:zQnvFAz4まず、揚げ足ではない
つぎに、入力みすとさえ気づけない、バカ頭
よほどの知的底辺だな、おまえ
0389デフォルトの名無しさん
2014/07/03(木) 15:38:35.80ID:G+zVYNAC0390デフォルトの名無しさん
2014/07/03(木) 18:59:58.98ID:l3BrPpEm落ち着け、恥の上塗りだぞ
0391デフォルトの名無しさん
2014/07/03(木) 19:09:32.77ID:zQnvFAz4は?どこが?
指摘してみな
揶揄するようなバカはどうしていするかな
さあ、やってみよう
そら、やれ
0392デフォルトの名無しさん
2014/07/03(木) 19:38:15.32ID:n2StL5yIここが2chということをお忘れなのでしょうか。
0393デフォルトの名無しさん
2014/07/04(金) 02:08:14.20ID:ZrYbNryyどうしていするかな
うどうしていするか
していするかなどう
ていするかなどうし
いするかなどうして
するかなどうしてい
るかなどうしていす
かなどうしていする
などうしていするか
0394デフォルトの名無しさん
2014/07/04(金) 02:10:48.43ID:0VZOuSag2行目が分からん
0395デフォルトの名無しさん
2014/07/04(金) 02:35:29.13ID:ZrYbNryy0396デフォルトの名無しさん
2014/07/04(金) 02:36:29.78ID:ZrYbNryyうしていするかなど
していするかなどう
ていするかなどうし
いするかなどうして
するかなどうしてい
るかなどうしていす
かなどうしていする
などうしていするか
0397デフォルトの名無しさん
2014/07/04(金) 07:05:12.13ID:1DYmAe4Bttp://ideone.com/IU8c2M
0398デフォルトの名無しさん
2014/07/04(金) 07:17:08.89ID:1DYmAe4Bttp://ideone.com/NVxmWT
0399デフォルトの名無しさん
2014/07/04(金) 09:23:08.90ID:F/X2iHEQhttp://ideone.com/1iPO05
0400デフォルトの名無しさん
2014/07/04(金) 11:22:41.01ID:G+5TPOno0401デフォルトの名無しさん
2014/07/04(金) 12:11:59.18ID:1jMYhAsmf := method(s,
a := s size
for(i, 0, a - 1, writeln((s .. s) slice(i, i + a)))
)
Io> f("wxyz")
wxyz
xyzw
yzwx
zwxy
0402デフォルトの名無しさん
2014/07/04(金) 15:40:46.18ID:hGvq3ws9Ruby
ttp://ideone.com/nuRuJb
0403デフォルトの名無しさん
2014/07/04(金) 16:57:10.42ID:JCAFfbJvimport Control.Monad
import Data.List (inits, tails)
f396 :: [a] -> [[a]]
f396 = init . liftM2 (zipWith (++)) tails inits
main :: IO ()
main = mapM_ putStrLn $ f396 "どうしていするかな"
0404デフォルトの名無しさん
2014/07/04(金) 17:13:12.54ID:1jMYhAsmf =: i.&# |."0 1 ]
f 'abcd'
abcd
bcda
cdab
dabc
0405デフォルトの名無しさん
2014/07/04(金) 19:13:05.09ID:QAtT59Qehttp://ideone.com/ryHeRN
0406デフォルトの名無しさん
2014/07/04(金) 19:29:59.00ID:1jMYhAsm> s="abcd";a=length(s);for i=0:(a-1) disp(shift(s,i))end
abcd
dabc
cdab
bcda
0407デフォルトの名無しさん
2014/07/04(金) 21:05:11.02ID:F/X2iHEQruby -e '$*.each{|a|a=a.split(//);a.each{puts a.join; a<<a.shift}}' プログラミングのお題スレ Part4
0408デフォルトの名無しさん
2014/07/05(土) 05:16:38.23ID:x6TWxlZJLET s$="abcd"
LET a = LEN(s$)
FOR i=1 TO a
PRINT s$(i:a) & s$(1:i-1)
NEXT I
END
0409デフォルトの名無しさん
2014/07/05(土) 12:48:24.38ID:hiPyt9OR隣接する都道府県への移動にかかる距離は1になります。
例えば埼玉から東京までの最短距離は1、埼玉から神奈川への最短距離は東京を経由して2になります。
徒歩で移動するので隣接する都道府県を飛び越して移動・ワープはできません。
どこからスタートしても良いですが最初と最後の地点は沖縄のほうが良いでしょう。
0410デフォルトの名無しさん
2014/07/05(土) 12:52:54.31ID:73ZHJ04l0411デフォルトの名無しさん
2014/07/05(土) 13:51:51.29ID:NUdHoME90412デフォルトの名無しさん
2014/07/05(土) 14:34:08.23ID:kvjkUDCD0413デフォルトの名無しさん
2014/07/05(土) 15:40:17.15ID:NUdHoME9その場合「隣接」をどう定義する?
0414デフォルトの名無しさん
2014/07/05(土) 15:40:19.47ID:+HA1XJwR兵庫県とかで詰まっても海を渡れば重複なしで移動できそうな気がするが…大丈夫か?
0415デフォルトの名無しさん
2014/07/05(土) 16:16:37.19ID:DUAZ7FzQ沖縄以外は実際に徒歩で行けるかは別にして、橋やトンネルで繋がってるから、繋がってたら距離 1 でいいんじゃね。
沖縄は鹿児島と距離 1 で繋がってるからことにするしかないかな。
0416デフォルトの名無しさん
2014/07/05(土) 17:08:43.54ID:W9RgS5SL0417デフォルトの名無しさん
2014/07/05(土) 18:21:19.99ID:/+0/ZnD90418デフォルトの名無しさん
2014/07/05(土) 18:38:27.54ID:rJnPLDkM都道府県数 + 端点数(沖縄、長崎、北海道) + 2次端点数? + 隘路数(福岡・山口)
=47 + 3 + 0 + 1
=51
でいいと思うんだが、隘路の検出が面倒そうだ。
0419デフォルトの名無しさん
2014/07/05(土) 18:48:51.38ID:XGIu+p0vみたいなテーブル作るのが先だな
頑張ってくれ >>409
0420デフォルトの名無しさん
2014/07/05(土) 20:00:02.53ID:NUdHoME9>繋がってたら距離 1
どことつながっているかをとりあえず定義しないとね。
北海道-青森
兵庫-徳島
山口-福岡
さて沖縄は?
0421デフォルトの名無しさん
2014/07/05(土) 20:56:58.86ID:v1GnvGtI0422デフォルトの名無しさん
2014/07/05(土) 21:02:03.83ID:rJnPLDkMデータ作った。
ttp://ideone.com/rOtagj
0423デフォルトの名無しさん
2014/07/05(土) 21:17:10.33ID:DUAZ7FzQ> どことつながっているかをとりあえず定義しないとね。
接していない都道府県を繋ぐ橋とかトンネルってそんなに多くないよ。
> 北海道-青森 ... 青函トンネル
> 兵庫-徳島 ... 明石海峡大橋、大鳴門橋
> 山口-福岡 ... 関門トンネル (実際は三本ある)
以外には、
岡山-香川 ... 瀬戸大橋
広島-愛媛 ... しまなみ海道
が、ある。
あと、忘れがちだけど
千葉-神奈川 ... 東京湾アクアライン
なんてのもある。
> さて沖縄は?
>> 沖縄は鹿児島と距離 1 で繋がってるからことにするしかないかな。
以外に、妙案ある?
>>421
船とか飛行機は繋がり多すぎるし、不定期便とかまで入れると収拾つかなくなるよ。
0424デフォルトの名無しさん
2014/07/06(日) 00:05:41.94ID:Xcdpas3C問題があいまいなので整理しよう
沖縄から始めて、沖縄に戻ってくるルートのうち、もっとも短いものを探す
(日本一周する)というが基本ルールだと思うが、
47都道府県を必ず一回ずつ踏むのか?
一回しか踏めない場合、>>422の隣接に従うと、北海道や鹿児島で折り返せない。
複数回踏んでもいいなら、問題はない。
あるいは47都道府県を全て踏まなくてもいいのか?
その場合、どうであれば横断であるのか定義が必要。
例えば、沖縄から北海道を経由して、沖縄に戻ってくるルートとか
で、とりあえず、沖縄から出て、2回まで踏んでいい条件で、沖縄に戻ってくる
ルートを表示するもの(最短じゃない)
http://ideone.com/zDUA12
最短にするには計算時間が増えすぎて、自分のPCでも無理・・・・
0425デフォルトの名無しさん
2014/07/06(日) 01:56:13.19ID:ns4lB4b9岩手から青森、秋田から青森が足りないと思う。
>>422 >>424
0426デフォルトの名無しさん
2014/07/06(日) 04:48:25.53ID:5Cg0EMMK肝心のプログラムはあまりに爆発的な計算量でやる気がしない。
http://nojiriko.asia/prolog/rinsetsu_todoufuken.html
0427デフォルトの名無しさん
2014/07/06(日) 11:12:42.27ID:h47gFyyv総当りになっちゃうんじゃね?
0428デフォルトの名無しさん
2014/07/06(日) 11:45:57.63ID:PmG1bj5r0429デフォルトの名無しさん
2014/07/06(日) 11:48:51.38ID:pe5rXydm出題者の解答例は?
0430デフォルトの名無しさん
2014/07/06(日) 12:52:49.67ID:6HIamfN5グラフ簡約(クリティカルパスを簡約毎に2ステップ)でいける筈だが、実装の仕方を忘れたw
0431425
2014/07/06(日) 15:52:12.83ID:ns4lB4b9急に和歌山に飛んだぜ?
http://ideone.com/x8lNS5
0432425
2014/07/06(日) 15:56:02.08ID:ns4lB4b9取る物もとりあえず、ごめん。
0433デフォルトの名無しさん
2014/07/07(月) 12:06:21.10ID:l/o7L2gj例
"Hello, world!" -> 3.18
"abcd" -> 2.00
"abcde" -> 2.32
0434デフォルトの名無しさん
2014/07/07(月) 12:11:25.92ID:sxx7xYnm0435デフォルトの名無しさん
2014/07/07(月) 14:59:37.42ID:KVV+Bfca(dolist (s '("Hello, world!"
"abcd"
"abcde"))
(format t "~S -> ~F~%"
s
(- (loop for c across (remove-duplicates s)
for P = (/ (count c s) (length s))
sum (* (log P 2) P)))))
出力:
"Hello, world!" -> 3.1808329
"abcd" -> 2.0
"abcde" -> 2.321928
0436デフォルトの名無しさん
2014/07/07(月) 21:14:45.38ID:YcuGRz//import math
def f(s):
P = [1.0*s.count(c)/len(s) for c in set(s)]
H = -sum([p * math.log(p,2) for p in P])
print '"{}" -> {}'.format(s, H)
ss = ["Hello, world!", "abcd", "abcde", "12345678"]
for s in ss:
f(s)
---
"Hello, world!" -> 3.18083298721
"abcd" -> 2.0
"abcde" -> 2.32192809489
"12345678" -> 3.0
0437地理A ◆0qAv26otVI
2014/07/07(月) 21:59:38.42ID:sIMWWGl+http://codepad.org/MCFLVWSL
0439デフォルトの名無しさん
2014/07/08(火) 19:12:28.93ID:cYjPRTX9なお,最上位ビットは符号ビットとする.また、2進数は最小ビット数で表現.ただし,ビット数指定がある場合はそれに従う.
例
f(10) -> [0 1 0 1 0]
f(10,8) -> [0 0 0 0 1 0 1 0]
f(-8) -> [1 0 0 0]
f(-8 8) -> [1 1 1 1 1 0 0 0]
f(-1) -> [1 1]
f([0 1 1 1]) ->7
f([1 1 1 1]) ->-1
f([1 0 0 0]) ->-8
0440デフォルトの名無しさん
2014/07/08(火) 21:07:38.60ID:/SVoRUsP0441デフォルトの名無しさん
2014/07/08(火) 23:04:09.67ID:7TvrG/Ck0442デフォルトの名無しさん
2014/07/08(火) 23:09:11.73ID:/SVoRUsP0443デフォルトの名無しさん
2014/07/08(火) 23:19:09.74ID:7TvrG/Ck0444デフォルトの名無しさん
2014/07/08(火) 23:20:17.15ID:7/DIpLvv0445デフォルトの名無しさん
2014/07/08(火) 23:34:07.23ID:75xXWCXL0446デフォルトの名無しさん
2014/07/08(火) 23:44:00.08ID:/SVoRUsP0447デフォルトの名無しさん
2014/07/09(水) 00:01:38.36ID:rGuOP1J00448デフォルトの名無しさん
2014/07/09(水) 00:02:43.58ID:rGuOP1J00449デフォルトの名無しさん
2014/07/09(水) 00:30:05.43ID:xRBjxmPodef f(x,n=0):
if isinstance(x, int):
d = x
ss = bin(abs(d))[2:]
if d < 0:
ss = bin((abs(d) ^ (2**len(ss)-1)) + 1)[-len(ss):]
else:
ss = "0" + ss
if len(ss) < n:
ss = ss[0] * (n-len(ss)) + ss
x = map(int, ss)
if n:
print "f({},{}) -> {}".format(d,n,x)
else:
print "f({}) -> {}".format(d,x)
else:
ss = "".join(map(str, x))
d = int(ss,2)
if x[0] == 1:
d = -((d ^ (2**len(x)-1)) + 1)
print "f({}) -> {}".format(x,d)
---
f(-1) -> [1]
f(-1,2) -> [1, 1]
0450デフォルトの名無しさん
2014/07/09(水) 04:13:46.70ID:cyCbt8rMScheme
(decibin 10) ->(0 1 0 1 0)
(decibin 10 8) ->(0 0 0 0 1 0 1 0)
(decibin -8) ->(1 0 0 0 )
(decibin -8 8) ->(1 1 1 1 1 0 0 0)
(decibin -1 ) ->(1 1)
(decibin '(0 1 1 1)) ->7
(decibin '(1 1 1 1)) ->-1
(decibin '(1 0 0 0 )) ->-8
ttp://codepad.org/JvIfQLjV
0451デフォルトの名無しさん
2014/07/09(水) 04:55:09.87ID:cyCbt8rMメイン関数を整理
;;;解答関数
(define decibin
(lambda (src . bits)
(cond
;;2進数を10進数に変換
((pair? src) (2to10 src))
;;10進数を2進数に変換(bit長指定可)
((number? src)
(if (null? bits) (10to2 src)
(10to2 src (car bits))))
;;error
(else #f))))
0452デフォルトの名無しさん
2014/07/09(水) 13:03:06.30ID:asIXKjCGhttp://ideone.com/vrBV3H
0453デフォルトの名無しさん
2014/07/09(水) 13:07:51.90ID:rH0/Zsa/演算子+/*-は全部使ってください
0454デフォルトの名無しさん
2014/07/09(水) 13:20:10.26ID:u2kQRDew意味が分からんので例を
0455デフォルトの名無しさん
2014/07/09(水) 13:36:34.23ID:IIXAtXmv12*-34はOK?
2/3=0としてOK?
0456デフォルトの名無しさん
2014/07/09(水) 14:35:50.36ID:l3PH0YRn0457デフォルトの名無しさん
2014/07/09(水) 14:38:30.00ID:IIXAtXmv0458デフォルトの名無しさん
2014/07/09(水) 14:40:06.77ID:IIXAtXmv2/3*6=0?
2/3*6=4?
0459デフォルトの名無しさん
2014/07/09(水) 14:41:14.23ID:l3PH0YRn違うけどそれがどうした?
0460デフォルトの名無しさん
2014/07/09(水) 14:43:40.43ID:fijwNKcD数字にマイナスをつけるのは演算子かどうか、いう話だろ
0461デフォルトの名無しさん
2014/07/09(水) 17:01:06.07ID:QPJQuFnpどれか一つを符号にしないと数が合わないよね
0462デフォルトの名無しさん
2014/07/09(水) 17:56:35.80ID:BLsKU9h7http://ideone.com/Ww1vvV
-1 を例外扱いせずに f(-1) -> [1 1] 且つ f(-8) -> [1 0 0 0] とする方法が分からなかった
0463デフォルトの名無しさん
2014/07/09(水) 20:06:58.49ID:ztVLGCNcf := method(s,
a := list
b := s size
s foreach(c, a push(c)
) uniqueCount map(v,(p := v last / b) log2 * p
) sum * -1
)
0464デフォルトの名無しさん
2014/07/09(水) 21:56:16.02ID:e6NcC5AN0465デフォルトの名無しさん
2014/07/09(水) 22:22:20.70ID:tJbpL3+F// 方針案
// X-Y=100となるようなX、Yを求める。
// X,Yについて、以下の6通りが有り得る。
// 1.A*B/C=X ===> A*B/C-Y
// 2.A/B*C=X ===> A/B*C-Y
// 3.A*B=X,C/D=Y ===> A*B-C/D
// 4.A/B=X,C*D=Y ===> A/B-C*D
// 5.B*C/D=Y ===> A-B*C/D
// 6.B/C*D=Y ===> A-B/C*D
0466デフォルトの名無しさん
2014/07/10(木) 02:35:06.94ID:W+p4qrtw昇順の数列A[a0,a1,..,an]とAの要素amを一つ指定する
Aの要素からなる数列Bを与えて[am,am+1,..,an,a0,a1,..,am-1]の順番で整列させよう
例
入: A = [2,3,5,7,9], a = 2, B = [9,2,5]
出: [2,5,9]
入: A = [2,3,5,7,9], a = 9, B = [9,2,5]
出: [9,2,5]
入: A = [2,3,5,7,9], a = 5, B = [9,2,5]
出: [5,9,2]
入: A = [2,3,5,7,9], a = 3, B = [9,2,5,5,2]
出: [5,5,9,2,2]
0467デフォルトの名無しさん
2014/07/10(木) 04:30:36.67ID:+OU7A57A'昇順の数列A[a0,a1,..,an]とAの要素amを一つ指定する
Aの要素からなる数列Bを与えて[am,am+1,..,an,a0,a1,..,am-1]の順番で整列させよう'(A,_am,B,_整列したならび) :-
'[am,am+1,..,an,a0,a1,..,am-1]の順番で'(A,_am,_順番で),
整列させよう(B,_順番で,_整列したならび).
'[am,am+1,..,an,a0,a1,..,am-1]の順番で'(A,_am,_順番で) :-
append(L1,[_am|L2],A),
append([_am|L2],L1,_順番で),!.
整列させよう(B,_順番で,_整列したならび) :-
findall(_a,(
append(L0,[_a|_],_順番で),
\+(member(_a,L0)),
member(_a,B)),
_整列したならび).
0468デフォルトの名無しさん
2014/07/10(木) 06:25:26.98ID:KiWPbMvuhttp://ideone.com/9dLXxw
>演算子+/*-は全部使ってください
全部使わなくても、好きなの使えばいいよね。
0470デフォルトの名無しさん
2014/07/10(木) 08:29:35.13ID:W5aGcVmQRuby
ttp://ideone.com/D6LqhL
0471デフォルトの名無しさん
2014/07/10(木) 13:12:03.14ID:4V+vxH6Qhttp://ideone.com/u3BaJG
0472デフォルトの名無しさん
2014/07/10(木) 17:55:09.45ID:G1rqgd7K---**
--*--
-*---
--*--
*--*-
以下のように地雷に隣接する床の上に、隣合う地雷の数を調べて出力できるプログラムを作成せよ
地雷をランダムに配置せよ
002**
02*21
1*300
12*20
*12*1
0473デフォルトの名無しさん
2014/07/10(木) 19:18:34.32ID:D7NRMVb2http://ideone.com/YYNCfv
cl:sortを使う版(f)と使わない版(g)を書いた
0474デフォルトの名無しさん
2014/07/10(木) 21:11:38.52ID:D7NRMVb2f([2,3,5,7,9], 3, [9,2,5,5,2]) の結果が合っていない
5行目よりも上のどこかに b.sort! があるはずなのでは
0475デフォルトの名無しさん
2014/07/10(木) 21:30:24.93ID:D7NRMVb2あ、b.sort! はだめか
呼出側の配列を壊してしまう
b = b.sort だね
0476デフォルトの名無しさん
2014/07/10(木) 23:18:17.52ID:7hx1yjTEpaizaで似たようなのが出た気がするけど難しい・・・
0477デフォルトの名無しさん
2014/07/10(木) 23:25:52.08ID:KiWPbMvuhttp://ideone.com/ujrnzS
0478デフォルトの名無しさん
2014/07/10(木) 23:25:58.58ID:1QBBoJFmttp://ideone.com/mU3sah
0479デフォルトの名無しさん
2014/07/11(金) 01:55:16.31ID:mTredRn+http://codepad.org/nzZYjY7y
0480デフォルトの名無しさん
2014/07/11(金) 07:57:05.22ID:+0oXrHdHhttp://ideone.com/XHFLzH
0481デフォルトの名無しさん
2014/07/12(土) 09:01:15.80ID:qrHUnFxI対戦するたびに学習して次第に強くなる「最善手探索+対戦学習型知能ゲーム」
http://www.vector.co.jp/soft/win95/game/se370530.html
0482デフォルトの名無しさん
2014/07/13(日) 01:11:13.21ID:BzOhvb9Q( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、、、、し 、、、(((.@)5.3 35.4 36.3
0483デフォルトの名無しさん
2014/07/13(日) 09:53:26.77ID:yLlLSvPVcが分かるときaとbの組み合わせを全て求めよ
0484デフォルトの名無しさん
2014/07/13(日) 11:32:51.30ID:oUim7CZz0485デフォルトの名無しさん
2014/07/13(日) 12:29:30.76ID:zSV3XHBM実数なら無限個のペアあるし
0486デフォルトの名無しさん
2014/07/13(日) 12:32:00.22ID:98eeNzbJ0487デフォルトの名無しさん
2014/07/13(日) 12:35:53.18ID:V0uAqOsf0488デフォルトの名無しさん
2014/07/13(日) 12:40:13.61ID:6sD1pyHJ前から後ろから
0489デフォルトの名無しさん
2014/07/13(日) 15:16:56.57ID:OfL9oG5/加算・減算だけ試してみた例:http://ideone.com/PINwx
>>453
もう少し問題を検討すれば面白いものだったかもね
0490デフォルトの名無しさん
2014/07/13(日) 15:41:28.25ID:ktOqAI16四元数をお忘れかな?
0491デフォルトの名無しさん
2014/07/13(日) 18:21:29.28ID:2/vm2xCBタイル・ゲームの紹介
3x3(あるいは4x4など)の盤上で遊ぶゲームです。
(1) 先に連絡すれば勝ち
盤面の空いたところに交互に自分の色のタイルを置き、向かい合った自分の辺と辺を、先に連絡した方が勝ちです。
「連絡する」とは、タイルの辺が縦・横に接した状態にすることです。斜めに並んでいても連絡したことになりません。
これは□が連絡しています。(□の勝ち)
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help01.png
これは■が連絡しています。(■の勝ち)
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help02.png
この■は連絡したことになりません。斜めはダメ。
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help03.png
(2) 「切り違え」ると、相手のタイルを取り除く
□が★の場所に、斜めに並んだ相手のタイルを切るように打つ(切り違える)と、■の2枚は盤上から取り除かれます。
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help04.png
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help04.png
この場合、□が★の場所に打つと、3枚の■が除かれます。
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help05.png
(3) パスはできない
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help.htm
0492デフォルトの名無しさん
2014/07/13(日) 18:27:45.64ID:gE/LTmAc0493デフォルトの名無しさん
2014/07/14(月) 01:08:12.99ID:IlNIyuqu0494デフォルトの名無しさん
2014/07/14(月) 01:11:54.38ID:aONiiMtw0495デフォルトの名無しさん
2014/07/14(月) 01:34:05.10ID:NObUc+/C0496デフォルトの名無しさん
2014/07/14(月) 07:45:09.84ID:GNzEXKnIウェブブラウザ開いたら自動で画像がロードされるわけでもない。
どういったマナーに抵触するんだ。
0497デフォルトの名無しさん
2014/07/14(月) 07:52:28.22ID:IlNIyuqu0498デフォルトの名無しさん
2014/07/14(月) 08:35:40.41ID:v6rlvCBe0499デフォルトの名無しさん
2014/07/14(月) 11:21:46.56ID:kZuhMpyl0500デフォルトの名無しさん
2014/07/14(月) 12:29:44.25ID:GDE1GNrp0501デフォルトの名無しさん
2014/07/14(月) 14:06:42.48ID:qMOjTsVj次の問題はよ
0502片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/07/14(月) 14:54:45.87ID:BcwFLIWOz[cm]×w[cm]の長方形をできるだけ多く敷き詰める。
敷き詰められる長方形の個数の最大値を求めよ。
0503デフォルトの名無しさん
2014/07/14(月) 17:26:52.10ID:0IODtz6F0504デフォルトの名無しさん
2014/07/14(月) 18:07:24.19ID:sUkwPb8A全て整数なら、X*Y
実数なら、無限。
0505デフォルトの名無しさん
2014/07/14(月) 18:16:36.10ID:0IODtz6F0506デフォルトの名無しさん
2014/07/14(月) 19:06:25.78ID:EEvf9Gev長方形(ちょうほうけい)、矩形(くけい)(英: rectangle)は、4つの角がすべて等しい四角形である。4つの角はすべて直角となる。
この定義により、長方形の向かい合う2辺は長さが等しくなる。
すなわち、長方形は平行四辺形である。
正方形は長方形の特殊な形で、4つの辺がすべて等しい長さの四角形である。
つまり、正方形は長方形であり菱形である。
口語で長方形といえば正方形ではない長方形を指すことが多い。
0507片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/07/14(月) 20:49:39.26ID:BcwFLIWOxとyが与えられたとき、g(x,y)を求めるプログラムを作れ。
0508デフォルトの名無しさん
2014/07/14(月) 21:16:27.42ID:n4kA1gB9普通にやったら負数がどうとか正確な実数じゃないとか
しょーもないことごちゃごちゃ言うんだろ
騙されないぞ
0509片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/07/14(月) 21:33:25.90ID:BcwFLIWO0510デフォルトの名無しさん
2014/07/14(月) 22:22:40.24ID:PJHN9zyWfrom decimal import *
def g(x,y):
x,y = map(Decimal,(x,y))
z = int(y/x)*x
if z < y:
z += abs(x)
print "x={}, y={} -> {}".format(x,y,z)
return z
g("1.1","3.14")
g("1.1","-3.14")
g("-1.1","3.14")
g("-1.1","-3.14")
---
x=1.1, y=3.14 -> 3.3
x=1.1, y=-3.14 -> -2.2
x=-1.1, y=3.14 -> 3.3
x=-1.1, y=-3.14 -> -2.2
0511デフォルトの名無しさん
2014/07/14(月) 22:55:32.88ID:5duasKc4実数の世界観と整数の世界観が妙に交じり合って気持ちが悪いんだが‥
0512デフォルトの名無しさん
2014/07/14(月) 23:31:08.99ID:VFiVEdlnxとyを取って、yを返す関数?
0513デフォルトの名無しさん
2014/07/14(月) 23:47:54.79ID:caGHL+SV実数で割り切れるってどういうこと?
無限小数にならないってことか?
0514デフォルトの名無しさん
2014/07/14(月) 23:59:00.24ID:5duasKc4「切り違え」の定義が難しいきがする
0515デフォルトの名無しさん
2014/07/15(火) 01:38:54.79ID:NrEcFehV迷惑なのでもうやめろ
nは0または自然数、mは自然数とする。
nがmで割り切れるかどうかを調べる関数を使え!
10 3 -> 4
0517デフォルトの名無しさん
2014/07/15(火) 02:43:05.88ID:adxF9Nhd中身を完璧には覚えていないです。
何度も読むよりかは何かを作るか
もう一段階上げた本を読んだほうがいいでしょうか?
0518デフォルトの名無しさん
2014/07/15(火) 02:48:11.18ID:oHpwW4pa> 何かを作るか
こっちに一票
0519デフォルトの名無しさん
2014/07/15(火) 03:19:04.41ID:1i78TI8o俺がいうんだからそうとうなスレチ
n個の埴輪をm個入りの蔵に全て入れるには蔵を少なくとも幾つ用意すればよいか?
nは0または自然数、mは自然数とする。
10 3 -> 4
0521デフォルトの名無しさん
2014/07/15(火) 11:41:12.14ID:Wc/hF9eS0522デフォルトの名無しさん
2014/07/15(火) 12:31:00.74ID:YWdU6hVJ0523デフォルトの名無しさん
2014/07/15(火) 20:40:51.99ID:9hHqcu7Iif( y != (z = int(y/x)*x)) if(z >= 0) return z+abs(x);
return z;
他人の指摘するのはいいかどうかわからないけど。
>>510
// if( y > (z = int(y/x)*x)) return z+abs(x);
// return z;
0.14 1.1 -> 1.1
0525片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/07/17(木) 21:54:30.22ID:NnUGLSxrバイナリを引数として指定するとtrueを返すような関数examがある。
正しいバイナリを暗号化した後、examを使って暗号化されたバイナ
リを解読するプログラムを作れ。正しいバイナリは{0x20,0x11,0x03,0x11}とし、
暗号化に使う固定値はプログラムの起動時にランダムに選ぶものとする。
0526デフォルトの名無しさん
2014/07/17(木) 22:48:41.72ID:PzVhwRo+( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、b、eし 、、、(((.@)nesse 7,600,000
0527デフォルトの名無しさん
2014/07/18(金) 07:46:25.61ID:hD5lgyjz使って自然数mを自然数nにする(m<n)。この時、ふたつの関数の使用回数の合計の
最小値を求める。
例
m=3, n=10 -> 3
m=3, n=95 -> 10
m=666, n=2014 -> 342
0528デフォルトの名無しさん
2014/07/18(金) 11:04:38.51ID:x9tj4BSU・文字H,e,l,o,W,r,dの使用禁止
・1つ以上のクラス、3つ以上のメソッドを使うこと
0529デフォルトの名無しさん
2014/07/18(金) 11:37:19.76ID:gVBZQHXV0530デフォルトの名無しさん
2014/07/18(金) 12:06:28.34ID:YVo5FHQeプロトタイプ宣言自力でやってputsをint引数扱いで使うとかになりそうだな。大変そう(やる気はない)
C++標準ライブラリを自力宣言とか色々めんどくさそう…というかputsもextern "C" がrで駄目だった。
0531デフォルトの名無しさん
2014/07/18(金) 12:11:47.55ID:47agln0fhttp://ideone.com/B24aJI
0532デフォルトの名無しさん
2014/07/18(金) 15:14:02.27ID:8eAqzhQXC
http://ideone.com/Z9FckV
0533デフォルトの名無しさん
2014/07/18(金) 18:11:33.30ID:QuIJUfIobrainfu*kなら戦えるか
0534デフォルトの名無しさん
2014/07/18(金) 21:06:13.72ID:hD5lgyjz条件2はよくわからないので、条件1だけ。
PRINT UCASE$("h")&LCASE$("ELLO ")&UCASE$("w")&LCASE$("ORLD")
END
0535デフォルトの名無しさん
2014/07/19(土) 04:33:48.76ID:XVk/BaWZ●中置き記法・ポーランド記法・逆ポーランド記法の混在表記が可能なもの.
(異なる記法を混在させる場合は括弧でくくる)
(括弧は入れ子可能とする)
例:
中置き記法に混在
2 + 3 * ( 10 2 / ) - ( - (4 5 *) 8) = 5
ポーランド記法に混在
(- (+ 2 (* 3 (10 / 2))) ((4 * 5) 8 -))) = 5
逆ポーランド記法に混在
2 3 (10 / 2) * + ((* 4 5) - 8) -
●使用可能な演算子
LEVEL1 制限あり.関数内で定義した演算子のみ可能なもの
例:OperatorDatabase=[+,- *,/] 四則計算のみ
LEVEL2 制限なし.処理系で使用可能なすべての演算
例1:直径10cmの円の面積を求める
(円周率はacosで求める)
(acos -1.0) * (10 ^ 2)
例2:5個から3個選ぶ組み合わせの数を得る
(順列と階乗を求める関数があるとして)
(nPr 5 3) / (factorial 3)
●変数の扱い
LEVEL1 変数使用不可
例:1 + 2 + (+ 1 2) + (2 2 +)
LEVEL2 定義済み変数を使用可能
例:var a = 10 var b = 8
2 + 3 * (a 2 /) - (- (4 5 *) b) = 5
0536デフォルトの名無しさん
2014/07/19(土) 09:06:47.75ID:UhVrDbfCfunction f(m,n)
m * 2 > n ? n-m : 1 + f(m, n % 2 == 0 ? n / 2 : n - 1)
end
julia> f(10,1000)
13.0
0537デフォルトの名無しさん
2014/07/19(土) 11:07:15.26ID:dntURGPka = (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100)
n = int(11).__int__().__abs__().__sub__(0)
s = "%c" * n + "\n"
input(s % a)
0538デフォルトの名無しさん
2014/07/19(土) 11:49:25.25ID:UhVrDbfC条件1のみ。
$ dc
87521618088882533792115812P
Hello World
0539デフォルトの名無しさん
2014/07/19(土) 12:59:47.23ID:k+Ejv3gz:- nth1(_,[72,101,108,108,111,32,87,111,114,108,100,10],A),put(A),A = 10.
0540デフォルトの名無しさん
2014/07/19(土) 13:04:40.54ID:7uPPOXrXYYYY/mm/dd
0541デフォルトの名無しさん
2014/07/19(土) 15:43:12.32ID:UhVrDbfCecho>:-/1 todayno".(,:~'1231',~4&{.)'/'-.~stdin load'dates'
0542デフォルトの名無しさん
2014/07/19(土) 18:16:02.45ID:dntURGPkprint apply(lambda y,m,d:sum(([31,28 if y%4 or y%100==0 and y%400 else 29]+[31,30,31,30,31]*2)[m-1:])-d+1,map(int,raw_input().split('/')))
0543デフォルトの名無しさん
2014/07/19(土) 18:27:55.13ID:UhVrDbfCa:=standardInput readLine
(Date fromString(a slice(0,5).."12/31",b:="%Y/%m/%d")+1days-Date fromString(a,b))days print
0544デフォルトの名無しさん
2014/07/19(土) 18:48:26.57ID:Ftk03FDmprint sub{307-int(30.6*($_[1]-3)+0.5)-$_[2]+($_[1]<3?(!($_[0]%400)||!($_[0]%4)&&!!($_[0]%100))-$_[1]:0)}->(split'/',<>)
0545デフォルトの名無しさん
2014/07/19(土) 21:14:01.33ID:UhVrDbfCd=ISOdate;a=scan("stdin",,,,"/");cat(d(a[1]+1,1,1)-d(a[1],a[2],a[3])
0546デフォルトの名無しさん
2014/07/19(土) 21:20:07.49ID:UhVrDbfCすみません。最後の括弧が抜けていました。
d=ISOdate;a=scan("stdin",,,,"/");cat(d(a[1]+1,1,1)-d(a[1],a[2],a[3]))
0547デフォルトの名無しさん
2014/07/20(日) 02:09:38.13ID:VNfkra0+条件1のみ。
disp(["",72,101,108,108,111,32,87,111,114,108,100])
0548デフォルトの名無しさん
2014/07/20(日) 19:08:38.88ID:VNfkra0+f =: 3 : 0
'a b c' =. y
c /: (a (i. |. [) b) i. c
)
f 2 3 5 7 9;2;9 2 5
2 5 9
f 2 3 5 7 9;9;9 2 5
9 2 5
f 2 3 5 7 9;5;9 2 5
5 9 2
f 2 3 5 7 9;3;9 2 5 5 2
5 5 9 2 2
0549デフォルトの名無しさん
2014/07/21(月) 17:25:40.56ID:akkmZeu7いちばん左の列から順に調べて表示する。
入力
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
出力
159438276
0550デフォルトの名無しさん
2014/07/21(月) 18:23:55.37ID:6zuG3xNl@result=();
while(<DATA>) {
@data = split(//);
for($i=0; $i<=$#data; $i++) {
$result[$i]=$. if $data[$i] eq '1';
}
}
print join("", @result);
__DATA__
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
0551デフォルトの名無しさん
2014/07/22(火) 00:46:19.51ID:vcxuahCGf := method(s,
a:=s split("\n")join
for(i, 0, 8,
for(j, 0, 8,
if(a at(9 * j + i) == 49, (j+1) print; break)
)
)
)
Io> f("14532768\n839654127\n672918543\n496185372\n218473956\n753296481\n367542819\n984761235\n521839764")
159438276
0552デフォルトの名無しさん
2014/07/22(火) 12:33:05.53ID:5Z4WYQgChttp://ideone.com/A2ZcxL
0553デフォルトの名無しさん
2014/07/23(水) 11:19:21.66ID:6bOgx7OShttp://nabetani.saku ra.ne.jp/hena/ord23snakemoinc/49w5fv1fsvs7c9tr1l.png
http://nabetani.saku ra.ne.jp/hena/ord23snakemoinc/
0554デフォルトの名無しさん
2014/07/23(水) 17:47:02.49ID:DKcKEmnV(defparameter *input*
"145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
")
(format t "~{~D~}~%"
(loop with c = #\1
with r = (make-list 9)
with s = (remove #\Newline *input*)
for i = (position c s) then (position c s :start (1+ i))
while i do (setf (elt r (mod i 9)) (floor i 9))
finally (return (mapcar #'1+ r))))
0555デフォルトの名無しさん
2014/07/23(水) 21:54:54.22ID:t4bdDU2u最後の日は1頁だけだった。p,xから最小のnを求める。解がない場合は偽を返す。
例
p=213, x=16 -> 13
p=214, x=16 -> false
p=333, x=29 -> 27
0556デフォルトの名無しさん
2014/07/24(木) 00:14:56.50ID:HPD+fOz3ttp://ideone.com/HgxzAH
Cライク。復帰しました。大分反省したのでもう一回やり直そうと思います。頑張りまーす。覚えてる人もいないと思いますが。
こんな感じであってるかな?
いやー、暇でしょうがなかった。
0557デフォルトの名無しさん
2014/07/24(木) 00:17:03.00ID:WAodHjWlCで適当に・・・
http://codepad.org/0iHZI53F
0558デフォルトの名無しさん
2014/07/24(木) 00:22:37.85ID:MYJWPOnChttp://peace.2ch.net/test/read.cgi/tech/1313183984/761
#include <iostream>
using std::cout;
void f(int p, int x){
int n;
for(n=1; n<p; n++)
if((n*x+1)%p == 0){
cout <<"p="<<p<<" x="<<x<<" -> "<<(x*n+1)/p<<std::endl;
break;
}
if(n==p)
cout <<"p="<<p<<" x="<<x<<" -> "<<"false"<<std::endl;
}
int main(void){
f(213,16);
f(214,16);
f(333,29);
}
0560デフォルトの名無しさん
2014/07/24(木) 00:33:53.31ID:+S+UJ0qjRuby
def f(p,x)
1.upto(x){|i|
return i if (p*i)%x==1
}
return false
end
p f(213,16)
p f(214,16)
p f(333,29)
0561デフォルトの名無しさん
2014/07/24(木) 00:44:32.62ID:HPD+fOz3文句言うのもどうかと思うけど気になったので。
(n*x+1)%pだと、最終巻の次の巻の1ページ目ということになりませんでしょうか。
0562デフォルトの名無しさん
2014/07/24(木) 00:50:39.95ID:MYJWPOnC多分問題ないと思う
読むのにかかった日数は (n*x + 1) / p だけれども、今はそれは問題にしていないから
0563デフォルトの名無しさん
2014/07/24(木) 01:02:35.47ID:HPD+fOz3あー、なるほど。時間計算してるのか。参考にします。
0564デフォルトの名無しさん
2014/07/24(木) 01:15:03.33ID:MYJWPOnC0565デフォルトの名無しさん
2014/07/24(木) 01:19:54.74ID:HPD+fOz30566デフォルトの名無しさん
2014/07/24(木) 01:32:12.47ID:TvhC2Hp4def f(p,x):
if x == 0: return False
if x == 1: return 1
r = (-p) % x #r=(x-p%x)%x or r=((p-1)%x)+1
a = f(x, r)
if a: a = (a*x - 1) / r
return a
q = [(213,16),(214,16),(333,29)]
for p,x in q:
print "p={}, x={} -> {}".format(p,x,f(p,x))
だから変形して
m巻 = (n日 * xページ + 1) / pページ ... 余り0
または
(m巻 * pページ - 1)/xページ = n日 ... 余り0 ・・・以上!医女!いじょ!
0568デフォルトの名無しさん
2014/07/24(木) 06:23:53.35ID:u4kYnz+D( ・ω・) <キョウモアツイノン
○={=}〇
|:::::::::\
、a、pし 、、、(((.@)ple iwatch
0569デフォルトの名無しさん
2014/07/24(木) 09:02:04.89ID:URujTxoj'全n巻の全集があり各巻の頁数はすべてp頁である。毎日x頁づつ読んだら
最後の日は1頁だけだった。p,xから最小のnを求める。解がない場合は偽を返す。'(_p頁,_x頁,_最小のn) :-
'全n巻の全集があり'(_全集,_n巻),
'各巻の頁数はすべてp頁である。'(_全集,_p頁),
'毎日x頁づつ読んだら最後の日は1頁だけだった。'(_全集,_x頁),!,
_n巻 = _最小のn.
'全n巻の全集があり'(_全集,_n巻) :-
length(_全集,_n巻).
'各巻の頁数はすべてp頁である。'(_全集,_p頁) :-
findall(_各巻,(
member(_各巻,_全集),
length(_各巻,_p頁)),
_全集).
'毎日x頁づつ読んだら最後の日は1頁だけだった。'(_全集,_x頁) :-
flatten(_全集,_全集の全頁数),
'最後の日は1頁だけだった。'(_全集の全頁数,_x頁).
'最後の日は1頁だけだった。'([_],_).
'最後の日は1頁だけだった。'(L,_x頁) :-
length(L1,_x頁),
append(L1,L2,L),
'最後の日は1頁だけだった。'(L2,_x頁).
0570569
2014/07/24(木) 09:38:37.93ID:URujTxoj解がない場合の事を書き忘れたので追加しようと思ったのだが、このスタイルでは不可能。
'最後の日は1頁だけだった。'([]) :- !,fail.
'最後の日は1頁だけだった。'([_],_).
'最後の日は1頁だけだった。'(L,_x頁) :-
length(L1,_x頁),
append(L1,L2,L),
'最後の日は1頁だけだった。'(L2,_x頁).
のように偽を加えても、この位置から最初の_n頁を制御することはできないから、止まらなくなる。
ひとつの方法としては、メインの述語の最後に剰余が [] か [_]かを検査するようにするというのがある。
0571デフォルトの名無しさん
2014/07/24(木) 09:39:46.98ID:URujTxojすみません。_n頁ではなくて、_n巻でした。
0572デフォルトの名無しさん
2014/07/24(木) 09:41:41.86ID:URujTxojさらにまちがい。
'最後の日は1頁だけだった。'([],_) :- !,fail.
引数が足りなかった。
0573デフォルトの名無しさん
2014/07/24(木) 12:29:25.56ID:R/GtIe79(%i1) inv_mod(213,16);
(%o1) 13
(%i2) inv_mod(214,16);
(%o2) false
(%i3) inv_mod(333,29);
(%o3) 27
0574デフォルトの名無しさん
2014/07/24(木) 13:24:43.04ID:URujTxoj'全n巻の全集があり各巻の頁数はすべてp頁である。毎日x頁づつ読んだら
最後の日は1頁だけだった。p,xから最小のnを求める。解がない場合は偽を返す。'(_p頁,_x頁,_n巻) :-
'全n巻の全集があり'(_全集,_n巻),
'各巻の頁数はすべてp頁である。'(_全集,_p頁),
'毎日x頁づつ読んだら最後の日は1頁だけだった。解がない場合は偽を返す。'(_全集,_x頁,_最後の日に読んだ頁数),!,
_最後の日に読んだ頁数 = [_].
'全n巻の全集があり'(_全集,_n巻) :-
length(_全集,_n巻).
'各巻の頁数はすべてp頁である。'(_全集,_p頁) :-
findall(_各巻,(
member(_各巻,_全集),
length(_各巻,_p頁)),
_全集).
'毎日x頁づつ読んだら最後の日は1頁だけだった。解がない場合は偽を返す。'(_全集,_x頁,_最後の日に読んだ頁数) :-
flatten(_全集,_全集の全頁数),
length(_x頁ならび,_x頁),
最後の日は(_全集の全頁数,_x頁ならび,_最後の日に読んだ頁数).
最後の日は(L,L,L).
最後の日は([_],_,[_]).
最後の日は(L,_x頁ならび,_最後の日に読んだ頁数) :-
append(_x頁ならび,L2,L),
最後の日は(L2,_x頁ならび,_最後の日に読んだ頁数).
0575デフォルトの名無しさん
2014/07/24(木) 13:35:40.84ID:HPD+fOz3とある単桁からなる数列をN分割したパターンを全部出力したい。
さてどうやって実装しようか。
これで小町算(>>489)作れるぞー。
リファレンス。(バグってるかも。)
ttp://ideone.com/qpTEuW
0576デフォルトの名無しさん
2014/07/24(木) 17:32:03.85ID:qS/X139ehttp://ideone.com/N1NXL7
0577デフォルトの名無しさん
2014/07/24(木) 22:20:49.22ID:V0BqCKBt月の終わりの曜日(W)と日にち(D)が与えられるので、月の初めの曜日を英語の短縮表記(日曜ならSun、月曜ならMon)を出力せよ
標準入力から以下の形式で与えられる
D W
0578デフォルトの名無しさん
2014/07/24(木) 23:15:08.06ID:h2r2VfBNテストケースは?
0579デフォルトの名無しさん
2014/07/24(木) 23:43:13.92ID:V0BqCKBt0580デフォルトの名無しさん
2014/07/24(木) 23:52:23.17ID:OkIMP22t0581デフォルトの名無しさん
2014/07/25(金) 00:27:25.85ID:I7Fekg+S0582デフォルトの名無しさん
2014/07/25(金) 00:34:33.85ID:HVzq131/31 金 -> 1 土
28 金 -> 1 土
31 月 -> 1 火
30 水 -> 1 木
31 土 -> 1 日
30 月 -> 1 火
31 木 -> 1 金
31 日 -> 1 月
30 火 -> 1 水
31 金 -> 1 土
30 日 -> 1 月
31 水 -> 1 木
Mon Tue Wed Thr Fri Sat
D W
31 Fri
31 Fri -> 1 Sat
0584デフォルトの名無しさん
2014/07/25(金) 01:13:19.61ID:I7Fekg+Sだったらなんで必要のない D を入力させるんだ?
0585デフォルトの名無しさん
2014/07/25(金) 01:37:45.97ID:VBkcNL29これが限界。プロはもっと短くいけるか。
http://ideone.com/rDd2Gt
idx = (-1*(D-1))%7
(-1*(31-1))%7=-30%7=5
2014年1月から12月
31 金 <= 月->土、火->日、水->月、木->火、金->水、土->木、日->金
28 金 <= 月->火、火->水、水->木、木->金、金->土、土->日、日->月
31 月 <= 月->土、火->日、水->月、木->火、金->水、土->木、日->金
30 水 <= 月->日、火->月、水->火、木->水、金->木、土->金、日->土
31 土 <= 月->土、火->日、水->月、木->火、金->水、土->木、日->金
30 月 <= 月->日、火->月、水->火、木->水、金->木、土->金、日->土
31 木 <= 月->土、火->日、水->月、木->火、金->水、土->木、日->金
31 日 <= 月->土、火->日、水->月、木->火、金->水、土->木、日->金
30 火 <= 月->日、火->月、水->火、木->水、金->木、土->金、日->土
31 金 <= 月->土、火->日、水->月、木->火、金->水、土->木、日->金
30 日 <= 月->日、火->月、水->火、木->水、金->木、土->金、日->土
31 水 <= 月->土、火->日、水->月、木->火、金->水、土->木、日->金
0587デフォルトの名無しさん
2014/07/25(金) 13:19:28.12ID:9eCNvkr0リファレンスがバグってました。
バグなしで実装できる人、いない?
0588デフォルトの名無しさん
2014/07/25(金) 17:48:35.16ID:SXmh4X+k>>587
分割位置を出力。
http://ideone.com/py9QdX
0589デフォルトの名無しさん
2014/07/25(金) 17:55:44.44ID:9eCNvkr0半分丸あげます。
実際の数列分割も挑戦してみてください。
0590デフォルトの名無しさん
2014/07/25(金) 18:07:54.43ID:9eCNvkr0これ見たおかげで新しいアイディアを思いつきました。
感謝いたします。
0591デフォルトの名無しさん
2014/07/25(金) 19:27:50.93ID:9eCNvkr0ttp://ideone.com/uCt84k
>>588のアイディアを借りてバグフィックスしました。6割書き直した。Orz
多分これで大丈夫。これリファレンスにします。
さんきゅー>>588
これで小町算作れるけど、どうしよう燃え尽きそうだ。
0592デフォルトの名無しさん
2014/07/26(土) 00:06:57.84ID:wBQCFaSkx="Sun Mon Tue Wed Thr Fri Sat 29 28 . . . 31 30".split()
print x[sum(map(x.index,raw_input().split()))%7]
0593デフォルトの名無しさん
2014/07/26(土) 08:57:13.45ID:aEqt6i59p(W,D):-sub_atom(土金木水火月日,U,1,_,W),M is ((D+U-1) mod 7)*3,sub_atom('SatFriThrWedTueMonSun',M,3,_,X),wirte(X).
0594デフォルトの名無しさん
2014/07/26(土) 12:58:37.13ID:aEfRiu3td,w=input().split();s="SunSatFriThuWedTueMon"*6;i=s.index(w)+(int(d)-1)*3;print(s[i:i+3])
($D, $W) = split ' ', <>;
%h = map{$_=>++$i} (@a = qw{Sun Mon Tue Wed Thr Fri Sat});
print "$a[($h{$W} - $D%7) % 7]\n";
木曜の短縮表記はThrじゃなくてThuでしたね、ゴメンチャイ。
しかもこれ、任意の日にちの曜日から該当月の1日の曜日を求める別物をつくっちまった
おrz
ゆるしてたもれ皆の衆
(undef, $W) = split ' ', <>;
%h = map{$_=>$i++} @a = qw{Sun Mon Tue Wed Thr Fri Sat};
say $a[($h{$W} + 1) % 7];
0599デフォルトの名無しさん
2014/07/26(土) 14:59:53.66ID:AnCclOOo0600デフォルトの名無しさん
2014/07/26(土) 15:11:55.43ID:5kAGCZV2それでも入力を最終日に限る理由はないんだけど
0601デフォルトの名無しさん
2014/07/26(土) 17:10:06.22ID:hp9e8t100602デフォルトの名無しさん
2014/07/26(土) 17:19:12.12ID:L6yaIKEN分かりやすい例があれば良かったのだが。
0603デフォルトの名無しさん
2014/07/26(土) 17:26:23.32ID:7eFuqeN9自分でコード書いて確認しないのなら
せめて入出力例はしっかり書いてほしい
0604デフォルトの名無しさん
2014/07/26(土) 17:37:06.24ID:X0ysu7XS0605デフォルトの名無しさん
2014/07/26(土) 17:42:36.90ID:A8GscDyUいくつかの個別例からそれを満たしさえすれば、ある一般が成り立つとみなしている(ここが精神病)ので
適切な事例さえ列挙できない
さらに、例の部分を満たすアルゴリズムから、逆に例を作ってる傾向もある。
おかげで間違い例が後を絶たない
単なるバカだとここまで同じことを繰り返さない
これは精神病だな
577に曖昧さがあり、583、586で惑わされて
レス書いたけど何も書かないより良かったと思うぜ
0607デフォルトの名無しさん
2014/07/26(土) 17:59:53.37ID:A8GscDyUアルゴリズムがかってるから
アホか
いいかげんなこと言うな並べ替えだけで何種類のソートアルゴリズムがあると思ってるんだ。
上の例でも文字列のインデックス計算の他に配列+連想配列の組み合わせとか複数でてるだろ。
お前の言うアルゴリズムとは仕様のことか?
0609デフォルトの名無しさん
2014/07/26(土) 18:07:45.06ID:A8GscDyUあははは
読解力のないバカはレスするな
あほか!
ソートだけでもどれだけアルゴリズムがあるか!
可能は1個別アルゴリズムが確定されていればよろしい
それを
プププ
可能な全個別とするって
ばかなの?
張本人の精神病なの?
0611デフォルトの名無しさん
2014/07/26(土) 18:46:08.91ID:t1uv4qIEそれで妥当性見るのもお題の効力じゃないの?
普通にわからなかったら質問するでしょ?
ソートで困ったら俺はバブルソートつかうよ?独断と偏見で。
0613デフォルトの名無しさん
2014/07/26(土) 19:02:02.51ID:5kAGCZV20614デフォルトの名無しさん
2014/07/26(土) 19:07:17.14ID:t1uv4qIE曖昧ということは自由ということだ。補完の自由がある。
それで仕様うと違うって言われたら、明示しないアンタが悪いということができると思う。
このスレの場合は金銭が発生してるわけでもないし、書くことに意味がある。
それで回答がそろって自分とマジョリティのズレを感じたら自分はずれていたのかと質問者に問うこともできるし。
それを楽しむのも風流だと思いますよ。
ここの質問者はジャッジしてくれないので物足りん。
0615デフォルトの名無しさん
2014/07/26(土) 19:46:22.72ID:7eFuqeN9それといい加減なのは違うと思う
解答してもらいたくて出題するのだろうから
そうしやすいよう気を遣ってくれるとありがたい
>ジャッジしてくれない
むしろ回答者の方が的確にジャッジできる場合が多いんじゃないかな、あー俺のはいまいちだったね、とか
0617デフォルトの名無しさん
2014/07/26(土) 20:08:18.76ID:t1uv4qIEそれは個人的な感想で、適合率どれくらいとかほしい情報はいくつかある。
特に曖昧だと、どれくらい推論が達成できてるかの指標にもなるし。
0618デフォルトの名無しさん
2014/07/26(土) 22:13:15.33ID:U7I4BaCZここの一部の人は何か違う方向の人がいてヒステリーだね
0619片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/07/26(土) 22:24:22.35ID:h5vm2o/Y0620デフォルトの名無しさん
2014/07/26(土) 22:32:01.65ID:TEOySHsN揚げ足取りくらいにしか思ってないんだろな
0621デフォルトの名無しさん
2014/07/26(土) 22:33:43.60ID:t1uv4qIE自分が棘のある言葉をしゃべってる自覚がない人は、パレートの法則を顧みて全体の2割程度いる。
0622デフォルトの名無しさん
2014/07/26(土) 23:07:58.27ID:t1uv4qIEあきらめんな!君ならできるさ、さぁやるんだ。
0623デフォルトの名無しさん
2014/07/26(土) 23:47:59.83ID:YG8kjpYl( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、r、oし 、、、(((.@)hto digieye
pint for
map{$$_[1]}
sort{$$a[0]<=>$$b[0]}
map{[index($_,1), ++$i]} <DATA>;
__DATA__
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
pint for
map{$$_[1]}
sort{$$a[0]<=>$$b[0]}
map{[index($_,1), ++$i]} <DATA>;
__DATA__
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
× pint for
○ print for
print values %{{sort {$$a[0]<=>$$b[0]} map{index($_,1)=>++$i} <DATA>}};
__DATA__
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
5.16までなら下記でおkで、5.18は多分だめだと思うw、なぜでしょうねw
print values %{{map{index($_,1) => ++$i} <DATA>}};
__DATA__
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
sub f {
$m = $p*$n % $x;
$m == 1 ? $n : $m ? (++$n, &f) : 'false'
}
($p,$x,$n) = (213,16,1); say f;
($p,$x,$n) = (214,16,1); say f;
($p,$x,$n) = (333,29,1); say f;
0629デフォルトの名無しさん
2014/07/27(日) 05:00:21.31ID:MTtEpT+FC++だと、再起は末尾再起は最適化で消えるけどスタック食うからねぇ。
再起よりもループで済むなら済ませたい。
オレ様はツンデレじゃないけれど…
つ
sub f {
$n++ while ($m = $p*$n % $x) > 1;
$m ? $n : 'false'
}
($p,$x,$n) = (213,16,1); say f;
($p,$x,$n) = (214,16,1); say f;
($p,$x,$n) = (333,29,1); say f;
nがだんだんincrementされて行くと、
遅くともn=xに至ったとき、
あるいはそれ以前にp*nがxの倍数にったとき、
p*nはxで割り切れて剰余は0になりfalseを返す
よって>>628>>630は無限ループすることなく必ず終わる。
証明終わ
0633片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0
2014/07/27(日) 14:17:15.13ID:YSqiGYKeすでにあった
http://www.oshiete-kun.net/archives/2008/03/true3dshell.html
0634デフォルトの名無しさん
2014/07/27(日) 17:53:08.89ID:riiBdtz/pが大きくてxが小さい場合、糞みたいにループぐるぐる、か‥
もちっと賢いコードを書けんのか?馬鹿
そいわれてみりゃーそうだな
暇があったら違うのかいてみるよ
ノシ
0636デフォルトの名無しさん
2014/07/27(日) 18:54:03.07ID:riiBdtz/>暇があったら
書けない、と白状しているようなもの‥
0637デフォルトの名無しさん
2014/07/27(日) 19:10:11.38ID:Z/U2bUmXクズはいなくて良いから首でもククレカレー
チョット待て、危うく騙されるところだった。
巻数nをincrementするloop構造なので
loop回数はnで決まり、
「頁数pが大きくて読む頁数xが小さい場合」であっても
繰り返し回数は増えない。
つか、お前>>628にレスしているけど>>628のコード
巻数fの中はたったの2行だが、これがどういう意味が全く理解できていないんだろう。
それはさておき、>>555 の問題は剰余類環の問題の発展のように思えてちょっと興味深かったので、
loopで解が見つかるまで回す愚直なやり方ではなく、計算量のOが全然違う数学的な新しい解法を
原理的に考えてみようかと思ったが、それはかなり難しい未解決問題でアルゴリズムが存在するか
不明な問題かもしれない。
0639デフォルトの名無しさん
2014/07/28(月) 03:29:51.75ID:oe4NCAZo>loop回数はnで決まり、
その n は p, x から決まるのでは?
0640デフォルトの名無しさん
2014/07/28(月) 08:25:58.02ID:6U+MneYR>>638
考えてみた。
ttp://ideone.com/baFAYM
>剰余類環の問題の発展のように思えて
うん,お題が数論だといつも意外に人気だね
>計算量のOが全然違う数学的な新しい解法
>>558
>アルゴリズムが存在するか
とりあえずユークリッドの互除法
>>640
本質的に >>555 は,
pn ≡ 1 (mod x)
を n について解く問題,これは gcd(p, x) = 1 であることが必要十分条件.
gcd を求める一般的かつ効率的な方法は上掲のユークリッドの互除法なんだが,
>>640 には互除法たるループが含まれていないのが,ナイーブなぱっとみだが,かなり疑問
時間ができたら精査するね.
>>634 が言っていることは
「一巻あたりの頁数pが大きくて、一回に読む頁数xが小さいとイテレーション回数が増大する」
ということ。これは、多分等式:
n巻 × p頁 = 総頁数 = 読んだ回数×一回に読む頁数x+余り1または0
もっと単純化して書けば
n
n×p ≒ 回数×x → 回数 ≒ p ---
x
から受けた印象だと推定している。それは違うと説明したのが>>638。
なぜならある巻をx頁ずつ読だら余る頁を求める計算に繰り返しはなく、剰余式一発だから。
それに、xが1や2のような小さな値のときを考えてごらん。pがどんなに大きくても2巻目の
繰り返しに入ることなく解がすぐ求まる。
何度も繰り返さないと解にいたらないのは、xが大きな素数など、剰余が色んな値を
渡り歩いてなかなか1や0にたどりつかないとき。
そして最悪のケースは、n==xに到達するまでn×p が xの最小公倍数にならない大きなxのとき。
この問題、ちょっとやらしいなと思ったのは、前回読んだ巻の残り頁数が次回の
分子の頁数に繰り越されて加算されていくでしょ。
商の分子が変動する場合の剰余類環問題を、巻数をincrementさせるloopを
使わずに効率的に解く方法がすぐ身見出せるか良くわからなかった。
ぼんやり考えていたのは
1. xのgcdとなる(p×n)を算出
2. xのgcdとなる(p×n-1)を算出
3. 1または2でnの小さい方に応じてnまたはfalseを返す
てな感じのもの。
>>558 のリンク先はdat落としてみられないけれど
gcdを求めるのにユークリッドの互除法を使うってことだよね。
おk?
> 1. xのgcdとなる(p×n)を算出
> 2. xのgcdとなる(p×n-1)を算出
> 3. 1または2でnの小さい方に応じてnまたはfalseを返す
だめだ、ちがうな、これ。どうしよう…少し考える。
これかよ
ttp://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%AF%E3%83%AA%E3%83%83%E3%83%89%E3%81%AE%E4%BA%92%E9%99%A4%E6%B3%95#.E6.8B.A1.E5.BC.B5.E3.81.95.E3.82.8C.E3.81.9F.E4.BA.92.E9.99.A4.E6.B3.95
こりゃすぐには思いつかないぜよ。
とりあえず>>630で勘弁しといてくれたまえ>ハゲトども
0646デフォルトの名無しさん
2014/07/28(月) 22:55:48.06ID:3g1lQlDGhttp://oeis.org/A102057
0647デフォルトの名無しさん
2014/07/29(火) 03:29:37.25ID:4ECyUkwP0648デフォルトの名無しさん
2014/07/29(火) 04:08:47.01ID:Tpl/vwjx同じような解答出てたらすまん
http://ideone.com/uXiscr
>>640
p = x のときとか、p = 3, x = 2 のときおかしくない?
0649デフォルトの名無しさん
2014/07/29(火) 05:26:34.66ID:4ECyUkwP意地悪してつっていてごめんね。
でも、>>555 は素材もよくアレンジの見た目も違和感のない、問題として佳作だと思ったので、再度とりあげたくって。
0650デフォルトの名無しさん
2014/07/29(火) 13:12:41.85ID:OtFP2bHT事前に処理時間を見積もりたいのですが、例えば
データ数 処理時間[秒]
1 2
10 30
100 124
1000 2456
10000 34566
みたいな表(上表の数値は適当に入れているので実際のケースとは異なる)を
作っておいてそれを用いて予測するなどの方式を考えたのですが、
精度よく予測するには、表のデータ数をもっと増やす必要がありますが、こういう場合に、
もっと良い方式はありますか?
0651デフォルトの名無しさん
2014/07/29(火) 17:37:17.12ID:H8EUDzLQすれ違い。知りたいことは回帰分析とか最小二乗法とかだろう
0652デフォルトの名無しさん
2014/07/29(火) 19:00:59.41ID:Y+4C37is0653デフォルトの名無しさん
2014/07/29(火) 19:32:29.14ID:4ECyUkwP0654片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/07/29(火) 22:08:14.21ID:qgm2mseYル「shouso.pdf」を出力するプログラムを作れ。提出期限は8月5日まで。
0655片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/07/29(火) 22:45:12.66ID:qgm2mseY日本の一般常識を持った君たちだからこそベターにできる分野を任すのがいいと私は思うのだが。
0656デフォルトの名無しさん
2014/07/29(火) 23:05:19.29ID:2RoZk/Js0657片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/07/29(火) 23:16:07.77ID:qgm2mseYような思考実験や、うんざりするようなテストの連続、ライブラリーを探し回ることも大事な仕事だ。
実戦に送り出す前にこうした訓練を行うことは大いに意義がある。
ユークリッドの互除法を使うという大きなヒントを貰ってしまったので
時間のあるときに解法の原理についてチョコチョコ考えていた。
何となく分かってきたのは
1)n×pをxで割った剰余が1となるのはn×pとxが互いに素な場合
2)剰余が巡り巡って1を経る前に0となる、即ち剰余1を経由せずに0となるのは
n×pとxの間に>1な最大公約数がある場合。
じゃあそのどちらなのか、そして2)の場合はpが何巻目なのかを
ユークリッドの互除法を応用して求めれば行けそうな気がしてきた。
さて、オレ様に他人の書いた解のソースを参照することなくコードまで具現化できるかな。
一応職業ソフト屋でそれなりに多忙なので時間があったらもう少し検討を進めてみる。
0659デフォルトの名無しさん
2014/07/30(水) 03:30:14.89ID:T03rYC/50660デフォルトの名無しさん
2014/07/30(水) 03:54:53.06ID:/sawPdNN0661558
2014/07/31(木) 04:55:31.05ID:QIEzwx33http://ideone.com/C8FJQf
なお >>558 はバグがあったので修正している
http://peace.2ch.net/test/read.cgi/tech/1313183984/766
>>648
この結果で >>648 が p = x = 1 のときにとちったことになっているのは、
私が ruby を読みちがえて翻訳に失敗している可能性が高い、ごめんね‥
で書き直したいんだけど、戻り値が構造体ってどうやるんだっけ?C++の参照でもいいけど。
1. #a, b が与えられたとき ax + by = gcd(a, b) となる x, y を返す
2.def euclid(a, b)
3. もしaが0ならば[0,1]の2変数を戻り値とする。
4. そうでなければ、euclid(b % a, a)からxとyを求めて、
5. [y - b / a * x, x]の2変数を戻り値とする。
6.end
7.
8.# pn ≡ 1 (mod x) となる最小の正整数 n を返す
9.def answer(p, x)
10. もしgcd(p,x)が1でないならば、falseを返す。
11. euclid(p, x)の2変数のうち最初の変数をnとし、
12. nが0未満なら、n+xを、そうでないならnを返す。
13.end
0663デフォルトの名無しさん
2014/07/31(木) 12:42:28.88ID:lG7DqVRw0664デフォルトの名無しさん
2014/07/31(木) 21:43:57.36ID:nq8bRyMXわざわざ構造体組むのメンドすぎる。
そのうちローカル変数のコピー返しはムーブに変更される予定。
でも>>662のanswer関数の10,11,12でなぜpn ≡ 1 (mod x) となる最小の正整数 n が求まるのかは
パット見おれにはよく分からないので、もう少し自力なりの解法を考えてみたい。
俺にとって何か課題を解くということは、自分で考えることだし。
自分なりに少し考えて来たが、いま詰まっているのは
p頁とxの最小公倍数となる巻に至って剰余が0となる前に
剰余が1となる巻nを求める上で、剰余が
p%x,2p%x,3p%x,…、1、最小公倍数%x
と移り変わるとして、これを愚直にループで探さずに一気に収束するように検索うる解法として
ユーグリッドの互除法のような数学的な方法があるのか、ということろ。
ここの観点から>>662のanswer関数の10,11,12のコード(多分ここが核心)に至るには
それは正しいかも知れないが、数学面で論理的な飛躍がかなりあると思う。
間に定理が二つくらい必用な稀ガス
0666デフォルトの名無しさん
2014/07/31(木) 23:12:55.88ID:dXluO/J+△希ガス
○気がする
0667デフォルトの名無しさん
2014/07/31(木) 23:37:00.07ID:uCJCqnN7一般に、+1づつ増加する自然数1,2,3,…をxで割った
剰余は1,2,…,x-1,0(←ここで割り切れ、商は1となる)
一方>>555の問題は剰余が
p頁*1巻 % x頁 = m1頁
p頁*2巻 % x頁 = m2頁 =m1×2
p頁*3巻 % x頁 = m3頁 = m1×3
…と最初m1から始まって幅m1ずつ増える数列となる。
しかし剰余が大きくなっていきxを越えるとき、m1の倍数からドリフトし、
別の切片から始まり、傾きm1ずつ増える数列に切り替わる。これを繰り返し、
いずれ総ページがpとxの最小法倍数となる巻数で剰余は0になる。
問題は、上記剰余列のなかに値1となるときがあるか、あるならば何巻目か。
1巻目から検索せずに飛躍的して速やかに求める解法があるかどうかだ。
別の面から見ると、p*nがxで割り切れる巻数nは
pとxの最小公倍数から簡単に求められる。
そのときの総ページ数を、
・幅x頁で分割した節点
と
・幅m1で分割した節点
の位置関係のうち、
幅x頁で分割した節点の+1のところに幅m1で分割した節点があるか、
その位置が予測可能かどうかだともいえる。
この規則性みたいな物が定式化できれば解けるかも知れないけど
でも今オレに分かっているのは悪いけどここまでだ。
>>666>>667 どうせなら内容にケチ付けてよ。
0669デフォルトの名無しさん
2014/08/01(金) 00:00:11.16ID:oaizx2Erスマソ
あっ
これでもくらえー
ttp://i.imgur.com/qOGRTXM.jpg
0671デフォルトの名無しさん
2014/08/01(金) 03:48:59.91ID:fdnpPK/5http://ideone.com/bRI0H8
0672デフォルトの名無しさん
2014/08/01(金) 08:45:28.73ID:fdnpPK/5あー、言ってる意味今やっとわかった。
最初みたとき ideone が取り込み中で見れなかったんだよな。
> この結果で >>648 が p = x = 1 のときにとちったことになっているのは、
> 私が ruby を読みちがえて翻訳に失敗している可能性が高い、ごめんね‥
>>555 の問題の意味考えたら p = x = 1 のとき n = 1 じゃないか?
> p頁とxの最小公倍数となる巻に至って剰余が0となる前に剰余が1となる巻nを求める上で、
> 剰余が p%x,2p%x,3p%x,…、1、最小公倍数%x と移り変わるとして、
> これを愚直にループで探さずに一気に収束するように検索しうる解法として ユーグリッドの互除法
> のような数学的な方法があるのか、
>>668
> 幅x頁で分割した節点の+1のところに幅m1で分割した節点があるか、
> その位置が予測可能かどうかだともいえる。
> この規則性みたいな物が定式化できれば解けるかも知れない
互除法ではないがiterationで収斂させる一つの解法を得た。計算量はかなり減るがワーストケースは($p,$x) = (333,29)の様な場合か。
>>555 Perl
sub f {
$n = 1;
$w = $p % $x;
while ($m = $p * $n % $x) {
#say "volume $n: residural=$m";
return $n if $m == 1;
$r = ($x - $m) % $w;
$s = ($x - $m - $r) / $w;
$s += 1 if $r;
$n += $s;
}
'false'
}
($p,$x) = (213,16); say f;
($p,$x) = (214,16); say f;
($p,$x) = (333,29); say f;
($p,$x) = (3,2); say f;
0674デフォルトの名無しさん
2014/08/02(土) 19:00:50.86ID:yAhCEHKvhttps://paiza.jp/poh/kirishima
あなたは天才的頭脳で超人的な演算処理能力を持ち、幾多のデスマプロジェクトを鎮めてきた天才火消しエンジニア霧島 京子(26歳)。
エンジニアの間で知らない者のいない伝説のエンジニアである。
今回霧島に降りかかってきたミッションは、なんと史上最大級の20万人月プロジェクト。霧島の運命やいかに!!
0675デフォルトの名無しさん
2014/08/02(土) 19:01:34.52ID:T9/uXsqS'全n巻の全集があり各巻の頁数はすべてp頁である。毎日x頁づつ読んだら
最後の日は1頁だけだった。p,xから最小のnを求める。解がない場合は偽を返す。'(_p,_x,_最小のn) :-
length(_p頁,_p),
length(_x頁,_x),
'毎日x頁づつ読んだら最後の日は1頁だけだった。'([_p頁],_p頁,_x頁,_p頁,_全集),
length(_全集,_最小のn).
'毎日x頁づつ読んだら最後の日は1頁だけだった。'(_全集,_p頁,_x頁,[_],_全集) :-
append(_x頁,[_],_p頁),!.
'毎日x頁づつ読んだら最後の日は1頁だけだった。'(_,_,_,[],_) :- !,fail.
'毎日x頁づつ読んだら最後の日は1頁だけだった。'(_全集_1,_p頁,_x頁,L1,_全集) :-
'毎日x頁づつ読んだら最後の日は1頁だけだった。まだ読み切ってはいない。'(_全集_1,_p頁,_x頁,L1,_全集).
'毎日x頁づつ読んだら最後の日は1頁だけだった。まだ読み切ってはいない。'(_全集_1,_p頁,_x頁,L1,_全集) :-
append(_x頁,R1,L1),
'毎日x頁づつ読んだら最後の日は1頁だけだった。'(_全集_1,_p頁,_x頁,R1,_全集).
'毎日x頁づつ読んだら最後の日は1頁だけだった。まだ読み切ってはいない。'(_全集_1,_p頁,_x頁,L1,_全集) :-
append(L1,R1,_x頁),
'毎日x頁づつ読んだら最後の日は1頁だけだった。'([_p頁|_全集_1],_p頁,_x頁,R1,_全集).
0676デフォルトの名無しさん
2014/08/02(土) 20:06:32.71ID:PHOlJfeG0677デフォルトの名無しさん
2014/08/02(土) 21:00:27.11ID:0JC1bMIMp*n=x*m+1のnを見つける関数をf(p,x)とする。試しにf(213,16)を考える
213*n = 16*m + 1
→ n*(16*13 + 5) = 16*m + 1
→ 16*(n*(13+1)-m) = (16-5)*n + 1
これをp*n=x*m+1と見て再帰コール。答えがあれば(n*(13+1)-m)の値が返ってくる
f(16,11)
→ 16*n = 11*m + 1
→ (11*1+5)*n = 11*m + 1
→ 11*(n*(1+1)-m) = (11-5)*n + 1
f(11,6)
→ 11*n = 6*m + 1
→ (6*1+5)*n = 6*m + 1
→ 6*(n*(1+1)-m) = (6-5)*n + 1
f(6,1)
x==1 なら n=1,m=p-1 → p*1=1*(p-1)+1 だから答えは1 (x==0ならfalse)
return 1
6*1 = 1*n + 1 → n=(6*1-1)/1=5
return 5
11*5 = 6*n + 1 → n=(11*5-1)/6=9
return 9
16*9=11*n+1 → n=(16*9-1)/11=13
return 13 (答え)
0678デフォルトの名無しさん
2014/08/03(日) 07:30:24.62ID:0gEDGX2+0679デフォルトの名無しさん
2014/08/03(日) 08:14:19.22ID:sAbtnkbo> 素数を全て求めるプログラム
ありません
0680デフォルトの名無しさん
2014/08/03(日) 08:43:35.51ID:mU4IZymtdlang
import std.stdio;
void main() {
auto a=[2];
auto t=0;
for(int n=3; n<int.max; n+=2) {
foreach(x; a) {
if((t=n%x)==0)break;
}
if(t)a~=n,writeln(n);
}
}
0681デフォルトの名無しさん
2014/08/03(日) 09:01:04.16ID:vVRF2pWw少しだけ長い桁の素数をひとつ求めるプログラム
cat(82:1,sep="")
0682デフォルトの名無しさん
2014/08/03(日) 10:05:15.81ID:uHzlV8WUn = 3^10 000 000では?
0683デフォルトの名無しさん
2014/08/03(日) 11:39:48.05ID:xqw9muIy0685デフォルトの名無しさん
2014/08/03(日) 13:15:02.31ID:uHzlV8WU3^10000000は、10進 4771214桁でテキストで出力しても4M。
メモリに乗らないはずがない。
0687デフォルトの名無しさん
2014/08/03(日) 15:31:42.34ID:q8fBalr72ちゃんのレスに収まる範囲にしてくれ
0688デフォルトの名無しさん
2014/08/03(日) 16:21:36.50ID:vVRF2pWw0689デフォルトの名無しさん
2014/08/03(日) 21:33:42.17ID:xqw9muIyttp://ideone.com/kp55Df
ほぼC。魅惑の総当たり。割と確実だけど遅いよ。
はじめ、一人当たりの単価だしときゃいいだろうとやってたが明らかに甘かったので総当たりにした。
高速化はしてあるが、さほどきいてるとも思えず・・・。Orz
0690デフォルトの名無しさん
2014/08/03(日) 21:36:54.00ID:xqw9muIy多倍長演算めんどくて俺の頭がオーバーフローします。
uint64_tに乗る範囲にしてくれないと解けないよ。
からつば演算理解してないし。
0691デフォルトの名無しさん
2014/08/04(月) 07:24:02.36ID:ZNwoMX35ttp://codepad.org/blUCJdTE
ttp://paiza.jp/poh/kirishima/result/c911e7d1226b6faa91d2cf87bd8777ed
ぬーん
0692デフォルトの名無しさん
2014/08/04(月) 07:59:26.34ID:sPmFx3ag0693デフォルトの名無しさん
2014/08/04(月) 11:14:26.42ID:TGYEvOJ0ベースとなるデータA
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,*
シャッフルされたデータB
2,14,4,11
8,3,*,6
7,5,10,12
9,1,13,15
BをAに戻すための最短回数とどことどこを移動したか出力せよ
メモリに気をつける事
0694デフォルトの名無しさん
2014/08/04(月) 11:38:48.91ID:RXrafceO>>689通してみたら、ユニット1で落ちた。出力結果が間違ってるそうだ。
ムラムラしてきた。
0695デフォルトの名無しさん
2014/08/04(月) 12:08:37.18ID:RXrafceO総当たりのはずなので間違えようがないはずなんだが、なんでだ?
出力がみたい〜〜〜。
いつもトライアルアンドエラーでデバッグしてるのでこういう一発勝負は弱いなー。くそー。Orz
うほほーい。イライラスルー。
0696デフォルトの名無しさん
2014/08/04(月) 15:43:19.24ID:RXrafceOCランクにはなったが自分の力不足を痛感するに至った。うん、がんばろう。
とりあえず、テストは通るんだが時間付与の得点が稼げない。
俺、コーディングおっそいわ。
0697デフォルトの名無しさん
2014/08/04(月) 16:53:41.52ID:RXrafceOWHAT!?
0698デフォルトの名無しさん
2014/08/04(月) 16:55:35.28ID:76hz+sYqソートと再帰検索を組み合わせてみたけどダメポ
なんかウィジェットのやつみたいに特殊なやり方があるんだろうか
コスパ順にソートするとか考えてみたけど
コスパが良いからといって必ず使うわけじゃないから難しい
絶対に使わないものを除外するとか有りかな
0699デフォルトの名無しさん
2014/08/04(月) 17:43:13.46ID:FIHdxfkd#include <iostream>
#include <float.h>
using namespace std;
int kuujin = 200000;
int subcontractor = 35;
double kuujin_ratio=0.5;
double rnd_border=0.2;
double rndpercent() {
static double X=0, Y=0;
if(X <= DBL_MIN) { X = 0.5/rnd_border; Y = rnd_border/0.5; }
return Y * (X -0.5+((double)rand()/RAND_MAX));
}
int main() {
cout<<kuujin<<endl<<subcontractor<<endl;
double sosu = (double)kuujin/kuujin_ratio;
double base = sosu/subcontractor;
for(int n=0; n<subcontractor; n++) {
unsigned int su = (int)(0.5 + base * rndpercent());
unsigned int tanka = (int)(0.5 + 1000 * rndpercent());
cout<< su <<" "<<tanka*su<<endl;
}
return 0; }
0700デフォルトの名無しさん
2014/08/04(月) 18:27:30.67ID:BvocbDBwhttp://nojiriko.asia/prolog/p_odai4_688.html
http://nojiriko.asia/prolog/p_odai4_688_2.html
0701デフォルトの名無しさん
2014/08/04(月) 18:33:03.93ID:RXrafceO参考にします。
けど、折角C++使うんだったら<random>使ってほしいなー。とわがままを言う・・・。Orz
この惨敗画面も本気でやって拝めるもんじゃない。あふー。
http://paiza.jp/poh/kirishima/result/bc22a2f628e9652ea544ad4f7ce81166
http://ideone.com/L2PtHN
今回のものは0-1-ナップザック問題に似ている.0-1-ナップザック問題なら厳密解が出るのだが,これは制限条件の中で最大値を求めるものだ.
一方,今回の paiza は縛りのもとで最小値を求めるもの‥
評価値(このばあいは r(i) )の逆数でやってみようか‥
>コスパ順にソートする
キューのソートか‥
>>686 は横型検索だが,キューの毎回ソートは考えていなかった.>>686 はなるたけ早く最小解を導きだせれば枝狩りが増える構造だから,ちょっと考えてみよう‥
0703デフォルトの名無しさん
2014/08/04(月) 19:11:52.86ID:RXrafceO暇だったのでジェネレータ書いた。
>>699ほど気の利いたものでもないけど、実行結果がほしかった。
0704デフォルトの名無しさん
2014/08/04(月) 19:26:10.97ID:RXrafceOttp://ideone.com/QizlO9
だめだ。イデオン先生にも解けないくらい重いアルゴリズムだった。
ふむ、あきらめついたわ。
0705デフォルトの名無しさん
2014/08/04(月) 20:03:23.54ID:RXrafceO0706デフォルトの名無しさん
2014/08/04(月) 21:17:45.26ID:YEOamTiVコストパフォーマンス順にあたってみる優先順位付きキューを使ってみたけれども,やっぱりレベル5 どまりだった‥
http://paiza.jp/poh/kirishima/result/df3b3ab0a49741981f99e17135722fb8
http://ideone.com/NmcoC4
幅優先探索じゃもうだめかもね‥
0708デフォルトの名無しさん
2014/08/05(火) 05:23:03.28ID:aeIsZwXF#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main(){
int M, N, i, j;
scanf("%d%d",&M, &N);
vector<int> num(N), cost(N);
for( i=0; i<N; i++) scanf("%d%d",&num[i],&cost[i] );
unsigned int total = accumulate(num.begin(), num.end(), 0);
vector<unsigned int> X(total+1 ,-1); X[0]=0;
for(j=0; j<N; j++) {
int k = num[j];
for( i=total-k; i>=0; i--) if( X[i]!=-1 ) {
int x = X[i]+cost[j];
if( X[k+i]>x ) X[k+i]=x;
}}
cout<< *min_element(X.begin()+M, X.end()) << endl;
return 0; }
0709デフォルトの名無しさん
2014/08/05(火) 18:37:14.26ID:jcF43kba短い。速い。ちょっと考察させてもらったよ。
人数に対する最少コストリストをメモリ上に作って最後に人数を満たしたうえで小さいものを選ぶと。
順番とかは考慮しなくてもいいからとにかく作る。と。
結構メモリ食ってるね。ランダム生成した35項目で80万要素くらいのベクタできてた。まー、そうでもしないと高速化は無理か。
割り切りの面白い所は、とりあえず人数満たなくてもいいからリストは作っちゃえ。っていうのが面白かった。
俺はそういう発想が抜けてるから、総当たりとか選んじゃうんだなー。もっと柔軟になりたい。
けど、こんなにメモリ使うとなるとガクブルになっちゃうな。俺。時代を信じようか。512M使っても大丈夫という設定だし。
勉強になりました。
コード公開してくれてありがとう。
0710デフォルトの名無しさん
2014/08/05(火) 19:16:23.72ID:AP1I3ptf0711デフォルトの名無しさん
2014/08/05(火) 19:37:16.71ID:jcF43kbaうーん。どうにか重み係数で一発採用できないか考えてるが難しいねぇ。
人数*(最大コスト-コスト)ダメ
一人当たりのコスト計算ダメ。
なんかこううまい重みないかなー。
0712デフォルトの名無しさん
2014/08/05(火) 21:12:52.59ID:I7+4Es4Vみたいですね。
0713デフォルトの名無しさん
2014/08/05(火) 21:38:10.93ID:jcF43kba普段の手抜き方法で実装できないかやってみたが、やっぱつぶされてるな。
重みづけはなんか失敗するし、ミンマックス法やってみたがうまいことつぶされてる。
俺の常識はもう時代遅れなのかねー。やっぱキテラッタ方法考えるのが常道になりつつあるのか。
うーむ。難しい。
なんか面白い重みないかなー。このパラメータでデバッガ眺めてる目ではわかるんだよな。
これをどうやってコードに落とそうか。。。
>>712
PGの専門誌ってあんまり読んだことないんだよね。
PC自作流行ってた時にそういう専門誌は買ってたけど。
DOS/V PowerReportとか。
0714デフォルトの名無しさん
2014/08/05(火) 21:48:46.29ID:vupJs36Iちょっとググればそのへんにサンプルごろごしてるだろ
0715デフォルトの名無しさん
2014/08/05(火) 21:49:15.42ID:KgLhIz0r最後の4行目
×if( X[k+i]>x ) X[k+i]=x;
○if( X[k+i]>x ) { X[k+i]=x; }
な、
1人でコーディングしてんなら、前者でも問題ないけど。
0716デフォルトの名無しさん
2014/08/05(火) 21:52:50.66ID:vupJs36I徹底省略が粋ってもんですよ
0717デフォルトの名無しさん
2014/08/05(火) 21:55:46.23ID:jcF43kba自力で解きたいんだよ。
解答見るのは簡単だけど、そう言う事じゃないんだ。
うん。俺が馬鹿なんだ。
0718デフォルトの名無しさん
2014/08/05(火) 22:08:24.94ID:pQGhTnDmなんの雑誌か忘れたけど、圏論は大熊正先生の連載は楽しかったな
0719デフォルトの名無しさん
2014/08/05(火) 23:14:55.79ID:vupJs36I大抵は3次請4次受け使って人をかき集めて
地獄のようなプレッシャーかけて馬車馬のように働かせるのが仕事
火がついて客も自分も赤字が膨らんでる状況で、設計まで出戻ってリファクタなんか客が許すわけないですしw
0720デフォルトの名無しさん
2014/08/05(火) 23:37:23.23ID:jcF43kba火消してるのは前段階のコスト計算であって、火消そのものではないよね。
コスト計算に2年もかかった火村氏は、どうなんだ?
0721デフォルトの名無しさん
2014/08/06(水) 00:24:54.09ID:s0fVHAbHナップザック問題だけど、一般的なナップザック問題とは値の向きが逆だね
>>716
最終的には可読性も評価対象
>>719>>720
残り一月で人月合わせとか突っ込みどころは山ほどあるけど、
一番の笑いどころは火村の過ちを全力で後追いしてる所だな。
過剰なテストを高速にパスする遊びで残り1ヶ月を0にすんなww
放火魔タイプの放つ火は消さず、放っておいてその屋敷を焼き払う。
そうすれば放火魔も焼け死んで、二度と火を放つことはない。
結論、放たれた火は消しては行けない
これ豆な
0723デフォルトの名無しさん
2014/08/06(水) 01:18:35.30ID:lsZz8I5Rひどいちゃぶ台返しだなそれ。
0724デフォルトの名無しさん
2014/08/06(水) 04:08:29.53ID:ItmB6vur0725>>708
2014/08/06(水) 09:42:39.69ID:v3jxJ6D4#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main(){
int M, N, i, j;
scanf("%d%d",&M, &N);
vector<int> num(N), cost(N);
for( i=0; i<N; i++) scanf("%d%d",&num[i],&cost[i] );
unsigned int total = accumulate(num.begin(), num.end(), 0);
vector<unsigned int> X(total+1 ,-1); X[0]=0;
for(j=0; j<N; j++) {
int k = num[j];
for( i=total-k; i>=0; i--) if( X[i]!=-1 ) {
int x = X[i]+cost[j];
if( X[k+i]>x ) { X[k+i] = x; }
}}
cout<< *min_element(X.begin()+M, X.end()) << endl;
return 0; }
0726デフォルトの名無しさん
2014/08/06(水) 13:57:06.46ID:4MouWiFtこれを使わずクリアできるか?
0727デフォルトの名無しさん
2014/08/06(水) 16:35:33.40ID:FZDkv36t0728デフォルトの名無しさん
2014/08/06(水) 20:20:51.87ID:WntmyFY50729デフォルトの名無しさん
2014/08/06(水) 23:04:04.43ID:4MouWiFthttp://www.deqnotes.net/acmicpc/dijkstra/
迷路の最短経路を求めるには? - ザリガニが見ていた...。
http://d.hatena.ne.jp/zariganitosh/20100419/maze
Rubyで最短経路を探索しよう!
http://melborne.github.io/2010/01/21/Ruby/
0730デフォルトの名無しさん
2014/08/07(木) 01:03:27.30ID:DeLfuSuF小メモリで組めるかな?おそいかな?この場合深さ優先だけどな。
うーむ。
0731デフォルトの名無しさん
2014/08/07(木) 01:19:47.58ID:RY/b0miJのリストを出力するプログラムを作成せよ
※暦法はグレゴリオ暦とする
※リストは一日毎に改行する
※出力先はファイルでも標準出力でもよい
0732デフォルトの名無しさん
2014/08/07(木) 02:43:25.64ID:UpVFQSLy再帰を使ってみたが、
Test case 6 で 失敗 (タイムオーバーです)。
http://ideone.com/H3kdVo
0733デフォルトの名無しさん
2014/08/07(木) 02:50:06.97ID:DeLfuSuFhttp://ideone.com/Fok0NZ
>>674
言いだしっぺなので自分でもやってみました。再起。
ちと遅いですねぇ。メモリ量は良好ですけど、ちょっと多重ループになる部分が重たいですなー。
うーむ。
でも、レベルアップしたよ!
前は一個目のテストすら通らなかったからな。>>701
0734デフォルトの名無しさん
2014/08/07(木) 03:42:28.49ID:DeLfuSuFメモリにキックするのがベターか。確かに早いもんなー。うーん。
http://ideone.com/Fok0NZ
コスパ順にソートして深さ優先探索をしました。必要のない実験コードが山のように入っています。
0735デフォルトの名無しさん
2014/08/07(木) 03:44:16.22ID:DeLfuSuF短いですな。その短さで追いつけないとなるとホント手がないね。
0736デフォルトの名無しさん
2014/08/07(木) 04:06:19.68ID:DeLfuSuF一行追加したら超高速化した。ケース6で跳ねられたけど。
手元では、>>708より早く解答出してるんだが。なんででしょ?
長いテストデータほしー。
0737デフォルトの名無しさん
2014/08/07(木) 04:14:29.61ID:DeLfuSuFフラットなデータ持ってこられると弱いかも。
0738デフォルトの名無しさん
2014/08/07(木) 05:43:27.51ID:v1FM2WV+末尾最適化するなら根本のアルゴリズムから変更しないと。
0739デフォルトの名無しさん
2014/08/07(木) 06:08:01.46ID:DeLfuSuF元々再起あんまり好きじゃないんだよ。だけど今回はしょうがないから使ったのであんまり再起は詳しくないんだ。
まぁ、手でループに展開するしかないんじゃないかナ。
その時は、スタックバッファは必要だわ下手するとGotoが必要になるわ。あんまりいいことなさそう。
ほんと、アルゴリズムそのものを変えないといけない。それは難しいな。やっとここまでたどり着いたんだが。Orz
0740デフォルトの名無しさん
2014/08/07(木) 06:46:40.64ID:v1FM2WV+0741デフォルトの名無しさん
2014/08/07(木) 08:38:10.19ID:DeLfuSuF引数の半分は参照だし、8バイト*3を50スタックだからスタックオーバーフローが怖いくらいだね。
ほかはヒープだったりとか必要経費だったりとか。
普通スタックって1MB位あるもんじゃないの?十分収まってるはずなんだけど。
オッかしいなー。
0742デフォルトの名無しさん
2014/08/07(木) 08:48:40.60ID:DeLfuSuF0743デフォルトの名無しさん
2014/08/07(木) 18:35:20.23ID:v1FM2WV+簡単に思いつかない。
0744デフォルトの名無しさん
2014/08/07(木) 23:04:13.64ID:DeLfuSuF基本的にはスタックからヒープに逃がしてやる、スタックバッファの手法でループには展開できるよ。
手でやらないといけないし、コードの可読性めちゃ下がるけど。
幸いタプルが使えるようになったので、一々構造体定義しなくてもよくなったしハードルは下がってるよ。
ループは上限が不定値だからね。固定値だったらループアンロールできたかもだけど。
ループになったら、再起使うかループ構文使うかしかないし。選択肢はない。
0745デフォルトの名無しさん
2014/08/08(金) 00:54:49.14ID:SSoGNqki#include <stdio.h>
#include <vector>
using namespace std;
unsigned int M, N, num[50], cost[50];
vector< vector<unsigned int> > hash(200001 ,vector<unsigned int>(50, -1));
unsigned int recursion(int m, int n) {
if (m <= 0) return 0;
if (n == N) return -2;
if(hash[m][n]!=-1) return hash[m][n];
hash[m][n]=-2;
for (int i = n; i < N; i++) {
int w = recursion(m - num[i], i + 1);
if(w ==-2) continue;
hash[m][n] = std::min(hash[m][n], w+cost[i] ); }
return hash[m][n]; }
int main() {
scanf("%d%d",&M, &N);
for (int i = 0; i < N; ++i) scanf("%d %d", &num[i], &cost[i]);
printf("%d\n", recursion(M, 0));
}
何か本質的な物が見つかるような気がして暇を探して考えていたけど…
>>674 の人気が高くて気になってきた。
そもそも>>674は縦読みで何の課題か分かっていない、ナップザック?
しかし霧島 京子(26歳)って…
ムチムチブリンブリンのかわいこちゃんだったらオレ、どうしよう。
0747デフォルトの名無しさん
2014/08/08(金) 01:32:57.72ID:la99q2hiやっぱ、メモリにキックするのが早道だね。むー。
しかし、難関をこうもあっさり超えていくとは、尊敬します。
俺も才能ほしい。
0748デフォルトの名無しさん
2014/08/08(金) 01:44:08.07ID:la99q2hi妄想上なら何やっても犯罪にはなりませんよ?(ニッコリ
でもリアライズしないでください。(きっぱり。
0749デフォルトの名無しさん
2014/08/10(日) 00:26:40.00ID:bijgh7u9+--------------------+
|□時間差 X|
+--------------------+
|start 04:56:34.567 |
|stop 12:40:32.456 |
| |
|+--+ 07:43:57.389 |
||−| |
|+--+ 27838389 |
+--------------------+
stopがstartより小さいときは+24:00:00して考える。
0751デフォルトの名無しさん
2014/08/12(火) 00:16:39.75ID:KCPrEMOLdef f(start,stop):
a = [1000*reduce(lambda x,y:60*x+y, map(float,s.split(':'))) for s in (start,stop)]
b = [int(a[1]-a[0]+86400000) % 86400000]*2
for d in (1000,60,60): b = list(divmod(b[0],d)) + b[1:]
print u"""\
+--------------------+
|□時間差 X|
+--------------------+
|start {} |
|stop {} |
| |
|+--+ {:02d}:{:02d}:{:02d}.{:03d} |
||−| |
|+--+ {:>8d} |
+--------------------+
""".format(start,stop,*b)
f("04:56:34.567","12:40:32.456")
0752デフォルトの名無しさん
2014/08/12(火) 13:36:15.80ID:IbGC0kFiテストケース7 Erlang 最速実行時間 1.16 秒
https://paiza.jp/poh/kirishima
0753デフォルトの名無しさん
2014/08/12(火) 20:35:40.77ID:oZd1SAr2( ・ω・) <イワレチャッタノン
○={=}〇
|:::::::::\
、、、、し 、、、(((.@)
0754デフォルトの名無しさん
2014/08/13(水) 06:44:29.07ID:I2kL8FiE縦横の字数が等しければ正方形とします
字数が足りない場合は'*'で埋めること
余る場合は余計な文字を捨ててかまいません
ただし与えられた字数により近い正方形にすること
例:http://ideone.com/mA41q6
0755デフォルトの名無しさん
2014/08/13(水) 07:37:57.52ID:cRPYH3tS1, 2=1x1
3, 4, 5, 6=2x2
7, 8, 9, 10, 11, 12=3x3
13, 14, 15, 16=4x4
最終行が*だけにならないようにすること。
0756デフォルトの名無しさん
2014/08/13(水) 08:58:47.36ID:FchliIN8http://ideone.com/3fjixS
0757デフォルトの名無しさん
2014/08/13(水) 16:19:10.80ID:yCsZpoZZhttp://ideone.com/ABkOGn
0758デフォルトの名無しさん
2014/08/13(水) 17:36:45.44ID:qOurLBrettp://ideone.com/CVIThj
ほぼC。今調子悪いのでこれが限界。かなり適当に組んだ。
0759デフォルトの名無しさん
2014/08/13(水) 19:17:52.47ID:tOwUt3z10760デフォルトの名無しさん
2014/08/13(水) 19:24:53.23ID:qOurLBre適当に組んだから免責してくれ程度だよ。
0761デフォルトの名無しさん
2014/08/13(水) 19:34:01.96ID:tOwUt3z1ソースに対して文句言われるのがいやなら無理して公開せんでいいだけだし
任意なんでなここへのレスは
時々いるんだよ、必ず言い訳が伴ってて、常にリリースが暫定のやつ
そんでもって、時間切れで正式リリースなプログラマが
0762デフォルトの名無しさん
2014/08/13(水) 19:40:22.62ID:qOurLBreただ今回は、転用しないでほしいくらいかな。自信ないから。
まぁ、いつものことだが、転用するんだったら自己責任で。
0763デフォルトの名無しさん
2014/08/13(水) 20:03:44.72ID:DJCgQYDb0764デフォルトの名無しさん
2014/08/13(水) 20:12:36.46ID:tOwUt3z1おれのことか?おぉ?
0766デフォルトの名無しさん
2014/08/13(水) 20:21:59.06ID:tOwUt3z1いや、コードに対しては特にない
ただ、予防線はるやつが嫌いなもんで、その類いかと思ってしまっただけだ
0767デフォルトの名無しさん
2014/08/14(木) 02:26:06.35ID:prwA4+6G( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、、1、し 、、、(((.@)3 14 15 16
0768デフォルトの名無しさん
2014/08/14(木) 09:35:46.01ID:ii4GmoqVhttp://ideone.com/uP1D2K
0769768
2014/08/14(木) 11:23:44.17ID:zya7E7N4ちょっと修正(印字関数の削減等)
http://ideone.com/9VkbPB
0770デフォルトの名無しさん
2014/08/15(金) 12:54:39.82ID:Aqg845W80771デフォルトの名無しさん
2014/08/15(金) 15:15:35.71ID:bnrtPcKGカバおじさんウザいからあぼーんにしといたった
0772デフォルトの名無しさん
2014/08/17(日) 04:55:20.49ID:QcJzz8Flf=: ,~@([: <. 0.5 + %:@#) $!.'*' ]
f '123456'
12
34
f '1234567'
123
456
7**
0773デフォルトの名無しさん
2014/08/17(日) 07:11:05.08ID:QcJzz8Flf := method(s,
n := s size sqrt round
s = s .. "*" repeated(n)
for(i, 0, n - 1, s slice(i * n, (i + 1) * n)println)
)
0774デフォルトの名無しさん
2014/08/17(日) 14:56:13.60ID:5XbRNZScJって、プログラム短いけど、習得するのは大変そうだな。
0775デフォルトの名無しさん
2014/08/17(日) 15:22:49.38ID:B7+zOVct0776デフォルトの名無しさん
2014/08/17(日) 16:21:22.61ID:QcJzz8Fl済ませるには最低いくつの商品を買えばよいか。すべての商品は百円で
消費税は8%とする。
0777デフォルトの名無しさん
2014/08/17(日) 17:03:23.47ID:rzQuK8EBfrom fractions import Fraction
print Fraction(10000,108).numerator
0778デフォルトの名無しさん
2014/08/17(日) 20:11:41.39ID:8Zahaw3H折角だから初めてJに手を付けた
たったこれだけのことなのに数時間悩んだ
分かりづらすぎだろ
0779デフォルトの名無しさん
2014/08/17(日) 21:04:48.26ID:8sWJIA08(require 'cl-lib)
cl-lib
(defun f (s)
(let* ((a (length s))
(b (floor (+ (sqrt a) 0.5))))
(princ (cl-loop for i from 0 below (expt b 2)
concat (if (< i a) (substring s i (1+ i)) "*")
concat (if (= (% (1+ i) b) 0) "\n" "")))))
f
(f "123456")
12
34
"12
34
"
(f "1234567")
123
456
7**
"123
456
7**
"
0780デフォルトの名無しさん
2014/08/17(日) 21:34:18.11ID:8sWJIA08(require 'cl-lib)
cl-lib
(/ (cl-lcm 10000 108) 108)
2500
(let ((a 10000))
(cl-loop
(when (= (% a 108) 0) (cl-return (/ a 108)))
(cl-incf a 10000)))
2500
0781デフォルトの名無しさん
2014/08/18(月) 00:25:11.54ID:2fxbX/DUあぁ、一万円札を1枚使い切るじゃなくて、一万円札を大量投入しておつりなしか。
勘違いしてた。
0782デフォルトの名無しさん
2014/08/18(月) 00:36:27.30ID:2fxbX/DUほぼC。C++にもlcm入る予定だけど、まだ先の話なのでもどかしい。
0783デフォルトの名無しさん
2014/08/18(月) 01:44:16.48ID:TLYIzQdA0784デフォルトの名無しさん
2014/08/18(月) 05:54:54.07ID:nROqn5pOhttp://ideone.com/1OsnkK
0785デフォルトの名無しさん
2014/08/18(月) 12:07:50.98ID:yxRsaZzjSqueak Smalltalk
(108 lcm: 10000) / 108 "=> 2500 "
0786デフォルトの名無しさん
2014/08/18(月) 13:23:36.09ID:RJoulXY0'百円ショップで買い物をして支払いを一万円札だけでおつりなしで
済ませるには最低いくつの商品を買えばよいか。すべての商品は百円で
消費税は8%とする。'(_いくつ) :-
いくつ買えばよいか(_いくつ),
'百円ショップ(すべての商品は百円で消費税は8%とする。)で買い物をして支払いを'(_いくつ,_百円ショップで買い物をして支払いを),
'一万円札だけでおつりなしで済ませる'(_百円ショップで買い物をして支払いを),!.
いくつ買えばよいか(_いくつ) :-
nth1(_いくつ,_,_).
'百円ショップ(すべての商品は百円で消費税は 8%とする。)で買い物をして支払いを'(_いくつ,_百円ショップで買い物をして支払いを) :-
'すべての商品は百円で消費税は8%とする'(_消費税込みの商品の価格),
__百円ショップで買い物をして支払いを is _いくつ * _消費税込みの商品の価格.
'すべての商品は百円で消費税は8%とする'(_消費税込みの商品の価格) :-
_消費税込みの商品の価格 is 100 * (100 + 8) / 100.
'一万円札だけでおつりなしで済ませる'(_百円ショップで買い物をして支払いを) :-
0 is _百円ショップで買い物をして支払いを mod 10000.
0788デフォルトの名無しさん
2014/08/20(水) 01:48:35.20ID:CfiKXfMs( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、、E、し 、、、(((.@)mE,dit,or,,
0789デフォルトの名無しさん
2014/08/20(水) 03:34:16.21ID:fFEsrW+Y少なくて一万円札でいくら持ってゆけばよいか。(全ての商品は108円とする)
(使用出来るのは硬貨は無く、紙幣は一万円だけとする)
HINT:>>776は、1万円持って行き、1個だけ買って後は募金箱へ。
0790デフォルトの名無しさん
2014/08/20(水) 17:54:58.43ID:A0Nsq15v0791デフォルトの名無しさん
2014/08/20(水) 21:04:47.65ID:7LTH9ejxttp://ideone.com/LqjlYd
ほぼ>>782。まぁ、揚げ足にも取り方というものがあってね。
そんな強い言葉を使うということはそんなに自信あったかな?と。
絶望の言葉をすてて、希望の言葉を使おう(提案
っていうと、宗教っぽいな。
0792デフォルトの名無しさん
2014/08/21(木) 12:24:02.91ID:VQrk/GGW0793デフォルトの名無しさん
2014/08/23(土) 00:37:19.83ID:q/+BPTqG0794デフォルトの名無しさん
2014/08/23(土) 08:20:43.01ID:z51kiHis( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、Ic,、し e、、(((.@)Bu,c,,ket, Challenge
0795デフォルトの名無しさん
2014/08/23(土) 12:25:00.17ID:3KpHrN/+『世界の旅シリーズ シール』が1枚入っていました。
パッケージには『全49種類 1枚入り』との書いてありました。
どの種類も同じような比率で入っているとすると、
だいたいどのくらいのお金を使えば『全49種類』をコンプできるでしょうか?
0796デフォルトの名無しさん
2014/08/23(土) 16:49:58.23ID:8w+qgx7U0797デフォルトの名無しさん
2014/08/23(土) 23:49:39.60ID:oMsmBkwg数学ダメなのでよくわからん。
0798デフォルトの名無しさん
2014/08/24(日) 00:02:37.36ID:rlxyewU20799デフォルトの名無しさん
2014/08/24(日) 00:31:07.68ID:ZwPHl626ttp://ideone.com/8cx4gv
ほぼC。愚者の方法で解いてみた。大体2万円。
メルセンヌツイスターなかったら俺には解けない問題だ。
いっけね、消費税のこと忘れてた。自分で加算してくだせー。Orz=3
0800デフォルトの名無しさん
2014/08/24(日) 00:51:05.86ID:rlxyewU2ttp://ideone.com/BCWZ6A
俺も消費税考慮してないw。
0801デフォルトの名無しさん
2014/08/24(日) 12:41:43.10ID:thPtQl+P0802デフォルトの名無しさん
2014/08/24(日) 18:37:38.71ID:zvunYc1j0803デフォルトの名無しさん
2014/08/24(日) 19:11:53.26ID:1ar9zXjoSqueak Smalltalk で。
49 * (1.0/(1 to: 49)) sum * 108 "=> 23703.9546504393 "
10000人で試行した場合、
50%の人がコンプするのに必要な金額は26136円。
最少額でのコンプは 9936円。もっとも金額がかかった人は71604円。
| N count stat sum size |
N := 10000.
count := (1 to: N) collect: [:idx |
| bag |
bag := Bag new.
[bag add: 49 atRandom. bag asSet size = 49] whileFalse.
bag size].
stat := count asBag sortedCounts.
sum := 0.
size := stat findFirst: [:kv | (sum := sum + kv key) > (N * 0.5)].
^{((stat first: size) collect: #value) max. count min. count max} * 108
"=> #(26136 9936 71604) "
0804デフォルトの名無しさん
2014/08/24(日) 19:12:54.88ID:rlxyewU2百万回やってみた結果
約21835円になった消費税は入ってない。
0805デフォルトの名無しさん
2014/08/24(日) 19:50:39.50ID:O3P3S/Bj4900 * 1/H(49, 49)
+ 5000 * H(49, 1)/H(49, 50)
+ 5100 * H(49, 2)/H(49, 51)
+ ・・・
= Σ(n=0,∞) (4900+100n) * H(49, n)/H(49, 49+n)
組合せ (数学) - Wikipedia
http://upload.wikimedia.org/math/1/9/4/1941c34eb8b07a0fd45990620764282b.png
0806デフォルトの名無しさん
2014/08/24(日) 19:52:42.57ID:O3P3S/Bj0807デフォルトの名無しさん
2014/08/24(日) 20:53:15.02ID:IawgzNoV#include <stdio.h>
int main(){
double sum = 0;
for (int i = 1; i <= 49; ++i)
sum += 49 / (double)i;
printf("%d¥n", (int)(100 * sum));
return 0;
}
結果:21948
0808デフォルトの名無しさん
2014/08/24(日) 22:15:19.06ID:rlxyewU2嗚呼、バグってたorz
やり直したら219.400551まで収束した。
Gauche依存
(use math.mt-random)
(use srfi-43)
(define mt (make <mersenne-twister> :seed (sys-time)))
(define (comp n)
(let ((v (make-vector n 0)))
(let loop ((count 0))
(let ((index (mt-random-integer mt n)))
(vector-set! v index (+ (vector-ref v index) 1))
(if (not (vector-index zero? v))
(+ count 1) ;バグ修正前はcountをそのままリターン最後をカウントしてなかった。
(loop (+ count 1)))))))
(let ((count 0)
(result 0))
(while (< count 1000000)
(set! result (+ result (comp 49)))
(set! count (+ count 1)))
(exact->inexact (/ result count)))
0809デフォルトの名無しさん
2014/08/25(月) 10:32:01.38ID:W/mMJDzTSqueak Smalltalk で。試行版をもっとシンプルなコードで。
乱数は組み込みのを使い 100万回で 219.521 * 108 円に収束。
(1 to: 1000000) inject: 0.0s3 into: [:ave :cou |
| bag |
bag := Bag new.
[bag add: 49 atRandom. bag asSet size = 49] whileFalse.
bag size - ave / cou + ave
] "=> 219.521s3 "
0810デフォルトの名無しさん
2014/08/25(月) 12:07:26.40ID:/4YWSaS0”牌譜”のリンク先にあるURLはどのような規則で生成されるのか?
エロい人教えて
http://tenhou.net/0/?log=2014082500gm-00b9-0000-c4f50317
http://tenhou.net/0/?log=2014082500gm-00a9-0000-8ea97938
http://tenhou.net/0/?log=2014082500gm-00a9-0000-38817638
★見方
開始時間
↓
00:01 | 17 | 三鳳南喰赤− | 牌譜 | アニソン好き(+38.0) Lv1@きりりん(-7.0) NAGISUKE(-31.0)
↑
所要時間(分)
0811デフォルトの名無しさん
2014/08/26(火) 03:02:55.17ID:WR0tZU4r( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、、、、し e、、(((.@)vv、vvv、vvvvv
0812デフォルトの名無しさん
2014/08/30(土) 11:40:55.99ID:RbgqTyUMうちのクラスは40人いて、誕生日が同じ人が2組4人います。
これってけっこう珍しいと思うんですけど、同学年の全国30000クラスのうち、
うちのクラスみたいなのは何クラスくらいあるんでしょうか?
0813デフォルトの名無しさん
2014/08/30(土) 11:43:13.91ID:69TFMMC60814デフォルトの名無しさん
2014/08/30(土) 12:44:37.38ID:Co7FJu1+どうしてほしいんだ?モンテカルロでもやれってか?
それは統計の分野なのでデータのないPGには難しい。
0815デフォルトの名無しさん
2014/08/30(土) 17:28:40.22ID:DcuEk6Fwhttp://ja.wikipedia.org/wiki/%E8%AA%95%E7%94%9F%E6%97%A5%E3%81%AE%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9
0816デフォルトの名無しさん
2014/08/30(土) 23:44:05.36ID:FDr4RXqe0817デフォルトの名無しさん
2014/08/30(土) 23:52:11.68ID:OIZS8T3M0818デフォルトの名無しさん
2014/08/31(日) 01:10:08.91ID:IHvb2qNL完全に数学の問題だが誕生日が一様分布してると仮定すると
40人中2組以上同じ誕生日いる確立は約64%になる
0819デフォルトの名無しさん
2014/08/31(日) 01:15:12.69ID:IHvb2qNLttp://okwave.jp/qa/q7977537.html
0820デフォルトの名無しさん
2014/08/31(日) 01:42:39.83ID:B6a5pXyR365の階乗はC++では無理なのでどうしようかな・・・。
ウィキペディアのはコードにできそうだけど。
0821デフォルトの名無しさん
2014/08/31(日) 01:47:57.43ID:DCfsrrwi0822デフォルトの名無しさん
2014/08/31(日) 02:18:44.05ID:B6a5pXyRほぼC。一応コードにしてみたが、全然自信がない。
あってるかどうか教えてください。
>>821
Boostっていうライブラリにはあるけど、標準化は現在策定中。
17年にはいるか入らないかって感じ。
0823デフォルトの名無しさん
2014/08/31(日) 02:34:36.77ID:kzVlzkbG0824デフォルトの名無しさん
2014/08/31(日) 02:40:29.07ID:B6a5pXyR引数のYearDayを366にしてください。ペコリ。
0825デフォルトの名無しさん
2014/08/31(日) 02:41:30.15ID:B6a5pXyR閏計算とか猛烈によくわからんことをしないといけないのか。
0826デフォルトの名無しさん
2014/08/31(日) 02:46:02.72ID:kzVlzkbG0827デフォルトの名無しさん
2014/08/31(日) 02:47:06.98ID:B6a5pXyR#include <iostream>
#include <cstdint>
//ttp://ja.wikipedia.org/wiki/%E8%AA%95%E7%94%9F%E6%97%A5%E3%81%AE%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9
double U(std::uint64_t N,std::uint64_t M,std::uint64_t YearDay = 365 ){
double R = 1;
double Mul = 4;
if (N >= YearDay) return 1;
if (N <= M)return 1;
YearDay = YearDay*Mul + 1;
for (std::uint64_t i = M; i < N; i++)
{
R *= (YearDay - i*Mul) / static_cast<double>(YearDay);
}
return 1-R;
}
int main(){
double R = 0;
R = U(40, 4);
std::cout << R * 100 << '%' << std::endl;
return 0;
}
0828デフォルトの名無しさん
2014/08/31(日) 02:48:42.02ID:kzVlzkbG0829デフォルトの名無しさん
2014/08/31(日) 02:51:57.81ID:B6a5pXyRあぁ、Y2Kだからそういうそうていだったか。うーむ。
出題者ってぼけてる割にはやるな。
0830デフォルトの名無しさん
2014/08/31(日) 02:58:14.20ID:kzVlzkbG1999年4月〜2000年3月まで考えると366日だよな。。。
0831デフォルトの名無しさん
2014/08/31(日) 02:58:25.77ID:B6a5pXyRで、Y2K年度の教室には2月29日うまれっていないんじゃないか。
出題者は1999年度の教室にいるんやね。多分。
0832デフォルトの名無しさん
2014/08/31(日) 04:38:43.32ID:IHvb2qNL{
R *= (YearDay - i*Mul) / static_cast<double>(YearDay);
}
この辺見ると数式の意味分かってなさそう
あと4年分に伸ばして日数計算してるけど
厳密にはうるう年は400年に97回あるからそこも違う(まぁこれはどうでもいいような話だけど
0833デフォルトの名無しさん
2014/08/31(日) 04:46:12.09ID:B6a5pXyRウィキペディアからコンバートしただけなんで。
0834デフォルトの名無しさん
2014/08/31(日) 05:38:11.86ID:nyWh23cZ0835デフォルトの名無しさん
2014/08/31(日) 09:57:13.33ID:kzVlzkbG(define (prob-inter n m result)
(if (= n 1)
result
(prob-inter (- n 1) m (* result (/ (- m (- n 1)) m)))))
(prob-inter n m 1))
(define (fact n)
(define (fact-inter n result)
(if (zero? n)
result
(fact-inter (- n 1) (* result n))))
(fact-inter n 1))
(define (comb n m)
(/ (fact n) (* (fact (- n m)) (fact m))))
二組だけ出来る確率
(exact->inexact (* (/ (comb 40 2) 366) (/ (comb 38 2) 366) (/ 1 (fact 2)) (prob 38 366)))
=>0.27979173783069944
二組以上出来る確率
(exact->inexact
(- 1
(prob 40 366)
(* (/ (comb 40 2) 366) (prob 39 366))))
=>0.6294588728184133
自信ない。。。。。
0836デフォルトの名無しさん
2014/08/31(日) 10:08:58.88ID:zHQV/0rB一番はやいのは、私の知る限り
森口繁一『応用数学夜話――現象と数理と統計』
(1978年10月、日科技出版社)
だと思う。
そこには、この問題をはじめて扱ったのは、
von Mises(イスタンブール大学理学部紀要、第4巻、1939、pp。145-163)
らしいこと。
森口先生はさらに、この問題を発展させて同じ集団に
3人組が現れる確率についても言及している。
この本自体、とても面白く、題材も豊富なので、
その問題をプログラムしてみるのもおもしろいかも
しれない。
いまでも出版されているかさだかではないが、図書館
などで見つけて読まれるとよいと思う
0837デフォルトの名無しさん
2014/08/31(日) 10:43:44.68ID:Sej1+9Oo(require 'cl-lib)
cl-lib
(cl-defun f (x y &optional (d 365))
(let ((n 0))
(cl-dotimes (c y)
(let ((v (make-vector d 0)))
(cl-loop for i from 0 below x do (let ((r (cl-random d))) (cl-incf (aref v r))))
(when (= (length (cl-remove-if #'(lambda (x) (/= x 2)) v)) 2) (cl-incf n))))
n))
f
(f 40 30000 366)
9044
0838デフォルトの名無しさん
2014/09/01(月) 03:52:26.69ID:jT60Kw0d文庫版が出てますね
筑摩書房 応用数学夜話 / 森口 繁一 著
http://www.chikumashobo.co.jp/product/9784480094063/
0839デフォルトの名無しさん
2014/09/01(月) 09:46:07.84ID:YNUioFD/森口繁一先生の本は、判り易くてそのくせ話題がユニーク
なので、ぜひ品切れの本を再販してほしいですね。
昔、東大の計数工学科の森口研究室に森口先生を
仕事でお尋ねしたとき、美人の秘書さんがお茶を
だしてくださったのお思い出します
0840デフォルトの名無しさん
2014/09/01(月) 18:48:33.76ID:JDj2K3Fkなるほど興味深いですね
0841デフォルトの名無しさん
2014/09/02(火) 01:28:26.78ID:drOQTNGn0842デフォルトの名無しさん
2014/09/02(火) 04:46:22.39ID:VEDZlsot0843デフォルトの名無しさん
2014/09/03(水) 06:43:47.50ID:9/f0nkRi例
a=3, b=4 -> 5
a=3e200, b=4e200 -> 5e200
a=1234, b=2345 -> 2649.8643361501
0844デフォルトの名無しさん
2014/09/03(水) 08:34:28.43ID:HhkG2w3X俺は騙されないぞ。
0845デフォルトの名無しさん
2014/09/03(水) 12:37:21.02ID:qW20Ksi1非ユークリッド平面上でも直角は直角なのでは?
0846デフォルトの名無しさん
2014/09/03(水) 15:06:30.29ID:sc+TP7Os平方根何て標準ライブラリに有るだろうし自分で関数を作っても何の参考にもならないのでは?
アルゴリズムは確立されてるし
0847デフォルトの名無しさん
2014/09/03(水) 15:26:52.56ID:HhkG2w3X球面上だと長方形の角の合計が360°より大きくなるし
双曲面なら360°より小さく成るて事ぐらいしか知らない。
そういう角も非ユークリッド平面では直角って表現するの?
0848デフォルトの名無しさん
2014/09/03(水) 19:06:53.40ID:qW20Ksi1球面上でもその他の非ユークリッド空間上でも,局所でみて直角,いいかえるとその地点で切平面を置きそれに投影するとき,それが投影先にて充分に小さい範囲で直角なら,たとえば球面上で直角ということができる.
0849デフォルトの名無しさん
2014/09/03(水) 23:39:33.48ID:+0xBNpaH0850デフォルトの名無しさん
2014/09/04(木) 00:06:49.83ID:JrHf8QHD0851デフォルトの名無しさん
2014/09/04(木) 00:37:04.00ID:7dB2Q1uZ0852デフォルトの名無しさん
2014/09/04(木) 00:48:14.54ID:21+uVoyRこれか。結構有名だと思うけど。
0853デフォルトの名無しさん
2014/09/04(木) 07:52:34.12ID:kYwta3WX0854デフォルトの名無しさん
2014/09/04(木) 12:44:28.71ID:BwmA5NqF0855デフォルトの名無しさん
2014/09/04(木) 18:17:46.22ID:r3dec82Jこのスレの出題、数字あそびに偏っている。
もっと文系の出題はないものか。
0856デフォルトの名無しさん
2014/09/04(木) 19:01:34.34ID:pBVl6Z87だって計算機だもん、数字遊び以外出来ない。
0857デフォルトの名無しさん
2014/09/04(木) 19:07:52.69ID:S/Ci8qVff <- function(a, b){abs(a + b * 1i)}
> f(3,4)
[1] 5
> f(3e200,4e200)
[1] 5e+200
> f(1234,2345)
[1] 2649.864
0858デフォルトの名無しさん
2014/09/04(木) 19:12:27.76ID:J4GUVyvv;;;;;;;;;;;ヽ _,, -ー-、 ,r
;;;;;;;;;;;;;;;| ,,r';´;;;;、ミミミミミ∨;;_;;;;;;;;;;;;;;;;;`ヽ,
;;;;;;;;;;;;;;;;| /;;;;;;;;;;;_、、-''´ニニ ,__ `ヽ;;;;;;;;;;;;;/
;;;;;;;;;;;;;;;;;| ./;;;;;;;;;/_, -''´::::;:;::::´ ̄`''' ';;;;;;;;/ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
;;;;;;;;;;;;;;;;;;|/;;;;;;;;;;;/ ´._::::::::::::::::::,-、 ':;;;;/ /
;;;;;;;;;;;;;;;;;;|\;;;;;;;;;;| ‘ー''´ , 、 ̄´ V、 < ハァ? 意味わかんねえよ
;;;;;;;;;;;;;;;;;;| \;;;;| ,( ● ●)、 nヽ \
;;;;;;;;;;;;;;;;;| .>y ,' ', l゙) } \_________________
;;;;;;;;;;;;;;;;| l゙ n l _,,.--、, i |、ノ
;;;;;;;;;;;;;;;|. ', !〈 ',/r,二⌒ユヾ_ j
;;;;;;;;;;;;;;| ヽ_∧ ''''´ ̄ ̄` イ __ ( 丿
;;;;;;;;;;;;;|___,, -'''⌒ ヽv\ __,,ィ | /,ハ ) ノ ドコマデクズヤネン
;;;;;;;;;;;;|ー- 、_ `ヽ`ヾ、ー''''´`´ ; j r(ZZyZZZZZZ■
;;;;;;;;;;/ _,>、 `ヽ, `丁`l ; √`-、 `ヽ `" //// 〉
;;;;;;;;;| ´ `ー、 \| ゝ、 ,〈 / ゝ、,,_`´´ノ
;;;;;;;;ノ__ ィ´` 7ー、 ヽ\ノノ) ハ ノ /
;;;;;;/::::::`ー-、__ | ___,| ヽ `V/ '., /`ーァ ィソ
;;ノ:::::::::::::::::::::::`ー-Lユゝ, `i | / l//
:::::::::::::::::::::::::::::::::::::::::::::::::::ゝ,、、 l | ,r个 ー−イ
:::::::::::::::::::::::::::::::::::::::::::::::::::::lj |.|.l| |. / �U j
:::::::::::::::::::::::::::::::::::::::::::::::::::::´ lj.リ |ノ |
.
.
0859デフォルトの名無しさん
2014/09/04(木) 20:25:24.89ID:pBVl6Z87意味わらないと言われても
λ............トボトボ
0860デフォルトの名無しさん
2014/09/04(木) 21:00:02.00ID:S/Ci8qVff := method(a, b,
4 repeat(
t := b / a
t = t * t
t = t / (4 + t)
a = a + 2 * a * t
b = b * t
)
a
)
3x3の配列を用意し、いつでも内容を表示できるように用意する。
| |
−+−+−
|○|
−+−+−
○| |
プレーヤーはAとBの2人だけとする。Bはあなたのプログラム。
ルール:各プレーヤーは一度に1個または2個の○を盤上に置く事ができる。
0個または3個は置く事が出来ない。AとBが交互にパス(抜け)無しで
盤上に○を置いていく。縦、横、斜めに3個の○を連続させたプレーヤーを
負けする。
0862デフォルトの名無しさん
2014/09/04(木) 21:56:16.55ID:On4eRucT先手必勝でゲームとして成立してないけどそれはいいの?
0863デフォルトの名無しさん
2014/09/04(木) 22:06:36.11ID:Ks0RyVTtお題スレでラムダ(λ)使うとは・・ラムダに関する出題の前振りですね?
0865デフォルトの名無しさん
2014/09/04(木) 22:48:39.25ID:r3dec82J第一手を中央に一個置けばあとは相手がどう打っても少なくとも2通り次の手で3個ならびになる。
だから、事実上2個打って3個ならびになる手を捜すプログラムとなる。
0866デフォルトの名無しさん
2014/09/05(金) 00:17:13.56ID:CNIY1gt5初手は「真ん中&どこかに一個」じゃね?
0867866
2014/09/05(金) 00:18:38.66ID:CNIY1gt5初手が真ん中のみだと、後手が1個しか置かなかった場合に
4手目に逃げ場ができちゃうよねって意味で。
0868デフォルトの名無しさん
2014/09/05(金) 01:06:30.98ID:RC7/Woiv後手が1個
�A�B○
�B�@○
○○○
�B�A○
�B�@○
○○○
後手が2個
�A�A○
�B�@○
○○○
�B�A○
�A�@○
○○○
�A○�A
�B�@○
○�B○
�B○�A
�A�@○
○�B○
0869デフォルトの名無しさん
2014/09/05(金) 02:06:22.47ID:NOu+x8kK(require 'cl-lib)
cl-lib
(defun f (a b)
(cl-flet ((fi (a b)
(sqrt (+ (expt a 2) (expt b 2))))
(fp (a b)
(cl-flet ((fp2 (a b)
(cl-flet ((e (f)
(condition-case nil
(let ((s (number-to-string f)))
(string-to-number (substring s (1+ (cl-position ?e s)))))
(error 1))))
(let ((gcd (expt 10.0 (cl-gcd (e a) (e b)))))
(* (sqrt (+ (expt (/ a gcd) 2) (expt (/ b gcd) 2))) gcd)))))
(let ((c (sqrt (+ (expt a 2) (expt b 2)))))
(if (= c 1.0e+INF) (fp2 a b) c)))))
(cond
((and (integerp a) (integerp b)) (fi a b))
(t (fp a b)))))
f
(f 3 4)
5.0
(f 3e200 4e200)
4.9999999999999995e+200
(f 1234 2345)
2649.8643361500604
0871デフォルトの名無しさん
2014/09/05(金) 08:49:51.96ID:3yQsvyhFSqueak Smalltalk
| a b |
a:=3. b:=4. (a@b) r. "=> 5 "
a:=3e200. b:=4e200. (a@b) r. "=> 5e200 "
a:=1234. b:=2345. (a@b) r. "=> 2649.86433615006 "
0872デフォルトの名無しさん
2014/09/05(金) 16:46:17.82ID:UY2a0tkI阿呆らしい、利用出来る物はすべて利用すべし
0873デフォルトの名無しさん
2014/09/07(日) 00:56:22.63ID:Lw7aMs3G�B�@○
○○�C
これだと後手必勝じゃね?
0874デフォルトの名無しさん
2014/09/07(日) 01:27:39.23ID:fsj+jXxx> 3個の○を連続させたプレーヤーを負け
4の負けやん
0875デフォルトの名無しさん
2014/09/07(日) 04:20:07.29ID:Lw7aMs3Gその頭の中のルールを文章で表現すればお題になる。がんばれ
0877デフォルトの名無しさん
2014/09/08(月) 00:58:41.28ID:9bN+Hq/uttp://ideone.com/3LcpIs
暇だったのでフレームだけ組んでみた。人口無能搭載!
デバッグほとんどしてないのでバグってたら勘弁。
いい暇つぶしになったわ。
0878デフォルトの名無しさん
2014/09/08(月) 01:44:12.59ID:VULfi2Y/結構酷いコードだなおい
0879デフォルトの名無しさん
2014/09/08(月) 01:48:24.92ID:9bN+Hq/uAIはクラスにすればよかったかもね。
気分で組んだので出来はそれなり。
サンプルプリーズ。
0880デフォルトの名無しさん
2014/09/10(水) 02:25:55.76ID:qVXovwZv( ・ω・) < ステ−ン・・・ ∧ ∧
〇={=}〇 バーイ > (*‘ω‘ *)
|:::::::::\::| ( )
、、、、 し 、、、(((.@)vv、vvv、vvvvvv、、v v、、、、
0881デフォルトの名無しさん
2014/09/10(水) 03:09:33.40ID:8OMC9t+p白黒のコマを置いていくのでは無く
白黒関係なく3個並んだら負けなのね。。。
白黒で実装してまったorz.
0882デフォルトの名無しさん
2014/09/10(水) 03:10:53.06ID:8OMC9t+pアンカー間違い
>>861へのレスです。
0883デフォルトの名無しさん
2014/09/10(水) 04:15:44.52ID:QcMG0Y6Uあれ?あ、そうなんだ。
駒一種類しかないのね。これは文盲だった。
てっきり三並べの応用かと。。。
また暇があったら実装します。Orz
0884デフォルトの名無しさん
2014/09/10(水) 11:44:57.05ID:9mRTgbsu0885デフォルトの名無しさん
2014/09/10(水) 12:30:52.92ID:nB7nTTkr端折りすぎて意味がよくわからない
0886デフォルトの名無しさん
2014/09/10(水) 15:12:58.17ID:lfz0Mpg7最小値N=9で最大値M=12なら、その間のそれぞれの約数
9の約数 〜 1,3,9
10の約数 〜 1,2,5,10
11の約数 〜 1,11
12の約数 〜 1,2,3,4,6,12
を全て足して 71 ってことじゃないのか?
0887デフォルトの名無しさん
2014/09/10(水) 16:53:05.55ID:jJKfLPB5最小値Nから最大値Mまでの約数の総和を出力せよ(N,M) :-
最小値Nから最大値Mまでの約数の総和を(N,M,_約数の総和),
出力せよ(_約数の総和).
最小値Nから最大値Mまでの約数の総和を(N,M,_約数の総和) :-
最小値Nから最大値Mまでの約数の(N,M,_約数ならび),
総和を(_約数ならび,_約数の総和).
最小値Nから最大値Mまでの約数の(N,M,_約数ならび) :-
findall(_約数,(between(N,M,_整数),約数(_整数,_約数)),_約数ならび).
総和を(_約数ならび,_約数の総和) :-
sum_list(_約数ならび,_約数の総和).
約数(_整数,_約数) :-
between(1,_整数,_約数),
0 is _整数 mod _約数.
出力せよ(_約数の総和) :-
writef('%t\n',[_約数の総和]).
0888デフォルトの名無しさん
2014/09/10(水) 19:22:31.15ID:jJKfLPB5最小値Nから最大値Mまでの約数の総和を出力せよ(N,M) :-
最小値Nから最大値Mまでの約数の総和を(N,M,_約数の総和),
出力せよ(_約数の総和).
最小値Nから最大値Mまでの約数の総和を(N,M,_約数の総和) :-
最小値Nから最大値Mまでの約数の(N,M,_約数の),
総和を(_約数の,_約数の総和).
最小値Nから最大値Mまでの約数の(N,M,_約数の) :-
findall(_約数,最小値Nから最大値Mまでの約数(N,M,_約数),_約数の).
最小値Nから最大値Mまでの約数(N,M,_約数) :-
最小値Nから最大値Mまでの(N,M,_整数),
約数(_整数,_約数).
最小値Nから最大値Mまでの(N,M,_整数) :-
between(N,M,_整数).
約数(_整数,_約数) :-
between(1,_整数,_約数),
0 is _整数 mod _約数.
総和を(_約数の,_約数の総和) :-
sum_list(_約数の,_約数の総和).
出力せよ(_約数の総和) :-
writef('%t\n',[_約数の総和]).
0889デフォルトの名無しさん
2014/09/10(水) 20:12:03.99ID:iGOWbBA8(require 'cl-lib)
cl-lib
(defun f (N M)
(apply '+ (cl-loop for i from N to M collect (funcall (lambda (n) (apply '+ (cl-loop for i from 1 to n if (= (% n i) 0) collect i))) i))))
f
(f 9 12)
71
0890デフォルトの名無しさん
2014/09/10(水) 20:44:55.53ID:TufH69Yz発行されていたことを覚えていらっしゃる方もいると思います。
その中に「ナノピコ教室」というコーナーで毎回プログラミング
にまつわるちょっとした問題がだされていました。
その中の一つ
n羽のニワトリを,いくつかの小屋にわけて入れます。このとき
次の条件が満たされるようにします。
1) 各小屋には,同数(仮にd羽)のニワトリがいる。
2) dは,ある素数である(同然d>1)。
すると,ニワトリの分け方は,何通りあるでしょうか?
ここで,小屋どうしの位置関係は問題にしません。
たとえば,n=4ならば
(a) [ニワトリ1,2],[ニワトリ3,4]
(b) [ニワトリ1,3],[ニワトリ2,4]
(c) [ニワトリ1,4]、[ニワトリ2,3]
の3通りです。(a)と(a')[ニワトリ3,4][ニワトリ1,2]
とは区別しません。
分け方の数を求める手順を示してください。ただしi番目の
素数N(i)を与える函数または配列を断りなく使用してもかまい
ません。いうまでもなくN(1)=2、N(2=3、N(3)=5
0891デフォルトの名無しさん
2014/09/10(水) 22:31:03.14ID:oS7YMnaVSqueak Smalltalk。思考停止版^^;
| divisorsSum |
divisorsSum := [:range | (range gather: [:n | (1 to: n) select: [:m | n isDivisibleBy: m]]) sum].
divisorsSum value: (9 to: 12) "=> 71 "
0892デフォルトの名無しさん
2014/09/10(水) 23:26:01.37ID:ADC46RWMナノピコ教室だけでいいから再販してほしいな‥あと、大熊正さんの連載も好きだったんだが‥いったいなんの雑誌だったかもとんと忘れてしまった‥
0893デフォルトの名無しさん
2014/09/11(木) 01:49:18.97ID:0jHMjnIQttp://ideone.com/p3CX1A
ほぼC。一応こんな感じであってるのかな??
数学苦手だとツライ・・・。
0894デフォルトの名無しさん
2014/09/11(木) 06:41:10.01ID:VlgISLDZIsNoRemainder();みたいなのは整数で計算したいな。
16行目を
if (IsNoRemainder(i, j) == true)C+=j;
↓
if (i % j == 0)C+=j;
とするとか
0895デフォルトの名無しさん
2014/09/11(木) 14:12:54.32ID:I5Ff9NvcRuby
def f(n,m)
(n..m).flat_map{|i| (1..i).select{|j| i%j == 0}}.reduce(:+)
end
puts f(9,12) #=> 71
Python
def f(n,m):
return sum(sum(j for j in range(1,i+1) if i%j==0) for i in range(n,m+1))
print(f(9,12)) #=> 71
Perl
use List::Util qw(sum);
sub f{
my ($n,$m) = @_;
sum(map {my $i=$_; sum(grep {$i%$_ == 0} (1..$i))} ($n..$m));
}
print f(9,12); #=> 71
PythonとPerlは普段使ってないのでメジャーな書き方なのか自信なし
0896デフォルトの名無しさん
2014/09/11(木) 16:45:35.36ID:oL03u+KkSqueak Smalltalk で。
| primeFactors sumAllocOfCages |
primeFactors := [:n | (Integer primesUpTo: n+1) select: [:m | n isDivisibleBy: m]].
sumAllocOfCages := [:n |
(primeFactors value: n) inject: 0 into: [:sum :d |
((d to: n by: d) inject: 1 into: [:k :rest | k * (rest take: d)]) / (n/d) factorial + sum
]
].
sumAllocOfCages value: 4. "=> 3 "
sumAllocOfCages value: 6. "=> 25 "
0897デフォルトの名無しさん
2014/09/11(木) 16:51:54.99ID:fJPG+Epra*b*c=x
a+b+c=y
x=y
になるa,b,cの組み合わせは何通りあるか求めよ
(a=1, b=1, c=1のときのxとyは1となる)
(a=1, b=2, c=3のときのxとyは6となる)
(a=3, b=1, c=2のときのxとyは6となる)
0898デフォルトの名無しさん
2014/09/11(木) 17:10:50.95ID:n8ZAYUyo( ´・ω・) < ステンバーイ
〇={=}〇 ∧,, ∧
|::::::::::\ (*‘ω‘ *)
、、、し 、、、(((.@)vv、vvv、vvv 、v(、vv)w、、、
0899デフォルトの名無しさん
2014/09/11(木) 18:25:45.13ID:qwOWbb9Vその辺を使って最適化しようと思ったら計算がすぐに終わった
#include <stdio.h>
int main(void)
{
unsigned int aend = 100000;
unsigned int bend, cend;
unsigned int a,b,c;
unsigned int ok,ng;
ok = ng = 0;
for(a=1; a<=aend; a++) {
bend = aend / a;
for(b=1; b<=bend; b++) {
cend = aend / (a*b);
for(c=1; c<=cend; c++) {
if( (a+b+c) == (a*b*c) ) {
printf("ok:%d,%d,%d¥n", a,b,c);
ok++;
} else {
ng++;
}
}
}
}
printf("report:ok:%d, ng:%d¥n", ok, ng);
return 0;
}
0900デフォルトの名無しさん
2014/09/11(木) 19:06:50.39ID:fJPG+Epr一応最大で100000ループで終わる問題
そこから計算量を減らすと半分ぐらいになる問題
0901デフォルトの名無しさん
2014/09/11(木) 19:08:32.29ID:G5fsQWzYしばらく静観
今はインタープリター作って勉強します
0902デフォルトの名無しさん
2014/09/11(木) 20:59:21.11ID:C8Sp0ta00903デフォルトの名無しさん
2014/09/12(金) 00:14:40.72ID:Vlgyzafh素晴らしい!
その時何考えてたか忘れたけど、あなたのほうがスマートですわ。
なんか余計なこと考えてた気がする。Orz
0904デフォルトの名無しさん
2014/09/12(金) 02:16:14.41ID:UgGtRjkl俺が寝ぼけているのでなければ、
>(a=1, b=1, c=1のときのxとyは1となる)
は 1+1+1=1 と言っているんだよな?
0905デフォルトの名無しさん
2014/09/12(金) 02:49:41.90ID:kQWkHZX/Rubyで。
def valueOf(n,x)
r=(2..n).inject(:*)
(n/x).times{
r/=(2..x).inject(:*)
}
r/=(2..n/x).inject(:*)
end
def func(n)
ans=0
2.upto(n-1){|x|
if(n%x==0)
ans+=valueOf(n,x)
end
}
printf("input = %d¥tanswer = %d¥n",n,ans)
end
func(4)
func(6)
func(10)
func(20)
# input = 4 answer = 3
# input = 6 answer = 25
# input = 10 answer = 1071
# input = 20 answer = 3689854454
0906デフォルトの名無しさん
2014/09/12(金) 03:08:18.59ID:kQWkHZX/Rubyで。
def func(n,m)
r=0
(n..m).map{|x|
a=(1..x).to_a
a.map!{|e|
(x%e!=0)?0:e
}
r+=a.inject(:+)
}
printf("input = %d ~ %d¥n",n,m)
printf("output = %d¥n",r)
end
func(9,12)
# input = 9 ~ 12
# output = 71
0907デフォルトの名無しさん
2014/09/12(金) 03:41:37.69ID:Vlgyzafhttp://ideone.com/TA9Eue
ほぼC。暇だったのでちょっと二ーしてみた。
これあってるのか?なんか答えがしょぼいんだが。
イデオンで0.2Sっておっそいな。
0908デフォルトの名無しさん
2014/09/12(金) 03:58:54.79ID:VlgyzafhYの最大値はLim+2なので、ABCはそれ以上にはならない。
Limをシェアするので、1変数あたりの分担はずいぶん小さくなる。
最適化の方針としては、動的なLimを適応することで動的にオーダーを下げられる。
であってるかな?
今日はとっても暇なんだ。
鶏問題は俺には高度すぎるし。
0909デフォルトの名無しさん
2014/09/12(金) 10:31:55.41ID:DEp77wH6Ruby
# abc=a+b+c
# a(bc-1)=b+c
# a=(b+c)/(bc-1)>=1
# (b+c)/(bc-1)>=1
# (b+c)>=(bc-1)
# bc-1<=b+c
# (b-1)(c-1)<=2
# b-1<=2
# b<=3
# c-1<=2
# c<=3
(1..3).map { |b|
(1..3).map { |c|
if((b*c-1>0)&&(b+c)%(b*c-1))==0
a=(b+c)/(b*c-1)
p [a,b,c]
end
}
}
# [3, 1, 2]
# [2, 1, 3]
# [3, 2, 1]
# [1, 2, 3]
# [2, 3, 1]
# [1, 3, 2]
0910デフォルトの名無しさん
2014/09/12(金) 13:02:22.85ID:Vlgyzafhスゲー。式おってったら意味は解ったがその解法は俺には思いつかないな。
数学怖い。Orz
0911デフォルトの名無しさん
2014/09/12(金) 15:51:28.50ID:Vlgyzafhhttp://ideone.com/OrQpCj
一応C++。3並べない作った。今度こそ仕様あってるよね。あー疲れた。
暇だから始めたんだけど、結局作りこんでしまった。
3種の無能搭載。デバッグはほとんどしてない。
アピールポイントはポリモーフィックにAIが定義できること。だけ。
400行はキャパシティオーバーだ。AIタイプはランダムと評価関数。
一応評価関数のランダム化っていうのをやってるやつもある。
先にツールキット作っとくと開発楽だけど、時間結構かかったな。
まぁ、いい暇つぶしになった。眠い。
0912デフォルトの名無しさん
2014/09/13(土) 00:11:05.47ID:C9DYFDtp0913デフォルトの名無しさん
2014/09/13(土) 00:15:12.16ID:mOSERTji0914デフォルトの名無しさん
2014/09/14(日) 06:59:56.84ID:TJ2FN8460915デフォルトの名無しさん
2014/09/14(日) 08:29:09.97ID:GzjRn3L/一つの言語に依存した問題はみんなで楽しめないので却下したいと思います。
0916デフォルトの名無しさん
2014/09/14(日) 11:12:28.37ID:Hxg+bro1前から後ろから
みんなで楽しむんだな
エヘヘ
0917デフォルトの名無しさん
2014/09/14(日) 11:22:30.96ID:s+BV7Cb9宿題スレは馬鹿が居座っているからこちらの方が快適
0918デフォルトの名無しさん
2014/09/14(日) 11:58:05.43ID:s+BV7Cb9実行結果の読み方がよくわからん‥
0919デフォルトの名無しさん
2014/09/14(日) 12:03:55.37ID:oLWnP7Fy元の問題見れば一目瞭然と思うが・・・
0920デフォルトの名無しさん
2014/09/14(日) 18:15:25.80ID:HdLxe6NW( ・ω・) < ステンバーイ
〇={=}〇 ∧,, ∧
|::::::::::\ (*‘ω‘ *)
、、、し 、、、(((.@)vv、vvv 、、(、v、)っv、、
0921デフォルトの名無しさん
2014/09/14(日) 19:35:49.30ID:s+BV7Cb9>一度に1個または2個
そっか‥二子もありか‥
0922デフォルトの名無しさん
2014/09/15(月) 04:13:54.54ID:RdKEbqlY今更だけど、俺も「Land of Lisp」日本語版ぱくって作ってみた。
ほぼ丸ぱくりw
http://ideone.com/rjXbRZ
0923デフォルトの名無しさん
2014/09/15(月) 06:07:38.87ID:f1AbVb67なになに?
>>861ってLand of Lispにあるの?
そういう「ゲーム」もつくるのか
おもしろそうだな。初心者の俺は
The little Lisperと改訂版の
The little Schemer読み中だけど
それ終えたら読むわ
今、最終章でつくったインタープリターを拡張して発想を染み込ませているところ、もうすぐ上陸だな。
0924デフォルトの名無しさん
2014/09/15(月) 14:59:34.90ID:RdKEbqlYLand of Lispを読み終えると>>861の様なプログラムがサクサク
作れるようになります。たぶん。。。。。
俺はlistの海で溺れ無限の流れに押し流される所だったorz
0925デフォルトの名無しさん
2014/09/16(火) 15:05:41.23ID:/nkFWhJ5漫画がおもしろそうだ
0926デフォルトの名無しさん
2014/09/16(火) 16:43:46.00ID:BQdAUcse0927デフォルトの名無しさん
2014/09/16(火) 16:52:41.16ID:V1Xx4jW9キンドル版
Kindleでも見やすい
0928デフォルトの名無しさん
2014/09/16(火) 23:40:40.59ID:/nkFWhJ5タダなら立ち読みしてよっかな
英語読めないけど
0929デフォルトの名無しさん
2014/09/17(水) 01:04:17.73ID:q8zBZZ2rHaskellで
http://ideone.com/JOLfng
コードがそこそこ短いということしか言うことがない
0930デフォルトの名無しさん
2014/09/17(水) 17:15:14.08ID:gVQg6rOMミニマックス法のバグ取りとコンピュータの自殺を防止。
コンピュータの差し手に少しランダム性を持たせた。
もうバグが有っても放置しますw
http://ideone.com/7pmf38
0931デフォルトの名無しさん
2014/09/18(木) 02:10:16.93ID:qu4CN4axこれ誰かわかりますか教えて下さい
0932デフォルトの名無しさん
2014/09/18(木) 02:53:34.78ID:0oM4N5+zhttp://ideone.com/7NKHED
0933デフォルトの名無しさん
2014/09/18(木) 03:34:45.68ID:zFHSfbhtありがとうございます!!
0934デフォルトの名無しさん
2014/09/18(木) 05:52:59.32ID:P8fv0efM0935デフォルトの名無しさん
2014/09/18(木) 13:14:38.88ID:M8giSVcfaとbの範囲の素数がいくつ存在するか1秒以内に求めよ
0936デフォルトの名無しさん
2014/09/18(木) 13:15:30.93ID:M8giSVcfC++: 0.007
PHP: 0.8
Python: 1.03
0937デフォルトの名無しさん
2014/09/18(木) 13:27:09.76ID:7eeU4PcQ素数定理とか近似でいいなら速いが。
厳密な素数分布がわかれば世紀の大発見じゃないか。
0938デフォルトの名無しさん
2014/09/18(木) 16:14:47.43ID:M6S1ZPsM0939デフォルトの名無しさん
2014/09/18(木) 17:55:00.01ID:XZgFHrlX俺は、多倍長精度演算が入るまでこの手の問題は解きません。っていうか解けません。
とりあえず、CPUがなにか教えてください。
一応追記型素数検索は過去に書いてるのでそれを参照のこと。
素数検索はCPUのコア数でスケールするので計算機次第ではパフォーマンスがだいぶん変わってきます。
0940デフォルトの名無しさん
2014/09/18(木) 18:08:07.08ID:1V+j4aYj0941デフォルトの名無しさん
2014/09/18(木) 18:10:46.79ID:XZgFHrlX0942デフォルトの名無しさん
2014/09/18(木) 18:17:22.62ID:ov/0I+4y>1000000000000000000000000000000000
が32ビットの範囲なのか?
0943デフォルトの名無しさん
2014/09/18(木) 18:26:36.44ID:M6S1ZPsM0944デフォルトの名無しさん
2014/09/18(木) 18:35:53.04ID:kmctZUBfかかる時間についてはパッとは想像つかないが
0945デフォルトの名無しさん
2014/09/18(木) 18:53:37.74ID:jCMZi8UD0946デフォルトの名無しさん
2014/09/18(木) 18:56:31.03ID:RTfVSx+m心配すんな!自分もだよ!
0947デフォルトの名無しさん
2014/09/18(木) 18:56:51.20ID:XZgFHrlX俺も俺も。
多倍長精度演算無しで解く方法をぜひ見せてほしい。>>940
0948デフォルトの名無しさん
2014/09/18(木) 19:03:08.64ID:jCMZi8UD0949デフォルトの名無しさん
2014/09/18(木) 19:06:12.75ID:XZgFHrlX0950デフォルトの名無しさん
2014/09/18(木) 19:13:48.96ID:f3YnogPC0951デフォルトの名無しさん
2014/09/18(木) 19:20:30.78ID:XZgFHrlXそれをベクタに溜めてって二分探査すればisprimeも実装できる。
だから、CPUの名前が知りたい!
0952デフォルトの名無しさん
2014/09/18(木) 19:22:51.97ID:XZgFHrlXただ、ディスクスペースを馬鹿みたいに食うが。
0953デフォルトの名無しさん
2014/09/18(木) 19:39:45.86ID:7eeU4PcQ特別なケースで、a-1< a <a+1の範囲の一つの数が素数かどうかを判別するという問題を含んでいるが。
桁が多いと時間食う。
0954デフォルトの名無しさん
2014/09/18(木) 20:05:27.56ID:7eeU4PcQ素数定理とは自然数の中に素数がどのくらいの「割合」で含まれているかを述べる定理である。
素数が自然数の中にどのように分布しているのかという問題は整数論において基本的な関心事であるが極めて難しく、
2014年現在でも解明されていない部分も多い。この定理はその問題について重要な情報を与える。
具体的には、この定理は次の式で表される。
http://upload.wikimedia.org/math/0/4/7/04796109b3dea8eee24623590ce25b9a.png
π(x) は素数の個数関数で、x 以下の素数の個数を表す。
また Li x は(補正)対数積分。
近似の様子
π(10000000)= 664579 Li(10000000)= 664917.35・・・
π(100000000)= 5761455 Li(100000000)= 5762208.33・・・・
現今最良の近似の誤差は次の結果である(ヴィノグラードフの素数定理)。
http://upload.wikimedia.org/math/9/a/9/9a981e23473000f17624c1b6f559805c.png
さらに、リーマン予想が正しければ次のように誤差評価を改善できる。
http://upload.wikimedia.org/math/7/9/a/79a68b9dbd99cc3e387a8adc9961ebd1.png
逆に、上記の評価式が成り立てばリーマン予想が成り立つことも知られている。
0955デフォルトの名無しさん
2014/09/18(木) 23:54:57.82ID:XZgFHrlXまぁ、それは解ってるけど、多倍長がないと問題に取り掛かることもできない。Orz
>>954
数学は解らんと言っとるがなぁー!!(逆切れ
0956デフォルトの名無しさん
2014/09/19(金) 00:03:57.04ID:kBCWl9e1整数では最もメジャーだろう。
0957デフォルトの名無しさん
2014/09/19(金) 00:14:51.02ID:KFfXT43O0958デフォルトの名無しさん
2014/09/19(金) 03:00:34.27ID:JRtZOBn9イデオンで動くの?
一応、イデオンで動くことを証明することが俺のこのスレでの意義なので、それ以外は興味ない。
あと、なるべく標準ライブラリと1ソースで済ませたい。
0959デフォルトの名無しさん
2014/09/19(金) 03:24:46.16ID:kBCWl9e1動くようだが。PHP
http://ideone.com/Zrg9DH
0960デフォルトの名無しさん
2014/09/19(金) 03:28:42.95ID:JRtZOBn9ほう。
ライブラリを覚えないといけないな。
うむむむ・・・。片手間でやるにはちと面倒だけど、暇があったら試してみよう。
ちなみに俺はC/C++使いだ。
0961デフォルトの名無しさん
2014/09/19(金) 04:10:20.14ID:mBwsz/nF0962デフォルトの名無しさん
2014/09/19(金) 04:25:20.38ID:JRtZOBn9gmp.hがジェネリックになってて普通に入れただけでは動かなかった。nmakeもMAKEFILEが無い。
俺、VCのデバッガないと開発できない体になってしまったのでちょっと厳しいなぁ。
うぅ。ホビー開発者にやさしくない。sh動かないとだめかなー??
世のなかキビシー
0963デフォルトの名無しさん
2014/09/19(金) 05:06:26.86ID:UwNOujrp>>962
http://stackoverflow.com/questions/3261337/using-gmp-on-windows
Q:CygwinでGMPのコンパイルは出来たけどLIBじゃないからVCで使えません。どうすればLIBを作れますか?
A:LIBの作り方とか知らないけど、MPIR見れば良いと思うよ。MPIRはVCをサポートするGMPのフォークです。
http://www.mpir.org/
0964デフォルトの名無しさん
2014/09/19(金) 06:09:04.62ID:JRtZOBn9誘導ありがとう。
なんかソリューションをビルドしようとすると、一つのファイルのIOを食い合って排他処理しないから変なファイルが自動生成される。
プロジェクト単位でビルドするとうまくいった。それに気づくのにめちゃくちゃ時間かかった。
とりあえずうまくいきそう。あー疲れた。
続きはまた次回。
とりあえず、導きに感謝!
0965デフォルトの名無しさん
2014/09/19(金) 07:05:10.73ID:spaja6yA0966デフォルトの名無しさん
2014/09/19(金) 07:07:57.87ID:JRtZOBn9あぁ、すまん。あとは俺の領分だ。俺も一歩前進できて満足だよ。
イデオンで動くなら適当にコードでコントリビュートするから生暖かく見守っててくれ。
そのためにはライブラリを覚えないといけないんだが頭悪いんだよなー。。。Orz
0967デフォルトの名無しさん
2014/09/19(金) 11:10:09.17ID:JRtZOBn9ぐあ、LIBのパス通ってねー。オワタ\(^q^)/
やっとコンパイルまでこぎつけたのに。Orz
0968デフォルトの名無しさん
2014/09/19(金) 11:59:53.87ID:mBwsz/nF0969デフォルトの名無しさん
2014/09/19(金) 12:15:46.34ID:9XZ97K9mこの式をみたす自然数x,a,b,c,dを求める。
0970デフォルトの名無しさん
2014/09/19(金) 13:28:32.69ID:QRiIEsK80971デフォルトの名無しさん
2014/09/19(金) 16:33:40.99ID:JGrS0y/F(define (prime? n)
(let ((limit (sqrt n)))
(define (eratosthenes-pass? e)
(let ((eratos1 (+ (* e 6) 1))
(eratos2 (+ (* e 6) 5)))
(cond ((or (> eratos1 limit) (> eratos2 limit)) #t)
((or (zero? (modulo n eratos1)) (zero? (modulo n eratos2))) #f)
(else (eratosthenes-pass? (+ e 1))))))
(cond ((= n 1) #f)
((or (= n 2) (= n 3) (= n 5)) #t)
((or (even? n) (zero? (modulo n 3)) (zero? (modulo n 5))) #f)
(else (eratosthenes-pass? 1)))))
gosh> (time (prime? 2305843009213693951))
;(Time (prime? 2305843009213693951))
; real 53.469
; user 53.450
; sys 0.010
#t
この程度じゃ話しにならんな、問題を解くにはミラーラビンテスト使うんだろうけど。
0972デフォルトの名無しさん
2014/09/19(金) 16:55:21.02ID:JGrS0y/F6行目間違ってたよ。。。。orz
正しくは
(cond ((and (> eratos1 limit) (> eratos2 limit)) #t)
0973デフォルトの名無しさん
2014/09/19(金) 20:05:09.41ID:JRtZOBn9冗談でも言っていいことと悪いことがあるんだよ?
死んでもいいけど、俺の持ってるカルマを全部引き継いでくれる前提なら死んであげる。
あと、コードはちゃんと実行可能なのを上げてるので問題ないよね。
俺の手番はおしまい。
次は君の番だ。君の活躍を期待しているよ。
0974デフォルトの名無しさん
2014/09/19(金) 20:18:20.66ID:JRtZOBn9ところで、この人この世の何人に対してこの悪意を放ったんでしょうかね。
多倍長が使えなく、カツ、数学とアルゴリズムに弱い人全滅だから選民すぎる。
ディストピアつくりたいんだったら、まず文章にして出版してくれ。
俺も君に死ねっていうタイミングがあるかもしれないから。
それなら平等だろ?
0975デフォルトの名無しさん
2014/09/19(金) 20:18:42.87ID:7xkfrLWDあほーなど無視しとけ
君は真摯だから俺は好きだ
エヘヘ
乳首が弱いんだ、オレ
0976デフォルトの名無しさん
2014/09/19(金) 20:21:27.70ID:fWL44I6k概算でいいのならそう書け。どう考えても、
>>936
>C++: 0.007
>PHP: 0.8
>Python: 1.03
概算でしかありえない。概算アルゴリズムなら瞬時で当たり前。
スレの多くの反応からして、皆、概算ではなく、数学的にちゃんとしたものを求めようとしてる。
>>935のお題からだと、そう受け取るのがデフォルト。概算なら概算と明記が必須。
>>956
>MPIR GMPは使っていいことにすれば?
これも概算アルゴリズムだし。普通、「使っていいことにする」とかやっぱりそういう言い方になるよね。
出題者、自分は勝手に概算でやっておいて、1秒以内で終らせておきながら、そのことは何も言わない。
稀に見る悪問だ。
0977デフォルトの名無しさん
2014/09/19(金) 20:34:45.85ID:O8AT4gzLPHPなどに移植されたバージョンは精度を犠牲に速度を取ってることはある。
0978デフォルトの名無しさん
2014/09/19(金) 20:39:48.05ID:fWL44I6k概算というのは、一応、素数の判定に関するメソッドのことね。
MPIR GMP全体のことじゃないよ。
このような信頼度の高いライブラリーでも、素数に関しては概算を使うほかないのに、
出題者が>>936の高速結果を晒しているのは概算以外にありえないという意味で。
0979デフォルトの名無しさん
2014/09/19(金) 20:40:36.63ID:O8AT4gzL0980デフォルトの名無しさん
2014/09/19(金) 20:51:43.77ID:JRtZOBn9ttp://ideone.com/yXV2nN
ttp://ideone.com/Nay7aT
コード適当に書いてみたけど、浮動小数の誤差が出てうまく判定ができない。
10進化少数を待て次回!
0981デフォルトの名無しさん
2014/09/19(金) 20:55:13.27ID:JRtZOBn9ありがと!
0982デフォルトの名無しさん
2014/09/19(金) 21:05:42.27ID:JRtZOBn9コンピュータである程度高速に問題を解けるようになったもんだから、PG屋っていうか俺は力技で解こうとするんだな。
数学屋は式捻って解決するんだろうけど。
0983デフォルトの名無しさん
2014/09/19(金) 21:16:49.94ID:A/k0GxKC( ・ω・) < ステンバーイ
〇={=}〇 ∧,, ∧
|::::::::::\ (*‘ω‘ *)
、、、し 、、、(((.@)vv、vvv 、、(、v、)っv、、
0984デフォルトの名無しさん
2014/09/19(金) 21:33:24.34ID:spaja6yA自分語りは中学生までにしておけよ
0985デフォルトの名無しさん
2014/09/19(金) 21:35:51.97ID:O8AT4gzL概算は素数定理を使ってf(x):=x/log(x)と置くと
f(10^33) = 1.316*10^31で手計算可能レベル。
0986デフォルトの名無しさん
2014/09/19(金) 21:39:30.84ID:JRtZOBn9なんてね。
0987デフォルトの名無しさん
2014/09/19(金) 22:24:06.46ID:JGrS0y/F「アトキンのふるい」て知らなかった。
実装してみよっと。
0988デフォルトの名無しさん
2014/09/19(金) 22:30:04.37ID:xoQnq0yE9−3÷1/3+1 を 結果が 1 を返すようパーズして評価するコードを書け。
なお、
・数字は半角ではない。
・/ は ÷より優先される。どちらの演算も割り切れない場合は分数を返す。
・組み込みで分数をサポートしない言語は、既存ライブラリーを使ってもよいし
自分で簡易実装してもよい。無理なら小数点数で扱ってもよい。
・パーザーは手書きでもパーザー生成器などライブラリーを使ってもよい。
いずれにせよ、他の類似の式文字列も同様にパーズ・評価できるように実装する。
例:1/2÷3/4÷5/6×7/8 #=> 7/10
・余力があれば二桁以上の数値、漢数字、括弧、全角返値などへの対応もご自由に。
0989デフォルトの名無しさん
2014/09/20(土) 01:31:37.57ID:nhi4Nvuattp://ideone.com/nXxAgF
一応C++。何かいろいろおかしいけど一応動くものができた。かなり疲れた。
字句解析ってあんまり得意じゃないのですごい汚い。
エクストラステージも一応やっておいた。
歯抜けなので転用はなるべく控えてください。
0990デフォルトの名無しさん
2014/09/20(土) 02:04:04.92ID:M/9MxdSa% cat h:/honda/本田_10.TXT
hドライブの「honda」フォルダ内のファイル:本田_10.TXTを読み込み、英大文字を英小文字に変換、英小文字を英大文字に変換、その他はそのままで表示せよ。
% cat aaa.sh
#!/bin/sh
emacs -batch -Q --eval='
(progn
(require (quote cl-lib))
(princ
(with-temp-buffer
(insert-file-contents (car (last command-line-args)))
(cl-map (quote string) (lambda (x)
(cond
((eq (aref (standard-case-table) x) x) (upcase x))
((aref (standard-case-table) x) (downcase x))
(t x)))
(buffer-substring (point-min) (point-max))))))' $1
exit $?
% sh aaa.sh h:/honda/本田_10.TXT
Hドライブの「HONDA」フォルダ内のファイル:本田_10.txtを読み込み、英大文字を英小文字に変換、英小文字を英大文字に変換、その他はそのままで表示せよ。
0991デフォルトの名無しさん
2014/09/20(土) 02:37:58.55ID:M/9MxdSahttp://www.wolframalpha.com/input/?i=number+of+primes+greater+than+100000+and+less+than+199999
8392
(defun f (a b)
(cl-flet ((num-of-primes (upto)
(/ upto (log upto)))))
(round (- (num-of-primes b) (num-of-primes a))))
f
(f 100000 199999)
7699
0992デフォルトの名無しさん
2014/09/20(土) 10:49:58.32ID:jeZ3jwguアホは書き込み禁止
0993デフォルトの名無しさん
2014/09/20(土) 12:08:27.24ID:gfBeDOZEミラー・ラビンテストは素数を正確に検出することはできません‥
0994デフォルトの名無しさん
2014/09/20(土) 12:47:56.52ID:Z1UbwCef0995デフォルトの名無しさん
2014/09/20(土) 13:17:39.78ID:opmeqTUDすでに出ているコード
Squeak Smalltalk
http://peace.2ch.net/test/read.cgi/tech/1409066255/487
OMeta/JS
http://peace.2ch.net/test/read.cgi/tech/1409066255/489
F#
http://peace.2ch.net/test/read.cgi/tech/1409066255/490
gawk
http://ideone.com/3W5gUW
0996デフォルトの名無しさん
2014/09/20(土) 13:36:07.16ID:nhi4Nvuaスレに収まるほどの範囲でかけるもんか〜。
俺もまだまだだな。
ところで次スレってあるの?
0997デフォルトの名無しさん
2014/09/21(日) 00:35:50.74ID:WCtTxfaPhttp://peace.2ch.net/test/read.cgi/tech/1411227287/
0998デフォルトの名無しさん
2014/09/21(日) 01:11:17.40ID:+YftySIr0999デフォルトの名無しさん
2014/09/21(日) 01:13:41.17ID:l8xEPcUn1000デフォルトの名無しさん
2014/09/21(日) 01:14:51.02ID:gq8YyBjqとか言い出すと不謹慎脳って言われるんだろうか?
>>997
乙
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。