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


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

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



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

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

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

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

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

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

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

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

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

f 'Hello world'
lllooHe wrd

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

ideone.com/mHquNO

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



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

| N animals cages ans |

N := 10.

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

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

ans := Set new -> Float infinity.

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

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

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

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

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

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

あー時間を無駄にした

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

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

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

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



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

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

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

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

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

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

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

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



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

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

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

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

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

scanl1(+)

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

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

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

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

長くなり過ぎワロタ

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

p func1 4
p func1 777
p func1 403



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

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

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

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

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

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

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

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

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

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

ideone.com/JtmqOO

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

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

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

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



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

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

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

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

ideone.com/hCH8lT

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

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

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

ideone.com/h9oJuH

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

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

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

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

ideone.com/UtnUWJ

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

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

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

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

p mysort a

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



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

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

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

F# 勉強中

ideone.com/mHKjpZ

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

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

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

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

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

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

ideone.com/Q1ZFMv

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

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

ideone.com/hKhw79

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

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

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



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

ideone.com/3e3eOt

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

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

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

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

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

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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef