SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
プログラミングHaskell 11章

切符番号選び
     @dekosuke
概略




 数字遊び @ twitter
 切符番号選び

 切符番号選びの高速化




                   2
数字遊び




   ランダムな4つの数字から、10を作ろう!


                           3
数字遊び




   Easy! => 3+2+7-2


                       4
数字遊び




TLを眺めてみると、
問題によっては、難易度高い・・・

                   5
数字遊び




   累乗で解決!


             6
数字遊び




さらに難易度上昇


           7
数字遊び




   絶対値とルートで解決!?・・・


                      8
数字遊び

絶対値とルートで解決!?・・・




                  9
数字遊び



 上のTwitterの数字遊びは、使える演算が明
  示されていないあいまいさがある(それ
  が面白さにつながる点も)
 使える演算をちゃんと決めよう!




                        10
切符番号選びのルール



   正数のリストが与えられる
 リストから好きな数だけ選んで正数を使
  い、四則演算を行える
 計算途中で0以下になってはいけない




                       11
切符番号選びのルール


[Int] -> [(Expr, Int)]

整数のリストから、四則演算で作られる式
とその答えのリストが作られる
欲しい数は、その中に「ある」か「ない」
かのどちらか


                         12
切符番号選びのルール




というわけで、切符番号選びのプログラム
を書きましょう!




                  13
切符番号選び

data Op = Add | Sub | Mul | Div
--演算

valid :: Op -> Int -> Int -> Bool
apply :: Op -> Int -> Int -> Int
--演算が正当かどうかと、演算を行う関数
--Maybe?...

                                    14
切符番号選び

data Expr = Val Int | App Op Expr Expr
--式

eval :: Expr -> [Int]
--式の評価 (実質Maybe)

--整数の組み合わせを作るため、次から
色々関数を定義します
--Val は適宜省略します
                                         15
切符番号選び

subs :: [a] -> [[a]]
subs [] = [[]]
subs (x:xs) = yss ++ map (x:) yss
         where yss = subs xs

--リストの全ての部分集合を作る
--集合のべき乗(2^X)
--subs [1, 2] = [[], [2], [1], [1,2]]
                                        16
切符番号選び


perms :: [a] -> [[a]]
perms [] = [[]]
perms (x:xs) = concat (map (interleave x)
(perms xs))

--集合のpermutation(並び替え)


                                            17
切符番号選び



choices :: [a] -> [[a]]
choices xs = concat (map perms (subs xs))

--全ての部分集合を含んだ順列を作る



                                            18
切符番号選び


solution :: Expr -> [Int] -> Int -> Bool
solution e ns n = elem (values e) (choices ns)
&& eval e == [n]

--式eを構成する数値がリストnsに含まれて
いる かつ 式eを評価すると値nになる


                                                 19
切符番号選び

全ての解答を探す関数solutionsを作りたい

solutions :: [Int] -> Int -> [Expr]
--solutions (数のリスト) 正解値-> 数のリスト
が生成元の式で、評価すると正解値になる
もの
-- solutions [1,2,3] 3 = [Val 3, Add 1 2, Add 2 1]

                                                20
切符番号選び

split :: [a] -> [([a],[a])]
split [] = []
split [_] = []
split (x:xs) = ([x],xs):[(x:ls,rs)|(ls,rs) <- split xs]

--集合を全ての場所で2つに割る
-- split [1,2,3,4] = [([1],[2,3,4]), ([1,2],[3,4]),
([1,2,3],[4])]

                                                          21
切符番号選び

split :: [a] -> [([a],[a])]
split [] = []
split [_] = []
split (x:xs) = ([x],xs):[(x:ls,rs)|(ls,rs) <- split xs]

--集合を全ての場所で2つに割る
-- split [1,2,3,4] = [([1],[2,3,4]), ([1,2],[3,4]),
([1,2,3],[4])]

                                                          22
切符番号選び

combine :: Expr -> Expr -> [Expr]
combine l r = [App o l r | o<-ops]
ops :: [Op]
ops = [Add,Sub,Mul,Div]

--2つの式にすべての演算を適用
--[Add 式1 式2, Sub 式1 式2, Mul 式1 式2, Div
式1 式2]

                                          23
切符番号選び

exprs :: [Int] -> [Expr]
exprs [n] = [Val n]
exprs ns = [e | (ls, rs) <- split ns, l<-exprs ls, r<-
exprs rs, e<-combine l r]

--数値のリストを全て一回ずつ使った式す
べてを返す (本当はこれは遅い(後述) )

                                                         24
完成

solutions :: [Int] -> Int -> [Expr]
solutions ns n = [e|ns' <- choices ns, e<-exprs
ns', eval e==[n]]
--与えられた数を生成する式をすべて探す

が、遅い… (4分 @ モダンなマシン)
(Sub 1 2) <- こういう式が途中に出たら打ち
切りたい

                                                  25
高速化

type Result = (Expr, Int)

combine' :: Result -> Result -> [Result]
combine' (l,x) (r,y) = [(App o l r, apply o x y)|o <-
ops, valid o x y]

--2つのExprに対して、validな演算すべてを
適用

                                                   26
高速化

results :: [Int] -> [Result]
results [] = []
results [n] = [(Val n, n) | n>0 ]
results ns = [res | (ls,rs) <- split ns, lx<-results ls,
ry <-results rs, res<-combine' lx ry]

--数値のリストを、すべて使った式を作っ
て評価する
-- [1,2] -> [(Add 1 2, 3), (Mul 1 2, 2)]
                                                      27
高速化


solutions' :: [Int] -> Int -> [Expr]
solutions' ns n = [e|ns' <- choices ns, (e,m)<-
results ns' , m==n]

--式を作るうえでvalidでない演算は早めに打
ち切る
--10数秒 @ モダンなマシン

                                                  28
高速化



さらに工夫を…
・足し算や掛け算は可換なので
 (Add 2 3) と (Add 3 2)は片方でいい
・(Mul x 1) は自明なので除去
これらの条件をvalidに入れ込む


                               29
高速化


・solutionsは元の数のリストに対して階乗
で計算量が増大する
・組合せ爆発
・式の途中で計算を打ち切ると、組合せの
増加速度を抑えられる→小さな工夫が指数
的に効く


                           30

Más contenido relacionado

Was ist angesagt?

解説#74 連結リスト
解説#74 連結リスト解説#74 連結リスト
解説#74 連結リストRuo Ando
 
虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数Taketo Sano
 
XMLPro 4回目 文字入力 条件分岐
XMLPro 4回目 文字入力 条件分岐XMLPro 4回目 文字入力 条件分岐
XMLPro 4回目 文字入力 条件分岐XMLProJ2014
 
D上の関数の極値の問題
D上の関数の極値の問題D上の関数の極値の問題
D上の関数の極値の問題nabeshimamasataka
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Tetsuya Yoshida
 
第二回ミーティングスライド
第二回ミーティングスライド第二回ミーティングスライド
第二回ミーティングスライドnullzine
 
D上の関数の極値の問題
D上の関数の極値の問題 D上の関数の極値の問題
D上の関数の極値の問題 政孝 鍋島
 
D上の関数の極値の問題
D上の関数の極値の問題D上の関数の極値の問題
D上の関数の極値の問題nabeshimamasataka
 
コードを書けば複素数がわかる
コードを書けば複素数がわかるコードを書けば複素数がわかる
コードを書けば複素数がわかるTaketo Sano
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCamlHaruka Oikawa
 
ナンプレ解析ツール
ナンプレ解析ツールナンプレ解析ツール
ナンプレ解析ツールkstmshinshu
 
データ圧縮
データ圧縮データ圧縮
データ圧縮Joe Suzuki
 
ex-7. Excel での乱数
ex-7. Excel での乱数ex-7. Excel での乱数
ex-7. Excel での乱数kunihikokaneko1
 
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法nitoyon
 
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数kunihikokaneko1
 
ex-6. Excel でのルックアップ
ex-6. Excel でのルックアップex-6. Excel でのルックアップ
ex-6. Excel でのルックアップkunihikokaneko1
 

Was ist angesagt? (20)

解説#74 連結リスト
解説#74 連結リスト解説#74 連結リスト
解説#74 連結リスト
 
fanscala1 2 scalaの基本
fanscala1 2 scalaの基本fanscala1 2 scalaの基本
fanscala1 2 scalaの基本
 
虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数
 
XMLPro 4回目 文字入力 条件分岐
XMLPro 4回目 文字入力 条件分岐XMLPro 4回目 文字入力 条件分岐
XMLPro 4回目 文字入力 条件分岐
 
D上の関数の極値の問題
D上の関数の極値の問題D上の関数の極値の問題
D上の関数の極値の問題
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
 
第二回ミーティングスライド
第二回ミーティングスライド第二回ミーティングスライド
第二回ミーティングスライド
 
D上の関数の極値の問題
D上の関数の極値の問題 D上の関数の極値の問題
D上の関数の極値の問題
 
D上の関数の極値の問題
D上の関数の極値の問題D上の関数の極値の問題
D上の関数の極値の問題
 
コードを書けば複素数がわかる
コードを書けば複素数がわかるコードを書けば複素数がわかる
コードを書けば複素数がわかる
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
 
ナンプレ解析ツール
ナンプレ解析ツールナンプレ解析ツール
ナンプレ解析ツール
 
データ圧縮
データ圧縮データ圧縮
データ圧縮
 
ex-7. Excel での乱数
ex-7. Excel での乱数ex-7. Excel での乱数
ex-7. Excel での乱数
 
PRML 第14章
PRML 第14章PRML 第14章
PRML 第14章
 
R_note_01_ver1.1
R_note_01_ver1.1 R_note_01_ver1.1
R_note_01_ver1.1
 
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
 
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
ex-2. Excel での切り取りとコピーと貼り付け,Excel の関数
 
機械学習
機械学習機械学習
機械学習
 
ex-6. Excel でのルックアップ
ex-6. Excel でのルックアップex-6. Excel でのルックアップ
ex-6. Excel でのルックアップ
 

Andere mochten auch

Data.mapについて
Data.mapについてData.mapについて
Data.mapについてdekosuke
 
プログラミングHaskell 第五章
プログラミングHaskell 第五章プログラミングHaskell 第五章
プログラミングHaskell 第五章dekosuke
 
スマートフォンについて その1
スマートフォンについて その1スマートフォンについて その1
スマートフォンについて その1dekosuke
 
スタートHaskell 第二章
スタートHaskell 第二章スタートHaskell 第二章
スタートHaskell 第二章dekosuke
 
Android UIの罠
Android UIの罠Android UIの罠
Android UIの罠dekosuke
 
Javascript本19章まとめ
Javascript本19章まとめJavascript本19章まとめ
Javascript本19章まとめdekosuke
 
Ga nonogram
Ga nonogramGa nonogram
Ga nonogramdekosuke
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkVolker Hirsch
 

Andere mochten auch (8)

Data.mapについて
Data.mapについてData.mapについて
Data.mapについて
 
プログラミングHaskell 第五章
プログラミングHaskell 第五章プログラミングHaskell 第五章
プログラミングHaskell 第五章
 
スマートフォンについて その1
スマートフォンについて その1スマートフォンについて その1
スマートフォンについて その1
 
スタートHaskell 第二章
スタートHaskell 第二章スタートHaskell 第二章
スタートHaskell 第二章
 
Android UIの罠
Android UIの罠Android UIの罠
Android UIの罠
 
Javascript本19章まとめ
Javascript本19章まとめJavascript本19章まとめ
Javascript本19章まとめ
 
Ga nonogram
Ga nonogramGa nonogram
Ga nonogram
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 

Ähnlich wie Programming Haskell Chapter 11 切符番号選び

F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~Nobuhisa Koizumi
 
Analyze by StatsModels or Numpy
Analyze by StatsModels or NumpyAnalyze by StatsModels or Numpy
Analyze by StatsModels or NumpyToshiki NOGUCHI
 
言語処理系入門€5
言語処理系入門€5言語処理系入門€5
言語処理系入門€5Kenta Hattori
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミングOuka Yuka
 
Rによる繰り返しの並列処理
Rによる繰り返しの並列処理Rによる繰り返しの並列処理
Rによる繰り返しの並列処理wada, kazumi
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Etsuji Nakai
 
行列計算アルゴリズム
行列計算アルゴリズム行列計算アルゴリズム
行列計算アルゴリズムTakuo Tachibana
 
ベイズ推論による機械学習入門 第4章
ベイズ推論による機械学習入門 第4章ベイズ推論による機械学習入門 第4章
ベイズ推論による機械学習入門 第4章YosukeAkasaka
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)Satoshi Yamada
 
2013computer s1
2013computer s12013computer s1
2013computer s1munich1502
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京Yohei Sato
 
言語処理系入門3
言語処理系入門3言語処理系入門3
言語処理系入門3Kenta Hattori
 
PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。bleis tift
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)啓 小笠原
 
第三回R勉強会
第三回R勉強会第三回R勉強会
第三回R勉強会Paweł Rusin
 
命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへNaoki Kitora
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定t2tarumi
 

Ähnlich wie Programming Haskell Chapter 11 切符番号選び (20)

Pythonintro
PythonintroPythonintro
Pythonintro
 
F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~
 
Analyze by StatsModels or Numpy
Analyze by StatsModels or NumpyAnalyze by StatsModels or Numpy
Analyze by StatsModels or Numpy
 
言語処理系入門€5
言語処理系入門€5言語処理系入門€5
言語処理系入門€5
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
 
Rによる繰り返しの並列処理
Rによる繰り返しの並列処理Rによる繰り返しの並列処理
Rによる繰り返しの並列処理
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
行列計算アルゴリズム
行列計算アルゴリズム行列計算アルゴリズム
行列計算アルゴリズム
 
ベイズ推論による機械学習入門 第4章
ベイズ推論による機械学習入門 第4章ベイズ推論による機械学習入門 第4章
ベイズ推論による機械学習入門 第4章
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
 
2013computer s1
2013computer s12013computer s1
2013computer s1
 
Lispでやる記号微分
Lispでやる記号微分Lispでやる記号微分
Lispでやる記号微分
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京
 
言語処理系入門3
言語処理系入門3言語処理系入門3
言語処理系入門3
 
PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 
第三回R勉強会
第三回R勉強会第三回R勉強会
第三回R勉強会
 
命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定
 

Último

JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜Naomi Yamasaki
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版Takayuki Nakayama
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。iPride Co., Ltd.
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りiPride Co., Ltd.
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313ssuserf8ea02
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG-Audio
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析sugiuralab
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024Hideki Saito
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整えるonozaty
 
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))yoshidakids7
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」IGDA Japan SIG-Audio
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~honeshabri
 

Último (12)

JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整える
 
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
 

Programming Haskell Chapter 11 切符番号選び