Enviar búsqueda
Cargar
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
•
389 recomendaciones
•
29,383 vistas
Taketo Sano
Seguir
iOSDC 2017
Leer menos
Leer más
Educación
Denunciar
Compartir
Denunciar
Compartir
1 de 42
Descargar ahora
Descargar para leer sin conexión
Recomendados
Freer Monads, More Extensible Effects
Freer Monads, More Extensible Effects
Hiromi Ishii
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
nginx入門
nginx入門
Takashi Takizawa
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
Yoshihiro Mizoguchi
Python 学習教材 (~299ページ)
Python 学習教材 (~299ページ)
Jun MITANI
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
Recomendados
Freer Monads, More Extensible Effects
Freer Monads, More Extensible Effects
Hiromi Ishii
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
nginx入門
nginx入門
Takashi Takizawa
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
Yoshihiro Mizoguchi
Python 学習教材 (~299ページ)
Python 学習教材 (~299ページ)
Jun MITANI
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
Yukiya Hayashi
Crfと素性テンプレート
Crfと素性テンプレート
Kei Uchiumi
MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較
Shinya Sugiyama
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題
joisino
Wrapping a C++ library with Cython
Wrapping a C++ library with Cython
fuzzysphere
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達
Azaika At
qubitによる波動関数の虚時間発展のシミュレーション: a review
qubitによる波動関数の虚時間発展のシミュレーション: a review
Maho Nakata
最適化計算の概要まとめ
最適化計算の概要まとめ
Yuichiro MInato
これから Haskell を書くにあたって
これから Haskell を書くにあたって
Tsuyoshi Matsudate
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
T. Suwa
ラムダ計算入門
ラムダ計算入門
Eita Sugimoto
Monad tutorial
Monad tutorial
Hideyuki Tanaka
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
Ichigaku Takigawa
グラフデータの機械学習における特徴表現の設計と学習
グラフデータの機械学習における特徴表現の設計と学習
Ichigaku Takigawa
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
Lie-Trotter-Suzuki分解、特にフラクタル分解について
Lie-Trotter-Suzuki分解、特にフラクタル分解について
Maho Nakata
自由エネルギー原理と視覚的意識 2019-06-08
自由エネルギー原理と視覚的意識 2019-06-08
Masatoshi Yoshida
Александр Зимин (Alexander Zimin) — Магия Swift
Александр Зимин (Alexander Zimin) — Магия Swift
CocoaHeads
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
Badoo Development
Más contenido relacionado
La actualidad más candente
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
Yukiya Hayashi
Crfと素性テンプレート
Crfと素性テンプレート
Kei Uchiumi
MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較
Shinya Sugiyama
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題
joisino
Wrapping a C++ library with Cython
Wrapping a C++ library with Cython
fuzzysphere
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達
Azaika At
qubitによる波動関数の虚時間発展のシミュレーション: a review
qubitによる波動関数の虚時間発展のシミュレーション: a review
Maho Nakata
最適化計算の概要まとめ
最適化計算の概要まとめ
Yuichiro MInato
これから Haskell を書くにあたって
これから Haskell を書くにあたって
Tsuyoshi Matsudate
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
T. Suwa
ラムダ計算入門
ラムダ計算入門
Eita Sugimoto
Monad tutorial
Monad tutorial
Hideyuki Tanaka
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
Ichigaku Takigawa
グラフデータの機械学習における特徴表現の設計と学習
グラフデータの機械学習における特徴表現の設計と学習
Ichigaku Takigawa
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
Lie-Trotter-Suzuki分解、特にフラクタル分解について
Lie-Trotter-Suzuki分解、特にフラクタル分解について
Maho Nakata
自由エネルギー原理と視覚的意識 2019-06-08
自由エネルギー原理と視覚的意識 2019-06-08
Masatoshi Yoshida
La actualidad más candente
(20)
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
Crfと素性テンプレート
Crfと素性テンプレート
MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較
Pythonによる黒魔術入門
Pythonによる黒魔術入門
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題
Wrapping a C++ library with Cython
Wrapping a C++ library with Cython
充足可能性問題のいろいろ
充足可能性問題のいろいろ
コードに潜むC++の未定義動作達
コードに潜むC++の未定義動作達
qubitによる波動関数の虚時間発展のシミュレーション: a review
qubitによる波動関数の虚時間発展のシミュレーション: a review
最適化計算の概要まとめ
最適化計算の概要まとめ
これから Haskell を書くにあたって
これから Haskell を書くにあたって
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
ラムダ計算入門
ラムダ計算入門
Monad tutorial
Monad tutorial
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
グラフデータの機械学習における特徴表現の設計と学習
グラフデータの機械学習における特徴表現の設計と学習
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Binary indexed tree
Binary indexed tree
Lie-Trotter-Suzuki分解、特にフラクタル分解について
Lie-Trotter-Suzuki分解、特にフラクタル分解について
自由エネルギー原理と視覚的意識 2019-06-08
自由エネルギー原理と視覚的意識 2019-06-08
Similar a Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
Александр Зимин (Alexander Zimin) — Магия Swift
Александр Зимин (Alexander Zimin) — Магия Swift
CocoaHeads
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
Badoo Development
oop objects_classes
oop objects_classes
sidra tauseef
Functional Programming In Java
Functional Programming In Java
Andrei Solntsev
function in c
function in c
subam3
functions
functions
Makwana Bhavesh
Hive Functions Cheat Sheet
Hive Functions Cheat Sheet
Hortonworks
Wien15 java8
Wien15 java8
Jaanus Pöial
Inheritance compiler support
Inheritance compiler support
Syed Zaid Irshad
All Aboard The Scala-to-PureScript Express!
All Aboard The Scala-to-PureScript Express!
John De Goes
Mastering Kotlin Standard Library
Mastering Kotlin Standard Library
Nelson Glauber Leal
Un dsl pour ma base de données
Un dsl pour ma base de données
Romain Lecomte
documents.pub_new-features-in-java-8-it-jpoialjavanaitedwien15java8pdf-java-8...
documents.pub_new-features-in-java-8-it-jpoialjavanaitedwien15java8pdf-java-8...
Akaks
Lego: A brick system build by scala
Lego: A brick system build by scala
lunfu zhong
Oop objects_classes
Oop objects_classes
sidra tauseef
Kotlin For Android - Functions (part 3 of 7)
Kotlin For Android - Functions (part 3 of 7)
Gesh Markov
Virtual function in C++ Pure Virtual Function
Virtual function in C++ Pure Virtual Function
Kamlesh Makvana
Делаем пользовательское Api на базе Shapeless
Делаем пользовательское Api на базе Shapeless
Вадим Челышов
TI1220 Lecture 6: First-class Functions
TI1220 Lecture 6: First-class Functions
Eelco Visser
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Ruslan Shevchenko
Similar a Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
(20)
Александр Зимин (Alexander Zimin) — Магия Swift
Александр Зимин (Alexander Zimin) — Магия Swift
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
oop objects_classes
oop objects_classes
Functional Programming In Java
Functional Programming In Java
function in c
function in c
functions
functions
Hive Functions Cheat Sheet
Hive Functions Cheat Sheet
Wien15 java8
Wien15 java8
Inheritance compiler support
Inheritance compiler support
All Aboard The Scala-to-PureScript Express!
All Aboard The Scala-to-PureScript Express!
Mastering Kotlin Standard Library
Mastering Kotlin Standard Library
Un dsl pour ma base de données
Un dsl pour ma base de données
documents.pub_new-features-in-java-8-it-jpoialjavanaitedwien15java8pdf-java-8...
documents.pub_new-features-in-java-8-it-jpoialjavanaitedwien15java8pdf-java-8...
Lego: A brick system build by scala
Lego: A brick system build by scala
Oop objects_classes
Oop objects_classes
Kotlin For Android - Functions (part 3 of 7)
Kotlin For Android - Functions (part 3 of 7)
Virtual function in C++ Pure Virtual Function
Virtual function in C++ Pure Virtual Function
Делаем пользовательское Api на базе Shapeless
Делаем пользовательское Api на базе Shapeless
TI1220 Lecture 6: First-class Functions
TI1220 Lecture 6: First-class Functions
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Más de Taketo Sano
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
Taketo Sano
トポロジーと圏論の夜明け
トポロジーと圏論の夜明け
Taketo Sano
Swift で数学研究のススメ
Swift で数学研究のススメ
Taketo Sano
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
Taketo Sano
特性類の気持ち
特性類の気持ち
Taketo Sano
山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門
Taketo Sano
何もないところから数を作る
何もないところから数を作る
Taketo Sano
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
Taketo Sano
情報幾何学 #2.4
情報幾何学 #2.4
Taketo Sano
情報幾何学 #2 #infogeo16
情報幾何学 #2 #infogeo16
Taketo Sano
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
Taketo Sano
何もないところから数を作る
何もないところから数を作る
Taketo Sano
objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望)
Taketo Sano
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
Taketo Sano
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
Taketo Sano
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
Taketo Sano
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
Taketo Sano
2015 02-18 xxx-literalconvertible
2015 02-18 xxx-literalconvertible
Taketo Sano
let UIWebView as WKWebView
let UIWebView as WKWebView
Taketo Sano
プログラマのための線形代数再入門
プログラマのための線形代数再入門
Taketo Sano
Más de Taketo Sano
(20)
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
トポロジーと圏論の夜明け
トポロジーと圏論の夜明け
Swift で数学研究のススメ
Swift で数学研究のススメ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
特性類の気持ち
特性類の気持ち
山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門
何もないところから数を作る
何もないところから数を作る
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
情報幾何学 #2.4
情報幾何学 #2.4
情報幾何学 #2 #infogeo16
情報幾何学 #2 #infogeo16
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
何もないところから数を作る
何もないところから数を作る
objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望)
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
2015 02-18 xxx-literalconvertible
2015 02-18 xxx-literalconvertible
let UIWebView as WKWebView
let UIWebView as WKWebView
プログラマのための線形代数再入門
プログラマのための線形代数再入門
Último
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
Mr Bounab Samir
Concurrency Control in Database Management system
Concurrency Control in Database Management system
Christalin Nelson
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
karenfajardo43
Transaction Management in Database Management System
Transaction Management in Database Management System
Christalin Nelson
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
mary850239
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Quiz Club NITW
CHEST Proprioceptive neuromuscular facilitation.pptx
CHEST Proprioceptive neuromuscular facilitation.pptx
AneriPatwari
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
Mae Pangan
Expanded definition: technical and operational
Expanded definition: technical and operational
ssuser3e220a
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
deepaannamalai16
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx
mary850239
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
DhatriParmar
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Jemuel Francisco
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
Sri Sairam College Of Engineering Bengaluru
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17
Celine George
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx
mary850239
ClimART Action | eTwinning Project
ClimART Action | eTwinning Project
jordimapav
Indexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdf
Christalin Nelson
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
Excellence Foundation for South Sudan
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
Stan Meyer
Último
(20)
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
Concurrency Control in Database Management system
Concurrency Control in Database Management system
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Transaction Management in Database Management System
Transaction Management in Database Management System
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
CHEST Proprioceptive neuromuscular facilitation.pptx
CHEST Proprioceptive neuromuscular facilitation.pptx
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
Expanded definition: technical and operational
Expanded definition: technical and operational
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx
ClimART Action | eTwinning Project
ClimART Action | eTwinning Project
Indexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdf
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
protocol AdditiveGroup {
// static var zero: Self { get } // static func + (a: Self, b: Self) -> Self // prefix static func - (x: Self) -> Self // } extension AdditiveGroup { static func -(a: Self, b: Self) -> Self { return (a + (-b)) // } }
18.
protocol AdditiveGroup {
// … } protocol Ring: AdditiveGroup { // static var identity: Self { get } // 1 static func * (a: Self, b: Self) -> Self // var inverse: Self? { get } // (optional) }
19.
protocol AdditiveGroup {
// … } protocol Ring: AdditiveGroup { // … } protocol Field: Ring {} // extension Field { static func / (a: Self, b: Self) -> Self { // return a * b.inverse! // 0 } }
20.
extension Int: Ring
{ // Int static var zero: Int { return 0 } static var identity: Int { return 1 } } // Int
21.
struct Rational: Field
{ // private let p, q: Int init(_ p: Int, _ q: Int) { (self.p, self.q) = (p, q) } static var zero: Int { return Rational(0, 1) } static var identity: Int { return Rational(1, 1) } var inverse: Rational? { // return (p != 0) ? Rational(q, p) : nil } …
22.
struct Rational: Field
{ … static func + (a: Rational, b: Rational) -> Rational { return Rational(a.p * b.q + a.q * b.p, a.q * b.q) } static prefix func - (a: Rational) -> Rational { return Rational(-a.p, a.q) } static func * (a: Rational, b: Rational) -> Rational { return Rational(a.p * b.p, a.q * b.q) } }
23.
24.
25.
26.
27.
protocol EuclideanRing: Ring
{ // static func eucDiv(_ a: Self, _ b: Self) -> (q: Self, r: Self) // } extension EuclideanRing { static func % (_ a: Self, b: Self) -> Self { // return Self.eucDiv(a, b).r } }
28.
extension Int: EuclideanRing
{ // Int EuclideanRing static func eucDiv(_ a: Int, _ b: Int) -> (q: Int, r: Int) { // let q = a / b return (q: q, r: a - q * b) } }
29.
struct Polynomial<K: Field>:
EuclideanRing { public let coeffs: [K] public init(_ coeffs: K...) { self.coeffs = coeffs } public static func + (f: Polynomial<K>, g: Polynomial<K>) -> Polynomial<K> { return Polynomial<K>(degree: max(f.degree, g.degree)) { f.coeff($0) + g.coeff($0) } } public static prefix func - (f: Polynomial<K>) -> Polynomial<K> { return f.map { -$0 } } public static func * (f: Polynomial<K>, g: Polynomial<K>) -> Polynomial<K> { … } …
30.
struct Polynomial<K: Field>:
EuclideanRing { … static func eucDiv<K: Field>(_ f: Polynomial<K>, _ g: Polynomial<K>) -> (q: Polynomial<K>, r: Polynomial<K>) { return (0 ... max(0, f.degree - g.degree)) .reversed() .reduce( (0, f) ) { (result: (Polynomial<K>, Polynomial<K>), degree: Int) in let (q, r) = result let m = eucDivMonomial(r, g) return (q + m.q, m.r) } } }
31.
public func gcd<R:
EuclideanRing>(_ a: R, _ b: R) -> R { switch b { case 0: return a default: return gcd(b, a % b) } }
32.
33.
34.
let a =
sqrt(2.0) // 1.41421356… a * a == 2.0 // false
Descargar ahora