タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

algorithmとhaskellに関するkazutanakaのブックマーク (4)

  • Algorithm Design with Haskellでアルゴリズムを学ぶ - 朝日ネット 技術者ブログ

    はじめに 開発部のcbmkageです。 仕事でプログラムを書いていると、どうしたら期待通りに、かつ高速に動作するアルゴリズムが実装できるか、考えることがあります。 記事では、アルゴリズムについて新たな視点を与えてくれる「Algorithm Design with Haskell」を紹介します。 記事はHaskell中級者向けです。Haskellの文法や、代表的なリスト操作関数を知っていることを前提としています。 はじめに Algorithm Design with Haskellとは 準備: 関数の同値関係 貪欲アルゴリズムのPART紹介 貪欲アルゴリズムとは 候補の生成と選択 貪欲アルゴリズムへの改善 まとめ 採用情報 Algorithm Design with Haskellとは Algorithm Design with Haskell 作者:Bird, Richard,Gib

    Algorithm Design with Haskellでアルゴリズムを学ぶ - 朝日ネット 技術者ブログ
  • 最短経路問題をCofree+Nexus構成で解く - Qiita

    タイムラインにでてきたやつです. 進捗。「Pythonどころかプログラムもはじめて」という学生に容赦なく動的計画法をぶっこんでいくスタイル。 pic.twitter.com/23FkNYy4ZP — ロボ太 (@kaityo256) 2019年6月7日 よくある問題ですね. ダイクストラで解くのが定番だと思いますが,最近CofreeでNexus構成するのがマイブームなのと問題のネットワークもたまたま二分木で表現できる範囲だし,今回はその方向で解いてみました. 実装 直近で書いた累積百ます計算,パスカルの三角形,関・ベルヌーイ数を計算するとあんまり変わりません. ここでTreeの枝に重みを持たせるように双関手TreeFを台関手として定義します. -- | Tree data TreeF a x = Tip a | Bin (a, x) (a, x) deriving Show type Tr

    最短経路問題をCofree+Nexus構成で解く - Qiita
  • 「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 - Qiita

    前書き サイゼリヤ1000円ガチャをつくってみた(Heroku + Flask + LINEbot) 「サイゼリヤで1000円あれば最大何kcal摂れるのか」を量子アニーリング計算(Wildqat)で解いてみた。 完全に二番煎じですが、古典コンピューターが好きなので、個人的に古典コンピューター最強のなんだかよく分からないけどよく分からないものをよく分からないうちに解いてくれるソフト、z3を使ってサイゼリア問題を解いてみました。 問題 サイゼリヤのメニューを重複無しで合計1000円以下になるように選んだときに、最大の総カロリーになるようなメニューの組み合わせを求めよ。 サイゼリヤのメニューは https://github.com/marushosummers/Saizeriya_1000yen こちらを使わせて使わせて頂きました。メニューは100種類ぐらいみたいで、カロリーは整数値で、プロコ

    「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 - Qiita
  • たらいを回すならHaskell : 404 Blog Not Found

    2006年04月07日22:09 カテゴリLightweight Languages たらいを回すならHaskell たらい回し関数、またはtakと呼ばれる有名な関数が存在する。 C言語による最新アルゴリズム事典 奥村晴彦 同書をお持ちの方は、185ページに乗っている。 実はこれ、Haskellの売り込みには最高の関数なのだ。 ちなみに、これ最後にyを返すバージョンとzを返すバージョンがあるようで、それぞれtakyとtakzと呼ばれている模様。ここではtakyの方を採用。 まずは、私のnative tongueとも言えるperl。 tak.pl #!/usr/bin/perl use strict; use warnings; sub tak{ my ($x, $y, $z) = @_; ($x <= $y) ? $y : tak(tak($x-1, $y, $z), tak($y-1,

    たらいを回すならHaskell : 404 Blog Not Found
  • 1