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


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

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



478 名前:デフォルトの名無しさん mailto:sage [2018/11/13(火) 14:23:32.25 ID:TStmpOw3.net]
>>283 Squeak Smalltalk >>461 を参考に (joinを直せばPharoも可)

| fn |
fn := [:M :N |
| digits xs ys primaries secondaries sorted |
digits := (M * N) log ceiling.
xs := (1 to: M) collect: [:idx | (1 to: N) asArray].
ys := (1 to: M) collect: [:idx | Array new: N withAll: idx].
primaries := xs + ys.
secondaries := primaries \\ 2 * 2 - 1 * xs.
sorted := ((1 to: M) gather: [:y | (1 to: N) collect: [:x | x@y]]) sort:
[:pt | (primaries at: pt y) at: pt x] ascending, [:pt | (secondaries at: pt y) at: pt x] descending.
sorted doWithIndex: [:pt :idx | (xs at: pt y) at: pt x put: (idx printStringPadded: digits)].
(xs collect: [:row | row joinSeparatedBy: ' ']) asStringWithCr
].

fn value: 3 value: 3. "=>
'1 2 6
3 5 7
4 8 9' "
fn value: 4 value: 2. "=>
'1 2
3 5
4 6
7 8' "
fn value: 3 value: 5. "=>
'01 02 06 07 12
03 05 08 11 13
04 09 10 14 15' "
fn value: 1 value: 8. "=>
'1 2 3 4 5 6 7 8' "






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

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

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