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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

264:255
16/01/03 00:02:35.63 j2CXypF5.net
うん、さっぱりわからんww

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

266:デフォルトの名無しさん
16/01/03 00:35:54.90 TvE7D5Dq.net
>>255 Emacs Lisp
(require 'cl-lib)
cl-lib
(let ((Ay 7.0) (Bx 0.0) (By 0.0) (Cx 10.0) (Cy 0.0) (AP 1.0) (PC0 8.0))
(let ((Axmin Bx) (Axmax Cx) PB0)
(cl-loop
(let ((Ax (/ (+ Axmin Axmax) 2)))
(let* ((Px (let ((a (+ 1 (expt (/ Ay Ax) 2)))
(b (+ (* -2 Ax) (/ (* -2 Ay Ay) Ax)))
(c (+ (expt Ax 2) (expt Ay 2) (- AP))))
(/ (- (- b) (sqrt (- (expt b 2) (* 4 a c)))) (* 2 a))))
(Py (* (/ Ay Ax) Px)))
(let ((PB (sqrt (+ (expt (- Px Bx) 2) (expt (- Py By) 2))))
(PC (sqrt (+ (expt (- Px Cx) 2) (expt (- Py Cy) 2)))))
(and PB0 (< (abs (- PB0 PB)) 0.000001) (return (format "%f" PB)))
(setf (if (< PC0 PC) Axmin Axmax) Ax)
(setq PB0 PB)))))))
"7.959000"

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

268:デフォルトの名無しさん
16/01/03 15:15:54.32 gIFHPruM.net
>>255 Haskell
適当にやったけどそれなりの値に収束したぞ
main = print $ f 3 1 !! 10000
f x d = x : f (x - g x * d) (d * 0.9)
g x = sqrt(1-((x^2+10^2-8^2)/(x*10*2))^2)*(x+1)-7
--
7.958400097301163

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


307:dV.net



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

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

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

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

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

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

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

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

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

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

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

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

319:デフォルトの名無しさん
16/02/02 05:04:22.87 +n78UQ/o.net
定期age

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

349:デフォルトの名無しさん
16/03/03 19:58:32.83 SkSUFtdJ.net
お題:リストを重複の多い順に並び替える
重複個数が同じ場合はリストに登場するのが早い順とする
"Hello world" -> "lllooHe wrd"
[3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6]
-> [3,3,3,3,5,5,5,9,9,9,1,1,4,4,2,2,6,6,8,8,7]

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

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

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

353:デフォルトの名無しさん
16/03/03 23:17:39.49 fGqRJK5H.net
>>342
haskell
import Data.List (sortBy)
main = do
 putStrLn $ s "Hello World"
 print $ s [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6]
s xs=concat.sortBy(\x y -> compare (length y) (length x))$gs xs
gs :: Eq a => [a] -> [[a]]
gs[]=[]
gs (x:xs)=(x:a) : gs b
 where (a,b)=(filter(== x)xs,filter(/= x)xs)

354:デフォルトの名無しさん
16/03/04 15:28:38.54 7Zl+7QrX.net
お題:
配列Bを配列Aの規則順に従って整列。Aに含まれ無い物は最後尾にアルファベット順に整列。
例:
配列A ary_a=["d","b","e","f","a","c"]
配列B ary_b=["a","b","c","h","m"]
結果:["b","a","c","h","m"]
言語:
rubyかpython

355:デフォルトの名無しさん
16/03/04 15:49:17.83 DX3xeB7o.net
>>347
楽すぎない?

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

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

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

359:デフォルトの名無しさん
16/03/05 19:06:23.29 CXefnPD8.net
>>342 J
f =: 3 : 0
a =. (\: +/"1 =/~ y) { y
b =. ~. a
(/:~ b i. a) { b
)
f 'Hello world'
lllooHe wrd
f 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6
3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7

360:デフォルトの名無しさん
16/03/06 00:31:45.05 WEeJcjtE.net
>>340
haskell
main = mapM(putStrLn) [p x|x<- sequence $ [1]:[[x,-x]|x<-[2..9]],1==sum x]
p=concat.map(\x ->if x>1 then "+"++show x else show x)

361:デフォルトの名無しさん
16/03/06 15:24:05.92 /EFFTfcH.net
>>342 C
>>344 を参考に
URLリンク(ideone.com)

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

363:デフォルトの名無しさん
16/03/11 08:14:24.51 fvdAjVDF.net
あら、新規来ないと思ったら移動してたか。
>>335
ある程度起動してから気づいたから遅かった。
>>337
別の目的で作ったコードなので、これ用というわけじゃなかったのです。
追記型がほしかったので作りました。

364:デフォルトの名無しさん
16/03/11 08:17:33.24 fvdAjVDF.net
>>340
URLリンク(ideone.com)
C++。作ってあったコードをいじっただけなので変なコードになってます。
多分あってると思います。

365:デフォルトの名無しさん
16/03/11 08:49:31.19 fvdAjVDF.net
>>347,348
URLリンク(ideone.com)
C++。デバッグはほとんどしてない。手を抜いたから遅いよ。

366:デフォルトの名無しさん
16/03/11 09:16:36.16 fvdAjVDF.net
>>342
URLリンク(ideone.com)
C++。最近、あんまり効率考慮したコードが書けてないな~。

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

368:デフォルトの名無しさん
16/03/11 23:55:40.35 fvdAjVDF.net
それ以外だとSIMD使うとかになりそうな・・・。

369:デフォルトの名無しさん
16/03/14 11:38:06.21 7hslT/Gl.net
お題:平和な動物園を作ろう
URLリンク(www.hisenkei.net)

370:デフォルトの名無しさん
16/03/14 12:34:29.93 DTR/fUtN.net
宿題じゃね?

371:デフォルトの名無しさん
16/03/14 13:20:59.04 W5wCaIkX.net
NP困難問題とか総当りするぞ

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

373:デフォルトの名無しさん
16/03/14 22:37:30.95 DTR/fUtN.net
よーしぱぱ、ねくすとぱーみゅてーしょんつかっちゃうぞー。

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

375:デフォルトの名無しさん
16/03/16 00:17:53.91 a7Xs+q4N.net
不満度2160であってるんかね

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

377:デフォルトの名無しさん
16/03/16 00:40:17.12 6w3U5gAP.net
std::arrayを使ってはどうか

378:デフォルトの名無しさん
16/03/16 01:13:48.78 PW1OJjjf.net
>>368
知らんよ。適当に書き捨てただけだし。
>>370
リリースで消えてる事をただ願うだけ。2重ループ何回も起動してるから遅いもんだと・・・。
>>370
カスタマイズはご自分で。
特にこだわりはないから、MITライセンスでどうぞ。

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

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

381:デフォルトの名無しさん
16/03/16 01:23:09.89 a7Xs+q4N.net
URLリンク(ideone.com)
何も考えずにstd::vector<DType> Angryとstd::vector<DType> Lengthを外に出しただけで1.74s

382:デフォルトの名無しさん
16/03/16 01:24:01.73 PW1OJjjf.net
URLリンク(ideone.com)
こうかもしれん。
静的変数にしたら超絶早くなった。

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

384:デフォルトの名無しさん
16/03/16 05:12:24.47 /v9qNF/y.net
arrayにしたらかえって遅くなった
URLリンク(ideone.com)

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

386:デフォルトの名無しさん
16/03/16 11:48:35.59 j8iobkYx.net
>>362 Squeak/Pharo Smalltalk
| N animals cages ans |
N := 10.
animals := #(
 (0 2 6 4 6 2 4 4 2 4) (2 0 4 2 2 2 2 2 2 6)
 (6 4 0 2 6 8 8 6 4 8) (4 2 2 0 4 2 6 6 2 6)
 (6 2 6 4 0 2 4 4 2 4) (2 2 8 2 2 0 6 6 6 8)
 (4 2 8 6 4 6 0 6 6 4) (4 2 8 6 4 6 6 0 6 6)
 (2 2 4 2 2 6 6 6 0 6) (4 6 8 6 4 8 4 6 6 0)).
cages := #(
 (0 3 4 5 8 10 9 6 2 4) (3 0 4 4 7 9 9 8 5 9)
 (4 4 0 2 4 7 5 4 4 8) (5 4 2 0 3 5 5 5 5 9)
 (8 7 4 3 0 3 5 6 8 12) (10 9 7 5 3 0 4 7 10 14)
 (9 9 5 5 5 4 0 3 8 11) (6 8 4 5 6 7 3 0 5 8)
 (2 5 4 5 8 10 8 5 0 4) (4 9 8 9 12 14 11 8 4 0)).
ans := Set new -> Float infinity.
(1 to: N) permutationsDo: [:perm |
 | sum |
 sum := 0.
 1 to: N do: [:i |
  1 to: N do: [:j |
   sum := ((animals at: (perm at: i)) at: (perm at: j)) * ((cages at: i) at: j) + sum]].
 ans value = sum ifTrue: [ans key add: perm copy].
 ans value > sum ifTrue: [ans := (Set with: perm copy) -> sum]].
^ans "=> a Set(#(6 9 3 8 7 4 5 1 10 2) #(6 9 3 8 7 4 1 5 10 2))->2160 "

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

388:デフォルトの名無しさん
16/03/16 15:44:17.23 NZyRjPzO.net
×インライン展開
○ループのアンロール

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

390:デフォルトの名無しさん
16/03/16 18:03:36.31 VFJu78ei.net
>>362
なんか計算が微妙に合わないなと思ったら
ニシキヘビとカバの相性度が対象になってないわ
あー時間を無駄にした

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

392:デフォルトの名無しさん
16/03/20 08:30:05.20 e/Ot8AcY.net
お題:ダーツのダブルアウトの組み合わせ
問題の前にダーツのルール(501ゲーム)を簡単に説明。
1~20のマス目があって、それぞれにダブル(最外周の細い領域)と
トリプル(中間の細い領域)があり、ダブル、トリプルは得点が2倍、3倍になります。
中心の2重円は最内の円がダブルブル(50点)、その外側の円がブル(25点)。
持ち点501点から1ターン(1ラウンド)3投ずつプレイして当たった得点を減算していき、
最後残り点数がちょうど0になれば勝ち。
ただし、最後はダブルに当ててフィニッシュする必要があります(ダブルアウトという)。
例:最後5点残っていた場合は、5点は直接狙えず、1点を当ててから2点のダブル(計5点)、
あるいは3点を当てて1点のダブル(計5点)のように最後がダブルになるようにフィニッシュします。



393:考動画 https://www.youtube.com/watch?v=GfC17dQntFA この動画の下のスコアで、残り点数が少なくなってくると左側にT20 T18 D16のような表示が 出てきますが、これは次の3投で上がれる組み合わせの一例を示しています。 この動画だと1:45あたりで残り146点のフィニッシュの組み合わせ例として出ていますね。 (数字の頭のDはダブル Tはトリプル 20x3 + 18x3 + 16x2 = 146) 問題: 1.残り点数を与えられた場合に、1ラウンド3投でフィニッシュできる全ての 組み合わせを求めてください。 例:残り4の場合は[D2][2 D1][D1 D1][1 1 D1]の4通り 例として残り10の場合を求めてみてください。 2.1ラウンド3投以内のフィニッシュで最も組み合わせの多い残り点数を求めてください。 解答例:http://ideone.com/LWu1WM (C言語 合ってるかちょっと自信ない)



394:デフォルトの名無しさん
16/03/20 09:03:48.16 e/Ot8AcY.net
>>385
外した場合を考えてませんでした。
残り10をD5でフィニッシュする場合、1投目でフィニッシュと、1投目はずして(0点)
2投目でフィニッシュ、同じく1,2投目はずして3投目でフィニッシュがありますが、
これは全て[D5]に含むこととします。(外した分は無視)
外した分も考慮して組み合わせを考えてみても面白いかもしれません。
(上の例だと[D5][0 D5][0 0 D5]に分かれることになります)

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

396:デフォルトの名無しさん
16/03/23 04:48:29.17 dWvJC0mF.net
>>387
URLリンク(ideone.com)
C++。適当に書いた。結構短くかけたと思う。

397:デフォルトの名無しさん
16/03/23 16:03:47.29 NkT0dmTC.net
>>387
haskell
map sum.tile.inits

398:デフォルトの名無しさん
16/03/23 19:13:26.12 l5rfZdo+.net
>>387
C++
URLリンク(ideone.com)

399:デフォルトの名無しさん
16/03/23 20:01:16.70 1UFsClL1.net
>>387 F#
Seq.scan (+) 0

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

401:デフォルトの名無しさん
16/03/23 21:07:05.34 NkT0dmTC.net
標準ライブラリじゃなくて、Preludeでした、すみません。

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

403:デフォルトの名無しさん
16/03/24 13:07:49.70 5hctbNOo.net
>>387
C
URLリンク(ideone.com)

404:デフォルトの名無しさん
16/03/24 14:14:51.89 BKOgASSO.net
>>387
C++
URLリンク(ideone.com)
長くなり過ぎワロタ

405:デフォルトの名無しさん
16/03/25 23:54:10.03 aGSq1f0l.net
>>387
PowerShell
もっと短くできなかったものかなあ
function Accumulate() {
$t = @(); $args | % {$t += $t[-1] + $_}; $t
}

406:デフォルトの名無しさん
16/03/26 00:50:33.88 /XUmDgkC.net
>>342
PowerShell
function SortGroupByCount($o) {
 $o.GetEnumerator() | group | sort Count -d | select Group | %{ Write-Host -n "$($_.Group) " }
}
> SortGroupByCount "Hello world"
l l l o o H e w r d
> SortGroupByCount 3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6
3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7

407:デフォルトの名無しさん
16/03/26 00:57:47.15 /XUmDgkC.net
>>398
よく見たらselect Groupいらんかった
function SortGroupByCount($o) {
 $o.GetEnumerator() | group | sort Count -d | %{ Write-Host -n "$($_.Group) " }
}

408:デフォルトの名無しさん
16/03/26 06:52:33.07 lsHN8L8S.net
@Mathematica
In[1] := x = {90, 10, 54, 3, 6, 22, 77, 78, 75, 16};
In[2] := x//
     Accumulate
Out[2] = {90, 100, 154, 157, 163, 185, 262, 340, 415, 431}

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

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

411:デフォルトの名無しさん
16/03/28 13:28:14.63 ObwLfSdF.net
>>387 Squeak/Pharo Smalltalk
| fn |
fn := [:arr | arr inject: #() into: [:a :x | a, {x + (a at: a size ifAbsent: 0)}]].
fn value: #(90 10 54 3 6 22 77 78 75 16)
"=> #(90 100 154 157 163 185 262 340 415 431) "

412:デフォルトの名無しさん
16/03/28 13:51:42.42 ObwLfSdF.net
>>342 Squeak/Pharo Smalltalk
| fn |
fn := [:seq |
 | rule |
 rule := [:a :b |
  a key > b key or: [
   a key = b key and: [(seq indexOf: a value) < (seq indexOf: b value)]]].
 seq class streamContents: [:ss |
  (seq asBag sortedCounts sort: rule) do: [:kv |
   kv key timesRepeat: [ss nextPut: kv value]]]
].
fn value: 'Hello world'.
"=> 'lllooHe wrd' "
fn value: #(3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6).
"=> #(3 3 3 3 5 5 5 9 9 9 1 1 4 4 2 2 6 6 8 8 7) "

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

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

415:デフォルトの名無しさん
16/03/30 05:39:51.79 ij4V+9+M.net
>>>342 Python3
def f(L):
 return sorted(L, key=lambda x: (-L.count(x), L.index(x)))
print("".join(f("Hello world")))

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

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

418:デフォルトの名無しさん
16/04/01 00:36:24.19 oZji/N9B.net
>>406
実行結果が
"333399955588662244117"
になってしまいます

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

420:デフォルトの名無しさん
16/04/04 22:48:25.37 mfUNWB3k.net
>>411 Java
URLリンク(ideone.com)

421:デフォルトの名無しさん
16/04/05 21:02:49.40 V1X87Hw6.net
>>411 C
URLリンク(ideone.com)

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

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

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

425:デフォルトの名無しさん
16/04/08 13:12:03.72 opSE2XAx.net
>>411
Rubyで。
require 'prime'
def func1 n
nStr = n.to_s
nLen = nStr.length
Prime::instance.each{|e|
return e if e.to_s[0, nLen] == nStr
}
end
p func1 4
p func1 777
p func1 403

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

427:デフォルトの名無しさん
16/04/08 20:59:33.30 OyooKXkj.net
>>411 Io
isPrime := method(n,
if(n < 2, return(false))
if(n < 4, return(true))
if(n % 2 == 0, return(true))
for(i, 3, n sqrt, 2, if(n % i == 0,return(false)))
true
)
f := method(n,
a := 1
loop(
for(i, n * a + 1, n * a + a - 1, 2,
if(isPrime(i), return(i))
)
a = a * 10
)
)
Io> list(1,777,403)map(v,f(v))
==> list(11, 77711, 40343)

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

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

430:デフォルトの名無しさん
16/04/10 00:12:29.27 0xtkUQ3n.net
>>421 Java
URLリンク(ideone.com)

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

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

433:デフォルトの名無しさん
16/04/10 11:04:10.71 yfpRB3fX.net
>>421
@Mathematica
URLリンク(ideone.com)

434:デフォルトの名無しさん
16/04/10 22:30:50.62 SKXiL2tD.net
>>421
F#
URLリンク(ideone.com)
お題スレ参加は半年ぶりくらい。。。
さらにF#の勉強開始して1ヶ月程度なので、ちょっとアレな感じかもしれませんが・・・

435:425
16/04/10 23:49:40.35 SKXiL2tD.net
>>421
F#
URLリンク(ideone.com)
たびたびスマン・・・ちょっとブラッシュアップしました
見た目がちょっとキレイになった

436:デフォルトの名無しさん
16/04/11 19:11:43.16 U9aEtrvs.net
>>411 Squeak/Pharo Smalltalk
| primeStartsWith |
primeStartsWith := [:n |
 | exp min max ans |
 exp := 0.
 [ min := n * (10 raisedTo: exp).
  max := n+1 * (10 raisedTo: exp).
  ans := (Integer primesUpTo: max) detect: [:prime | prime >= min] ifNone: nil.
  exp := exp + 1.
  ans notNil.
 ] whileFalse.
 ans
].
primeStartsWith value: 4. "=> 41 "
primeStartsWith value: 777. "=> 77711 "
primeStartsWith value: 403. "=> 40343 "

437:デフォルトの名無しさん
16/04/11 19:31:44.71 U9aEtrvs.net
>>421 Squeak/Pharo Smalltalk
URLリンク(ideone.com)

438:デフォルトの名無しさん
16/04/12 06:07:51.10 IvlGS


439:XDX.net



440:デフォルトの名無しさん
16/04/13 23:39:53.84 xdVnQQp5.net
>>387
F# 勉強中
URLリンク(ideone.com)
ローカル環境だとList使って実装して動いたんだけど
ideoneだと動かなくて、調べたらideoneのF#のバージョンが低いのかもしれない
Arrayを使って書き直したら動いた

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

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

443:デフォルトの名無しさん
16/04/14 23:39:12.31 rplj63Da.net
>>4
F# 勉強中
URLリンク(ideone.com)
プログラム自体はちゃんと動いてるっぽいが、
コードがF#的になんかいろいろと間違えてるような気がする・・・

444:デフォルトの名無しさん
16/04/15 02:29:59.73 7tix3D6p.net
>>433
Ruby
def mysort a
(a.length - 1).times{|i|
if a[i] > a[i + 1]
a[i], a[i + 1] = a[i + 1], a[i]
mysort a
end
}
a
end
a = (1..10).map{rand(10000)}
p a
p mysort a

445:デフォルトの名無しさん
16/04/15 05:28:13.90 UEolzSKG.net
>>433
URLリンク(ideone.com)
C++。残念なコードになった。こんなコード書きたくなーい。Orz

446:デフォルトの名無しさん
16/04/15 21:30:03.75 uCMMU+7S.net
>>433 F#
let rec sort = function
| ([] | [_]) as x -> x
| l::rs ->
let r::rs = sort rs
if l < r then l::sort(r::rs) else r::sort(l::rs)
let r = System.Random()
let xs = List.init 10 <| fun _ -> r.Next 10
printfn "%A = sort %A" xs <| sort xs

447:デフォルトの名無しさん
16/04/16 01:41:35.90 8gZGJMh1.net
>>433
F# 勉強中
URLリンク(ideone.com)
勉強中ゆえ(?)、>>437のコードとか正直よく分からん・・・
とりあえず、自分の理解できる範囲で書いてみたら
殆ど手続き型と変わらん作りになってしまったw

448:デフォルトの名無しさん
16/04/16 21:13:38.41 uCxyrvwI.net
>>436
選択ソート?

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

450:デフォルトの名無しさん
16/04/16 23:43:07.03 LiAu7R50.net
URLリンク(ja.wikipedia.org)
これの疑似コードのちょっと悪い感じ?
シンプルにするためにオーダー悪くなってる。

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

452:デフォルトの名無しさん
16/04/16 23:56:43.13 8gZGJMh1.net
>>37
F# 勉強中
URLリンク(ideone.com)
2進⇔10進変換の復習ができてよかった

453:デフォルトの名無しさん
16/04/17 20:39:22.16 cB2Ml+fZ.net
>>433
@Mathematica
URLリンク(ideone.com)

454:デフォルトの名無しさん
16/04/17 20:55:49.84 cB2Ml+fZ.net
調べたらこんなのもあった。
@Mathematica
「パターンと規則を使ってバブルソートアルゴリズムを実装する」
URLリンク(reference.wolfram.com)

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

456:デフォルトの名無しさん
16/04/17 22:19:43.05 chPSqpJT.net
>>411
F# 勉強中
URLリンク(ideone.com)
素数判定はWikipediaの同名項目に書かれてるCソースの丸パクリです・・・
あと、最初に挑戦したときは>>418と全く同じ症状だったので断念・・・
なんだか、イマイチな感じなので後でコッソリとリファクタリングするかもです

457:デフォルトの名無しさん
16/04/17 22:30:35.60 DiLcHZEv.net
4×4の15パズルの、解ける盤面を作るのに、
空いているマスに、ランダムに100回ほど移動して、
盤面を作っている本を読んだが、
ランダムに盤面を作って、それが解ける問題かどうか、簡単に判別できる方法はないの?
3×3の盤面で、ランダムに盤面を作って、解ける問題かどうかを判別して。
上は解ける。下は解けない
0,1,2
3,4,5
6,7,空
0,1,2
3,4,5
7,6,空

458:デフォルトの名無しさん
16/04/18 01:55:07.16 v1FL9ptr.net
>>448
c++で適当に書いた。URLリンク(ideone.com)
以下を参照したが実装が少し違うのであってるかわからん
URLリンク(homepage2.nifty.com)

459:片山博文MZ ◆T6xkBnTXz7B0
16/04/18 14:39:50.41 6ER+VIie.net
15パズルの偶奇性
URLリンク(www.geocities.jp)

460:デフォルトの名無しさん
16/04/18 15:49:05.97 vrHU0PJO.net
1と4と空白を所定に合わせて
あとは偶奇性

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

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

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

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

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

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

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

468:デフォルトの名無しさん
16/04/19 01:07:43.67 ZMwgfCfL.net
数学で会話できる人かっこいいなー。

469:デフォルトの名無しさん
16/04/19 17:18:01.67 93zFzB0Z.net
>>458
かっこいいー
もしかして大学出ですか?

470:デフォルトの名無しさん
16/04/19 23:30:31.84 iVQa/t2n.net
>>342
F# 勉強中
URLリンク(ideone.com)
なんかSQLいじってる気分になった

471:デフォルトの名無しさん
16/04/20 16:20:19.87 bv/Q/2uG.net
>>433 Squeak/Pharo Smalltalk
| simpleBubble |
simpleBubble := [:arr |
 | stream |
 stream := arr readStream.
 arr size - 1 timesRepeat: [
  arr size - 1 timesRepeat: [
   stream next > stream peek ifTrue: [
    arr swap: stream position with: stream position + 1]].
  stream reset
 ].
 arr
].
simpleBubble value: (1 to: 10) asArray shuffled "=> #(1 2 3 4 5 6 7 8 9 10) "

472:デフォルトの名無しさん
16/04/20 20:06:02.61 ARUL8qdV.net
>>433 c
URLリンク(ideone.com)

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

474:デフォルトの名無しさん
16/04/21 13:03:18.17 5MDUs+Ed.net
>>433 Squeak Smalltalk (PositionableStream>#lastが無いのでPharoではNG。為念)
>>464 等を参考にループを >>462 よりシンプルにした版。
| simplerBubble |
simplerBubble := [:arr |
 | stream |
 stream := arr readStream position: 1.
 [stream atEnd] whileFalse: [
  stream last > stream next ifTrue: [
   arr swap: stream position - 1 with: stream position.
   stream position: 1
  ]
 ].
 arr
].
simplerBubble value: (1 to: 10) asArray shuffled "=> #(1 2 3 4 5 6 7 8 9 10) "

475:デフォルトの名無しさん
16/04/23 01:46:03.15 3vhuTo00.net
>>433 Rust
URLリンク(ideone.com)

476:デフォルトの名無しさん
16/04/30 21:02:40.94 f9UktSYx.net
お題:170の階乗の先頭10桁を求める

477:デフォルトの名無しさん
16/04/30 21:05:19.27 f9UktSYx.net
お題:170の階乗の先頭10桁を求める

478:デフォルトの名無しさん
16/04/30 22:13:46.81 ih9K+Dlj.net
>>467
Rubyで
p (1..170).inject(&:*).to_s[0,10]
# 実行結果
# "7257415615"
# [Finished in 0.1s]

479:デフォルトの名無しさん
16/04/30 23:37:54.35 DWppbW2i.net
>>467
F# 勉強中
URLリンク(ideone.com)
少しはF#分かってきたような、そうでもないような・・・

480:デフォルトの名無しさん
16/05/01 00:25:30.55 3nNxkvii.net
>>468
FBasic
'170!
Dim i As Integer
Dim ii As Double
Dim f As Double
f= 1.0
For i= 2 To 170
ii = CDbl(i)
f = f * ii
Next
Print f
Sleep
End
7.257415615307994e+306

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

482:デフォルトの名無しさん
16/05/01 05:22:39.61 k8Y2io+T.net
>>467 Python3
関数を定義したり制御構文を使ったりライブラリをimportしたりするのは負けた気がするので捻った
>>> str((lambda f, n: f(f, n))((lambda g, m: m * g(g, m-1) if m > 0 else 1), 170))[:10]
'7257415615'

483:デフォルトの名無しさん
16/05/01 07:00:07.79 Jp0j1ueK.net
>>467 Squeak/Pharo Smalltalk
170 factorial asString first: 10 "=> '7257415615' "

484:デフォルトの名無しさん
16/05/01 09:24:40.00 i1tpwyoc.net
>>467
@Mathematica
170 // Factorial // ToString // StringTake[#, 10] &

485:デフォルトの名無しさん
16/05/01 09:37:49.41 tKi6j9CT.net
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
URLリンク(twitter.com)
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw

The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


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

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

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

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

489:デフォルトの名無しさん
16/05/02 11:11:18.30 ybUtGNCd.net
>>479 Squeak/Pharo Smalltalk
| fn |
fn := [:x |
 | factFloat factStr n nines |
 n := 0.
 factFloat := 1.0.
 nines := String new: x withAll: $9.
 [ n := n + 1.
  factFloat := factFloat * n.
  factFloat := factFloat / (10 raisedTo: factFloat log asInteger).
  factStr := factFloat asString copyWithout: $. .
  factStr first = $0 ifTrue: [factStr := factStr allButFirst].
  factStr size >= x and: [(factStr first: x) = nines]
 ] whileFalse.
 {#x->x. #n->n. factStr truncateWithElipsisTo: 13}
].
fn value: 1. "=> {#x->1 . #n->97 . '9916779348...'} "
fn value: 2. "=> {#x->2 . #n->97 . '9916779348...'}"
fn value: 3. "=> {#x->3 . #n->262 . '9996811196...'} "
fn value: 4. "=> {#x->4 . #n->17411 . '9999777368...'} "
fn value: 5. "=> {#x->5 . #n->583104 . '9999906872...'} "
fn value: 6. "=> {#x->6 . #n->2064173 . '9999993058...'} "

490:デフォルトの名無しさん
16/05/04 08:45:55.56 GSs/8kUx.net
>>479
@Mathematica
URLリンク(ideone.com)

491:デフォルトの名無しさん
16/05/04 21:22:23.48 WvfFbq7M.net
>>479 Io
f := method(x,
 d := 10 ** (x - 1)
 q := 10 ** x - 1
 a := 1
 n := 0
 while(q != (a * d) floor,
  n = n + 1
  a = a * n
  a = a / 10 ** a log10 floor
 )
 n
)
Io> f(1)
==> 96
Io> f(3)
==> 261
Io> f(5)
==> 583104

492:デフォルトの名無しさん
16/05/04 22:35:23.32 qgnKpMBO.net
//┏┳┳┳┳┓
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┣╋╋╋╋┫
//┗┻┻┻┻┛
//上記の6X6の通路を左上から右下へ到達する時に
//同じ場所を通らずにたどり着くルートは何通りあるか?
嫌儲のプログラミングスレで盛り上がってるこの問題どうすかね

493:デフォルトの名無しさん
16/05/04 22:37:44.31 h5NbJg5S.net
おねえさん・・・

494:デフォルトの名無しさん
16/05/05 00:59:50.49 muAMBl7W.net
>>483
以前、お題スレ Part6の984 の問題で作ったものをそのまま流用。
左上から部屋番号1,2,3,...36(右下)として、部屋同士の接続を定義。
言語C++: URLリンク(ideone.com)
5x5なら1秒以内で終わるのですが、6x6はideoneではタイムオーバーでした。
計算するときはn=6にして計算して下さい。自分のところでは計算に70秒程度。
正直合ってるかどうかわかりません。
結果:
6x6:
全1262816通り
最短距離10(252通り)
最長距離34(10180通り)
ちなみに・・・
2x2:全2通り
最短距離2(2通り)
最長距離2(2通り)
3x3:全12通り
最短距離4(6通り)
最長距離8(2通り)
4x4:全184通り
最短距離6(20通り)
最長距離14(32通り)
5x5:全8512通り
最短距離8(70通り)
最長距離24(104通り)

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

496:デフォルトの名無しさん
16/05/05 02:48:54.24 PH/e0da8.net
>>479
F# 勉強中
URLリンク(ideone.com)
※ただし、UInt64(Max 10進数で19桁)で計算してるので誤差が生じはじめると・・・
ideone上だとx=5が限界、以下ローカルでの実行結果
x=1: n=96 (9916779348...)
x=2: n=96 (9916779348...)
x=3: n=261 (9996811196...)
x=4: n=17411 (9999777368...)
x=5: n=583104 (9999906872...)
x=6: n=2064173 (9999993058...)
ちなみに、x=5がローカル(i7-3537U)で30秒くらいかかるのにideoneだと6秒未満だし
やっぱ性能いいのねぇ・・・
あと、階乗の手抜きっぽい計算はPAIZAの彼女を作るゲームの水着ゲット問題で研究しますたw

497:デフォルトの名無しさん
16/05/05 15:33:45.25 SQKTrz0M.net
>>486
それは発展版の方でですね
最初は482で次問が交差点を何度もです
ちなみに交差点を何度もではかなり気をつけないとCではスタックオーバーみたいですね

498:デフォルトの名無しさん
16/05/05 17:16:35.94 PH/e0da8.net
>>483
F# 勉強中
URLリンク(ideone.com)
ideoneでは残念ながら制限時間超過・・・
ローカル(i7-3537U 8GB mem)では1,262,816通り、実行時間およそ42秒
末尾再起にするため、やむを得ずmutableを使ったのだが、もっとうまいやり方はあるのだろうか・・・・

499:デフォルトの名無しさん
16/05/05 18:24:52.73 ZdWJcfSQ.net
>>488
482発展版? by c++ n=6まで
URLリンク(ideone.com)
手元で時間がかかったがn=7も確認

500:デフォルトの名無しさん
16/05/06 07:33:20.07 +i3ap6tD.net
>>490
489は、非発展版でした。
発展版はn=5が限界だった。あのビデオ通りの動きだな
URLリンク(ideone.com) 上書き
n=3の経路見てみてあっているような感じ。
それ以上のnは確認ができてない。
数列辞典で引ける程度でたので、これかな
URLリンク(oeis.org)

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

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

503:デフォルトの名無しさん
16/05/08 00:04:20.89 r8xFef3w.net
あ、日付かわった。

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

505:デフォルトの名無しさん
16/05/08 23:07:10.56 3m2Dr+7v.net
{2,3,5,8,9,12,14,15}

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

506:デフォルトの名無しさん
16/05/08 23:23:03.64 3m2Dr+7v.net
あ、共通部分があってもいいんだな
A=B={1,2,...,16}とか
まだありそう

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

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

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

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

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

512:デフォルトの名無しさん
16/05/09 03:01:39.37 2YrVj7rY.net
>>497
グループ分けだから共通は無しじゃないの

513:デフォルトの名無しさん
16/05/09 15:09:43.81 9C2z/2Vf.net
>>495
URLリンク(ideone.com)
16だけだと寂しかったので、答えが多数出てくる24も追加してみた。
1は必ずAグループに入るようにしている。
(A,Bを特定した時、全く逆の組み合わせも存在するが、今回は表示してない)

514:デフォルトの名無しさん
16/05/09 20:05:26.31 t+bzhO52.net
>>495 Io
for(i, 1, 2 ** 15,
 a := list
 for(j, 1, 16,a push(if(i at(j - 1) == 1, j, -j)))
 if(a map(**3) sum == 0, a println)
)
実行結果
list(-1, 2, 3, -4, 5, -6, -7, 8, 9, -10, -11, 12, -13, 14, 15, -16)
正の数をひとつのグループ、負の数をもうひとつのグループというこで

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

516:デフォルトの名無しさん
16/05/10 19:41:46.28 2fCl6+HU.net
31の場合は何通り?

517:デフォルトの名無しさん
16/05/10 20:56:18.35 0+ZmZvza.net
40通り

518:デフォルトの名無しさん
16/05/10 21:01:50.08 TdrM46fl.net
>>495
@Mathematica
URLリンク(ideone.com)

519:デフォルトの名無しさん
16/05/11 02:23:15.24 zcj8oTfj.net
>>495 Java
URLリンク(ideone.com)

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

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

522:デフォルトの名無しさん
16/05/12 19:27:31.92 fkcp4aHY.net
>>495 Squeak/Pharo Smalltalk
| elems sets |
sets := Set new.
elems := (1 to: 16) asArray.
(1 to: elems size - 1) do: [:n |
 elems combinations: n atATimeDo: [:comb |
  | rest |
  rest := elems difference: comb.
  ((1 to: 3) allSatisfy: [:pow | (comb raisedTo: pow) sum = (rest raisedTo: pow) sum])
   ifTrue: [sets add: {comb copy. rest} asSet]
 ]
].
^sets "=> a Set(a Set(#(2 3 5 8 9 12 14 15) #(1 4 6 7 10 11 13 16))) "

523:デフォルトの名無しさん
16/05/13 20:53:50.90 6rd1u1gc.net
>>495
@Mathematica, リファクタリング後
URLリンク(ideone.com)

524:デフォルトの名無しさん
16/05/14 16:09:50.16 LEy4i3xG.net
>>495
スレ汚しスマソ
@Mathematica, さらにリファクタリング
URLリンク(ideone.com)
testGroup の条件を書き換えて、枝刈り。
計算時間が半分に。

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

526:デフォルトの名無しさん
16/05/22 16:52:01.87 UXQjq3mC.net
どこの誤爆だw

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

528:デフォルトの名無しさん
16/05/25 05:32:56.17 4GANdY7B.net
>>483
@Mathematica
URLリンク(ideone.com)

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

530:デフォルトの名無しさん
16/05/28 04:06:02.91 t8+ZEFcK.net
>>520
URLリンク(ideone.com)
C++。こういうこと?かしらかしらごぞんじかしら。

531:デフォルトの名無しさん
16/05/28 12:17:02.17 MAzFniKU.net
全然違うし何でそういう発想になったかわからん

532:デフォルトの名無しさん
16/05/28 16:19:17.65 XDR4NRkL.net
おれはこれ以外に解釈できない

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

534:デフォルトの名無しさん
16/05/28 18:15:28.59 t8+ZEFcK.net
出題者でてきてー。

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

536:デフォルトの名無しさん
16/06/01 20:35:38.46 4RXp3JbO.net
>>520 J
f=:(_1&|. +. 1&|.) @ = @ i.
f 4
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0

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

538:デフォルトの名無しさん
16/06/04 22:13:38.13 9azu721e.net
あげ

539:デフォルトの名無しさん
16/06/05 00:23:56.68 bEHxSIM9.net
DB全体のスナップショット機能と同じやん

540:デフォルトの名無しさん
16/06/05 07:15:50.35 VJ6TUrY4.net
ブラック企業かよw

541:デフォルトの名無しさん
16/06/06 08:41:23.90 6BPcdog/.net
Windows7以上?ではレジストリにアクセス権が設定できるんですが?

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

543:デフォルトの名無しさん
16/06/14 19:38:38.50 Eohj2elN.net
286個では

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

545:デフォルトの名無しさん
16/06/14 21:21:13.32 F0Va16Jg.net
この出題じゃその例にはならないぞ

546:デフォルトの名無しさん
16/06/14 23:44:42.75 43s0H04y.net
>>533
ちょっと言ってる意味が解らないですね。
オーダーしてくる確率が決まってるならまだしも、イーブンに注文してくるなら最高値と最低値は一緒になるのでは?
初見でそう思った。
C++にコンビネーションを・・・。Orz

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

548:デフォルトの名無しさん
16/06/17 19:43:08.29 ZJPgf/2E.net
>>535
表に1個有るんだろ。
計286通り。

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



550:[ フォーマット例 ] 00:02:11,706 --> 00:02:13,196 banana. 00:02:14,509 --> 00:02:17,842 apple. 1つのファイルには台詞が1000以上あります 作成者が異なるのでぞれぞれのファイルの台詞の時間はバラバラに記録されています 近しい時間帯の台詞が出来るだけ綺麗に連なるように2つのファイルをマージしてください



551:デフォルトの名無しさん
16/06/26 01:27:48.70 ifKGTnOo.net
データをフォーマット通り読んでってソートするお仕事?

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

553:デフォルトの名無しさん
16/06/26 01:37:53.46 ifKGTnOo.net
データがなさ過ぎてなんとも言い難いなぁ。一抜け。

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

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

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

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

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

559:デフォルトの名無しさん
16/06/28 21:40:42.79 JU4eR3PY.net
レス遅れてすまんが、お題としてはイマイチだったかな
URLリンク(www.opensubtitles.org)
URLリンク(www.opensubtitles.org)
>>546
英語の練習がしやすい

560:デフォルトの名無しさん
16/06/29 02:19:12.68 sVTYBpM+.net
タダの準備不足。
人を動かす材料が足りない。

561:デフォルトの名無しさん
16/06/29 23:31:32.20 OPqpBspr.net
そうか。すまんかった

562:デフォルトの名無しさん
16/06/29 23:49:35.70 frOOdHyw.net
入力だけじゃなく出力も提示しないとわからんよ

563:デフォルトの名無しさん
16/07/03 21:08:39.04 KvQk5E4z.net
>>540
JAVA ソース
URLリンク(ideone.com)
jarなど
URLリンク(www1.axfc.net)

564:デフォルトの名無しさん
16/07/05 11:21:22.75 ALuHk1mL.net
レスがつかないのでいいのか悪いのかさっぱりわからん
無責任なやつだな

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


566:何通りありますか?



567:デフォルトの名無しさん
16/07/21 20:05:24.57 rb76Qzme.net
>>555
あれ、例が抜けてた↓
"150301" -> 18
"150031" -> 16
"015000" -> 8
"2432902008176640000" -> ?

568:デフォルトの名無しさん
16/07/21 23:07:45.64 8Nf0PhCE.net
>>555-556
C++
あってるかどうかは知らん
URLリンク(ideone.com)

569:デフォルトの名無しさん
16/07/22 12:57:04.31 M/7Z6G3a.net
>>556
↓のような分割かと思ったが・・・
0,15000
01,5000
015,000
0150,00
01500,0
0,1,5000
0,15,000
0,150,00
0,1500,0
0,1,5,000
0,1,50,00
0,1,500,0
0,15,0,00


570:デフォルトの名無しさん
16/07/22 15:32:49.00 JXjdchXx.net
>>555
C言語 URLリンク(ideone.com)
例からすると区切り無しも含むのですかね


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