2010年12月08日

falling number

T_GYOUTENさんの所の記事を見てやってみた。
考え方は、同じだけど、組合せの関数を使うもの。
let rec comb n l =
  match n, l with
  | 0, _  -> [[]]
  | _, [] -> []
  | n, x::xs -> List.map (fun l -> x ::l) (comb (n - 1) xs) @ (comb n xs)

let _ =
  let nums = List.rev ['0'..'9']
  for i in 2..4 do
    comb i nums
    |> List.sort
    |> List.iter (fun x -> new string(List.toArray x) |> printfn "%s")


Posted by BLUEPIXY at 19:20│Comments(3)TrackBack(0)F# |

pre表示(Firefox)

 コメント一覧 (3)

    • 1. T_GYOUTEN
    • 2010年12月08日 19:35
    • トラックバックありがとうございます。
      明後日は逆にビットカウントで組み合わせを作ってみてます。(24,5個から何個かとる組み合わせまでしかダメでしたが。)
    • 2. BLUEPIXY
    • 2010年12月08日 19:44
    • 勝手にやってることなので、
      お礼とかいいですよ。
      というか、
      むしろ、迷惑掛けていたら、言って下さいね。
    • 3. myself
    • 2010年12月13日 00:33
    • @ を使わないで、内包式にした方がいいかも

コメントする

名前
 
  絵文字