SlideShare a Scribd company logo
1 of 32
Download to read offline
多倍長整数の乗算と高速フーリエ変換
KMC6 回生 prime
2018/11/01
2
自己紹介
●
KMC-ID: prime
●
Twitter: @_primenumber
●
Mastodon: @prime@mstdn.poyo.me
●
KMC での活動
– 競技プログラミング
– 難解プログラミング言語
– 電子錠の管理 (root)
– 第 37 代会計
3
目次
●
コンピューターにおける整数の表現
●
多倍長整数とは
●
ナイーブな乗算アルゴリズム
●
Karatsuba 法
●
Toom-3/4 法
●
高速フーリエ変換
4
コンピューターにおける整数の表現
●
多くのコンピューターでは整数は二進数で表される
●
負の数は 2 の補数を使って表される
●
1 バイトなら -128 〜 127
●
2 バイトなら -32768 〜 32767
●
4 バイトなら -2147483648 〜 2147483647
●
8 バイトなら -9223372036854775808 〜
9223372036854775807
●
有限のバイト数では有限の大きさしか表せない
5
多倍長整数
●
8 バイトでも表せないような、大きな数値を扱いたい
ときがある
●
複数の小さな整数表現を組み合わせて大きな数値を扱う
●
非負整数 を 進数で書くと、
●
   とすれば   個の 4 バイトデータで表せる
x B
x=a0+a1 B+a2 B2
+⋯+aN BN
(0≤ai<B)
B≤232
N+1
6
ナイーブな乗算アルゴリズム
●
筆算と同様に下の桁から計算する
x=∑i=0
N
ai Bi
y=∑j=0
M
bj B
j
xy=∑i=0
N
∑j=0
M
ai bj Bi+ j
= ∑l=0
N+M
Bl
∑
i=max(0,l−M)
min(N ,l)
ai bl−i
7
Karatsuba 法
●
       とおく
     とかける
●
このとき、積  を
と書ける
●
 の桁数の積 3 回に分解できた
●
加算や減算が増えるが、計算量としては小さい
C=B⌈max(N , M )/2⌉
x=c0+c1 C
y=d0+d1 C
xy
xy=(c0+c1 C)(d0+d1 C)=c0 d0+(c1 d0+c0 d1)C+c1 d1 C2
=c0 d0(1+C)−(c1−c0)(d1−d0)C+c1 d1(C+C2
)
1
2
8
Karatsuba 法
●
 の桁数の乗算 3 回(と加算数回)に帰着できるので
これより
1
2
f (N)=3 f (
N
2
)+O( N)
f (N)∈O(N
log 3
log 2
)⊂O(N
1.585
)
9
Toom-3
●
       とおく
        と書ける
●
ここで多項式        を
とおくと、積  は   と書ける
C=B⌈max(N , M )/3⌉
x=c0+c1 C+c2 C2
y=d0+d1 C+d2 C2
f (z) , g(z) , h(z)
f (z)=c0+c1 z+c2 z2
g(z)=d0+d1 z+d2 z2
h(z)=f (z) g(z)
xy h(C)
10
Toom-3
●
  は 4 次多項式なので、
と書ける。この係数 を求めたい
●
4 次多項式は 5 点での値が分かれば一意に定まる
●
適当に を取り、
を計算する
h(z)
h(z)=e0+e1 z+e2 z2
+e3 z3
+e4 z4
ki=h(zi)=f (zi) g(zi)(0≤i≤4)
zi
ei
11
Toom-3
●
連立方程式
を解く(ヴァンデルモンド行列なので解ける)
●
あとは得られた  に を代入するだけ
(
1 z0 z0
2
z0
3
z0
4
1 z1 z1
2
z1
3
z1
4
1 z2 z2
2
z2
3
z2
4
1 z3 z3
2
z3
3
z3
4
1 z4 z4
2
z4
3
z4
4
)(
e0
e1
e2
e3
e4
)=
(
k0
k1
k2
k3
k4
)
h(z) C
12
Toom-3
●
GMP ( GNU の多倍長整数ライブラリ)では
が使われている
– inf は      とするなど特別扱い
●
 の桁数の積 5 回に帰着できる
●
計算量は
zi=0,1,−1,2,inf
h(inf )=c2 d2
1
3
O( N
log 5
log 3
)⊂O( N
1.465
)
13
Toom-4
●
整数を の桁数に分けて多項式を作る
●
結果の多項式は 6 次なので 7 点あれば決定できる
●
 の桁数の積 7 回に帰着できる
●
計算量は
1
4
1
4
O( N
log 7
log 4
)⊂O( N
1.404
)
14
さらなる高みへ
●
もっと細かく分割すれば計算量減りそう
●
 の桁数の乗算    回に帰着できそう
●
計算量は      になる…?
–    なら   …?
1
K 2 K−1
O( N
log(2 K −1)
log K
)
K →∞ O( N)
15
さらなる高みへ
●
もっと細かく分割すれば計算量減りそう
●
 の桁数の乗算    回に帰着できそう
●
計算量は      になる…?
–    なら   …?
1
K 2 K−1
O( N
log(2 K −1)
log K
)
K →∞ O( N)これは嘘
16
さらなる高みへ
●
 が大きい場合、多項式の値の計算や連立方程式を解く
計算の計算量が無視できない
●
その計算量はともに
●
この計算量を小さくしたい
K
O(K
2
(
N
K
))=O(KN)
17
多項式の値の計算
●
多項式の値の計算は行列とベクトルの積で書ける
●
行列を 、ベクトルを  とおけば
(
1 z0 z0
2
⋯ z0
N
1 z1 z1
2
⋯ z1
N
1 z2 z2
2
⋯ z2
N
⋮ ⋮ ⋮ ⋱ ⋮
1 zN zN
2
⋯ zN
N
)(
a0
a1
a2
⋮
aN
)=
(
k0
k1
k2
⋮
kN
)
Z a , k
Za=k
18
連立方程式の求解
●
連立方程式   の解は
とかける
●
これも行列とベクトルの積
●
 と  がともにベクトルに掛けるときの計算量が
小さければ良い
– そうなるような が欲しい
Ze=k
e=Z−1
k
Z Z−1
zi
19
高速フーリエ変換
●
実は        とおくと良い
– それぞれ 1 の N 乗根
●
        とおくと
●
このときの行列ベクトル積を高速に計算する
アルゴリズムが高速フーリエ変換
●
   のとき、   とおくと
zj=exp(2πi
j
N
)
WN=exp(2πi
1
N
) zj=W N
j
N=4 Z=
(
W0
W0
W0
W0
W0
W1
W2
W3
W0
W2
W4
W6
W0
W3
W6
W9)W=W4
20
高速フーリエ変換
●
  をより簡単な演算に帰着することを考える
●
 の添字の順番を入れ替えると
Za
Za=
(
W0
W0
W0
W0
W0
W1
W2
W3
W0
W2
W4
W6
W0
W3
W6
W9)(
a0
a1
a2
a3
)
(
W0
W0
W0
W0
W0
W2
W1
W3
W0
W4
W2
W6
W0
W6
W3
W9)(
a0
a2
a1
a3
)
a
21
高速フーリエ変換
●
   を利用すると、WN
=1
(
W0
W0
W0
W0
W0
W0
W0
W2
W1
W0
W1
W2
W0
W0
W2
W0
W2
W0
W0
W2
W3
W0
W3
W2)(
a0
a2
a1
a3
)
=
(
1 0 W0
0
0 1 0 W1
1 0 W2
0
0 1 0 W3)(
W2
0
W2
0
0 0
W2
0
W2
1
0 0
0 0 W2
0
W2
0
0 0 W2
0
W2
1)(
a0
a2
a1
a3
)
22
高速フーリエ変換
●
   のとき    とすると、N=8
Za=
(
W0
W0
W0
W0
W0
W0
W0
W0
W0
W1
W2
W3
W4
W5
W6
W7
W0
W2
W4
W6
W8
W10
W12
W14
W0
W3
W6
W9
W12
W15
W18
W21
W0
W4
W8
W12
W16
W20
W24
W28
W0
W5
W10
W15
W20
W25
W30
W35
W0
W6
W12
W18
W24
W30
W36
W42
W0
W7
W14
W21
W28
W35
W42
W49
)(
a0
a1
a2
a3
a4
a5
a6
a7
)
W=W8
23
高速フーリエ変換
●
 の添字の順番を入れ替えると
(
W0
W0
W0
W0
W0
W0
W0
W0
W0
W4
W2
W6
W1
W5
W3
W7
W0
W8
W4
W12
W2
W10
W6
W14
W0
W12
W6
W18
W3
W15
W9
W21
W0
W16
W8
W24
W4
W20
W12
W28
W0
W20
W10
W30
W5
W25
W15
W35
W0
W24
W12
W36
W6
W30
W18
W42
W0
W28
W14
W42
W7
W35
W21
W49
)(
a0
a4
a2
a6
a1
a5
a3
a7
)
a
24
高速フーリエ変換
●
   を利用すると、
(
W0
W0
W0
W0
W0
W0
W0
W0
W0
W0
W0
W0
W0
W4
W2
W6
W1
W0
W1
W4
W1
W2
W1
W6
W0
W8
W4
W12
W2
W0
W2
W8
W2
W4
W2
W12
W0
W12
W6
W18
W3
W0
W3
W12
W3
W6
W3
W18
W0
W0
W0
W0
W4
W0
W4
W0
W4
W0
W4
W0
W0
W4
W2
W6
W5
W0
W5
W4
W5
W2
W5
W6
W0
W8
W4
W12
W6
W0
W6
W8
W6
W4
W6
W12
W0
W12
W6
W18
W7
W0
W7
W12
W7
W6
W7
W18
)(
a0
a4
a2
a6
a1
a5
a3
a7
)
W8
=1
25
高速フーリエ変換
●
 は2つの行列   で  と表せるZ Z0, Z1
Z0=
(
1 0 0 0 W0
0 0 0
0 1 0 0 0 W1
0 0
0 0 1 0 0 0 W2
0
0 0 0 1 0 0 0 W3
1 0 0 0 W4
0 0 0
0 1 0 0 0 W5
0 0
0 0 1 0 0 0 W6
0
0 0 0 1 0 0 0 W7
)
Z0 Z1
26
高速フーリエ変換
●
 は2つの行列   で  と表せるZ Z0, Z1
Z1=
(
W4
0
W4
0
W4
0
W4
0
0 0 0 0
W4
0
W4
2
W4
1
W4
3
0 0 0 0
W4
0
W4
4
W4
2
W4
6
0 0 0 0
W4
0
W4
6
W4
3
W4
9
0 0 0 0
0 0 0 0 W4
0
W4
0
W4
0
W4
0
0 0 0 0 W4
0
W4
2
W4
1
W4
3
0 0 0 0 W4
0
W4
4
W4
2
W4
6
0 0 0 0 W4
0
W4
6
W4
3
W4
9
)
Z0 Z1
27
高速フーリエ変換
●
 は   のときの変換を2回やっているだけ
–    のときのようにさらに分解できる
●
同様にして   のときの計算は   のときの計算
2 回(と重み付きの足し算  )に帰着できる
●
最初に 個の 桁精度の 1 の 乗根を求めておく
●
 桁の乗算の計算量を   とすると
Z1 N=4
N=4
N=2 p N= p
Z0
N ND
h(D)D
f (N , D)=2 f (
N
2,
D)+O(Nh( D))
f (N , D)∈O( Nh(D)log N)
28
高速逆フーリエ変換
●
   のときの  は
と書ける
●
同様にして高速に計算可能
N=4 Z−1
Z−1
=
1
4
(
W0
W0
W0
W0
W0
W−1
W−2
W−3
W0
W−2
W−4
W−6
W0
W−3
W−6
W−9)
29
高速フーリエ変換による多倍長乗算
●
整数  を   次の多項式に変換する
●
それぞれ 次の高速フーリエ変換する
●
同じ添字の要素同士をかけ合わせる
●
 次の高速逆フーリエ変換する
●
繰り上がりの処理をして整数に直す
N
2
−1a ,b
N
N
30
高速フーリエ変換による多倍長乗算
●
 分割したときの計算量は、フーリエ変換時に
      桁の精度が必要なので、
●
     として計算すると
などが示せる(がんばればもう少し抑えられる)
hK ( N)=O(Kh(log K +
N
K
)log K + N
log(2 K −1)
log K
)
K
O(log K +
N
K
)
K=
N
log N
h( N)∈O( N log N log2
log N)
31
まとめ
●
多項式を用いて多倍長乗算を高速化した
●
その際に高速フーリエ変換を用いた
32
おわり

More Related Content

What's hot

プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門Yoichi Iwata
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~Takuya Akiba
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめYuichiro MInato
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)AtCoder Inc.
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門irrrrr
 
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013Shuyo Nakatani
 
自動定理証明の紹介
自動定理証明の紹介自動定理証明の紹介
自動定理証明の紹介Masahiro Sakai
 
基礎線形代数講座
基礎線形代数講座基礎線形代数講座
基礎線形代数講座SEGADevTech
 
文字列検索のいろいろ
文字列検索のいろいろ文字列検索のいろいろ
文字列検索のいろいろKazuma Mikami
 
3次元の凸包を求める
3次元の凸包を求める3次元の凸包を求める
3次元の凸包を求めるabc3141
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情Yuta Kikuchi
 

What's hot (20)

プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
Chokudai search
Chokudai searchChokudai search
Chokudai search
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめ
 
ドロネー三角形分割
ドロネー三角形分割ドロネー三角形分割
ドロネー三角形分割
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
 
自動定理証明の紹介
自動定理証明の紹介自動定理証明の紹介
自動定理証明の紹介
 
基礎線形代数講座
基礎線形代数講座基礎線形代数講座
基礎線形代数講座
 
文字列検索のいろいろ
文字列検索のいろいろ文字列検索のいろいろ
文字列検索のいろいろ
 
3次元の凸包を求める
3次元の凸包を求める3次元の凸包を求める
3次元の凸包を求める
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
動的計画法を極める!
動的計画法を極める!動的計画法を極める!
動的計画法を極める!
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
Rolling hash
Rolling hashRolling hash
Rolling hash
 
線形計画法入門
線形計画法入門線形計画法入門
線形計画法入門
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 

Similar to 多倍長整数の乗算と高速フーリエ変換

GPUによる多倍長整数乗算の高速化手法の提案
GPUによる多倍長整数乗算の高速化手法の提案GPUによる多倍長整数乗算の高速化手法の提案
GPUによる多倍長整数乗算の高速化手法の提案Koji Kitano
 
University CodeSprint 4 - Magic value
University CodeSprint 4 - Magic valueUniversity CodeSprint 4 - Magic value
University CodeSprint 4 - Magic valuesatanic
 
Icml yomikai 07_16
Icml yomikai 07_16Icml yomikai 07_16
Icml yomikai 07_16Yo Ehara
 
Sec15 dynamic programming
Sec15 dynamic programmingSec15 dynamic programming
Sec15 dynamic programmingKeisuke OTAKI
 
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説AtCoder Inc.
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Seiya Tokui
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)RCCSRENKEI
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5sleepy_yoshi
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装MITSUNARI Shigeo
 
K shapes zemiyomi
K shapes zemiyomiK shapes zemiyomi
K shapes zemiyomikenyanonaka
 
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしいKazkuki Oakamoto
 
130323 slide all
130323 slide all130323 slide all
130323 slide allikea0064
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
 
複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフShintaro Takemura
 
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video UnderstandingToru Tamaki
 

Similar to 多倍長整数の乗算と高速フーリエ変換 (20)

GPUによる多倍長整数乗算の高速化手法の提案
GPUによる多倍長整数乗算の高速化手法の提案GPUによる多倍長整数乗算の高速化手法の提案
GPUによる多倍長整数乗算の高速化手法の提案
 
University CodeSprint 4 - Magic value
University CodeSprint 4 - Magic valueUniversity CodeSprint 4 - Magic value
University CodeSprint 4 - Magic value
 
Icml yomikai 07_16
Icml yomikai 07_16Icml yomikai 07_16
Icml yomikai 07_16
 
Sec15 dynamic programming
Sec15 dynamic programmingSec15 dynamic programming
Sec15 dynamic programming
 
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
 
optimal Ate pairing
optimal Ate pairingoptimal Ate pairing
optimal Ate pairing
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
 
More modern gpu
More modern gpuMore modern gpu
More modern gpu
 
PRML_from5.1to5.3.1
PRML_from5.1to5.3.1PRML_from5.1to5.3.1
PRML_from5.1to5.3.1
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
K shapes zemiyomi
K shapes zemiyomiK shapes zemiyomi
K shapes zemiyomi
 
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
 
130323 slide all
130323 slide all130323 slide all
130323 slide all
 
T77 episteme
T77 epistemeT77 episteme
T77 episteme
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ
 
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
 

More from 京大 マイコンクラブ

かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話京大 マイコンクラブ
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ京大 マイコンクラブ
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?京大 マイコンクラブ
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜京大 マイコンクラブ
 
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会京大 マイコンクラブ
 
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」京大 マイコンクラブ
 
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編京大 マイコンクラブ
 

More from 京大 マイコンクラブ (20)

テキストファイルを読む💪 第1回
テキストファイルを読む💪  第1回テキストファイルを読む💪  第1回
テキストファイルを読む💪 第1回
 
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
 
Common Lisp入門
Common Lisp入門Common Lisp入門
Common Lisp入門
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
 
Geometry with Unity
Geometry with UnityGeometry with Unity
Geometry with Unity
 
セミコロンレスc++
セミコロンレスc++セミコロンレスc++
セミコロンレスc++
 
エンジニアと健康
エンジニアと健康エンジニアと健康
エンジニアと健康
 
女の子になれなかった人のために
女の子になれなかった人のために女の子になれなかった人のために
女の子になれなかった人のために
 
Pietで競プロしよう
Pietで競プロしようPietで競プロしよう
Pietで競プロしよう
 
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったらもし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
 
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
 
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
 
Altseed
AltseedAltseed
Altseed
 
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
 
C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回
 

多倍長整数の乗算と高速フーリエ変換