プログラミングのお題スレ Part8at TECH
プログラミングのお題スレ Part8 - 暇つぶし2ch386:デフォルトの名無しさん
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 "


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