SlideShare a Scribd company logo
数独のアルゴリズムを考える
各手法の改善と高速化
2015.3 Fumiya Funatsu
0. 意外と難しい数独のアルゴリズム
- 数独を解くプログラムは多数存在する
- しかし全ての問題を解けるものは少ない
数独のアルゴリズムとはどんなものなのかを少し
ずつ考えてみたい
0-1. 目的
- 数独のアルゴリズムを知る
- アルゴリズムの導出過程を知る
- 最終的に、妥当な計算量の完全なアルゴリズムを導く
0-2. サンプル問題
初級 上級
この両方をつかって、アルゴリズムを検討します
0-2. 目次
- 1章では、各種アルゴリズムを検討、改善する
- 2章では、「消去法」の問題点の改善法について検討
1. アルゴリズムの検討
1-1. 総当り法
- セルに当てはまる数字を全て検査する方法。
- メリット: 実装が簡単
- デメリット: 計算量が膨大
9x9の場合: 9^81 = 1.98e+77
= これは 1無量大数 (1e+68) よりも大きな数字。
1-1-1. 総当り法のイメージ
左図の様に
- 1セルに 9 通り
- 1列に 9^9 通り
- 9列に 9^9^9 通り
の解答パターンを全て走査することで、
総当り的に答えを見つけ出す。
1-1-2. 実装例
(1) 例えば、9x9 のセルを x+width*y 式で配列に変換する
例: [0,1,4,6, …, 0,7,5,2,0] ………………………………… (sources)
(2) 別の配列を作成し、81個の要素を1で初期化する …(ans)
(3) ansにsourcesの値をセットする関数 merge()を作成
(4) ansを81桁の9進数とみなし、incl() 関数 (map++) を作る
(5) ”merge → check → incl → merge → ...” をループすると、最終的
に答えがansにセットされる。
- 総当り法は計算量があまりに膨大だが、確実に答えが
出る
- 現実的な計算でなく、結果が出るのに相当な時間がか
かる
⇒ 別のアルゴリズムが必要
1-1-3. 考察
1-2. 空欄総当り法
- 総当り法は 既知のセル まで計算して無駄なので、分からな
いセルのみ 総当りする方法。
- “初級”問題の場合: 9^32 = 3.44e+30
- “上級”問題の場合: 9^59 = 2.00e+56
改善されたものの、依然として膨大な計算量。
しかし最適化の1ステップ
1-2-1. 空欄総当り法のイメージ
- 総当り法では、左図のように全パ
ターンを網羅する
- この改善では、各列の9^9通りから
既に分かっている数字分のパター
ンを減らす
- 具体的には 9^(9-Ncol)と少なくな
る(Ncolは各行の既知数の数)
1-2-2. 実装例
(1) 方針は基本的に”総当り法”と同じ。
(2) ans配列の要素数を、81ではなく、sourcesの0の個数に設定する。
(3) merge関数を変更する必要があり、実装に工夫が必要.
単純にマージすると個数が合わない.
(4) 案としては、sourcesとansの橋渡しをする連想配列(maps)
を作成するとマージが楽。
(5) incl関数についてはそのままでも動作すると思われる
1-2-3. 考察
- 総当り法のメリットを活かしつつ、計算量を減らすことが
可能
- しかし、未だ計算量が膨大で、問題が難しくなるほど計
算量が増えるデメリットがある。
⇒ 改善度が小さいので、別の方法を検討
1-3. 順列法
- 「ある列は、必ず1〜Nを一つずつ含む」という性質を使い、1〜N
から既知の数字を除いた数列の全パターンを検査する方法。
- 例えば9x9で、各列に4つ既知の数字があるとすると、一列のパ
ターン数は 9P5 = 9! / 4! = 15,120 …... (Pcol)
- 9列全ての組合せは Pcol ^ 9 = 4.13e+37
- 計算量は「空欄総当り法」と同程度。
(計算量が膨大なので、他の方法を検討)
1-4. 消去法
- 「あるセルに数字があると、その上下・同ブロックにはその
数字が入らない」ことを利用した手法 (*1)
- *1の消去法を各数(N)に適用し、”あるブロックに1つだけ
残った空欄”があれば、そこをNと確定する(*2)
- 最もよく利用される手法で、計算量が少ない。
- *2で最終的に確定できないセルがある場合は、問題が解け
ないという難点がある。
- そのためいくつか改善法がある (後述)
1-4-1. 手順のイメージ
黄色のマスのみに”1”が入る。
右ブロックは既に確定。続けて中央も確定。
1-4-2. 消去法の問題点1
- 実際の数独の解き方と全く同じ
- もし手動で解けないと、この手法でも
解けない
- 後述する手法を追加しないと、難易
度の高い問題を解くことは不可能
1-4-3. 消去法の問題点2
- 消去法は、数独の一般的解法で直感的
- 計算量が少なく、今までで最も妥当な手法
- しかし、最終的に ”セルに入る候補” が全て1つに絞れない
と問題が解けない のが最大の難点。
⇒ この問題を解決する方法を、次章で検討する
2. 消去法の問題を補う
2-1. 消去法+総当り法
- 消去法で解けなかったセルに関して、総当り法を適用する。
- メリット: かならず答えが出る
- デメリット: わからないセルが多いと、計算量が膨大にな
る。
- 中級程度の問題には利用価値あり、上級問題だと計算時
間が相当長くなる可能性大。
2-2. 消去法+背理法
- あるセルの数字候補を、仮に N だと仮定し、他のセルの
「候補が1つのもの」だけを解いていく。
- もし途中で矛盾があれば、N が間違いだとわかる(次頁を参
照)。
- これを消去法で解けなかったセルに適用する。
- 数独を手で解く際にも有効な方法。
- ただ、仮定した部分に戻るための機能を実装する手間があ
り、答えが出ない可能性もまれにある。
2-2-1. 補足: 背理法とは
《定義》ある命題pについて、仮にpを偽として (*1) 矛盾を導くこ
とで、pが真である (*2) と証明する方法
- 数独では1つのセルの答えは複数あるので、*1は「仮にpを
Nとして」となり*2 は「pはNでない」に置き換えることができ
る。
- つまり、矛盾さえ導くことができれば、その候補を消すことが
できるということ。
2-3. 消去法+背理法+総当り法
- 背理法において、もし答えが出なければ、残りは総当りにす
れば必ず解ける。
- 現状でおそらく、完全に解答できるアルゴリズムで最も計算
量が少ない解法。
- 99%以上の問題は消去法+背理法で済むため、計算量の
心配はまずない。
おそらく最適な解法と考えられる
2-4. 今回の結論
“ 消去法+背理法+総当り法 ”
まとめ
最後の方は早足でしたが、要するに、
数独を解く際の手法をプログラムに落としこみ、
最後は総当り的に解く
ということです。「手で解ける」= 「現実的な計算量である」とい
うことから考えると自明だったことですね。
さいごに: 是非自身でも最適な方法を考えてみて下さい。

More Related Content

What's hot

組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画までShunji Umetani
 
機械学習と主成分分析
機械学習と主成分分析機械学習と主成分分析
機械学習と主成分分析
Katsuhiro Morishita
 
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
cocodrips
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
智之 村上
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
RyuichiKanoh
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
Takuya Akiba
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
Takami Sato
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
 
RL_chapter1_to_chapter4
RL_chapter1_to_chapter4RL_chapter1_to_chapter4
RL_chapter1_to_chapter4
hiroki yamaoka
 
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
 
はじめてのパターン認識 第1章
はじめてのパターン認識 第1章はじめてのパターン認識 第1章
はじめてのパターン認識 第1章
Prunus 1350
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
 
ユークリッド最小全域木
ユークリッド最小全域木ユークリッド最小全域木
ユークリッド最小全域木
理玖 川崎
 
目指せグラフマスター
目指せグラフマスター目指せグラフマスター
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
sleepy_yoshi
 
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリングベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
宏喜 佐野
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 

What's hot (20)

組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
 
機械学習と主成分分析
機械学習と主成分分析機械学習と主成分分析
機械学習と主成分分析
 
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
RL_chapter1_to_chapter4
RL_chapter1_to_chapter4RL_chapter1_to_chapter4
RL_chapter1_to_chapter4
 
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
はじめてのパターン認識 第1章
はじめてのパターン認識 第1章はじめてのパターン認識 第1章
はじめてのパターン認識 第1章
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
 
ユークリッド最小全域木
ユークリッド最小全域木ユークリッド最小全域木
ユークリッド最小全域木
 
目指せグラフマスター
目指せグラフマスター目指せグラフマスター
目指せグラフマスター
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリングベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 

Viewers also liked

Code iq interpretation_tanaka_publish
Code iq interpretation_tanaka_publishCode iq interpretation_tanaka_publish
Code iq interpretation_tanaka_publishFixstars Corporation
 
ナンプレ解析ツール
ナンプレ解析ツールナンプレ解析ツール
ナンプレ解析ツールkstmshinshu
 
Code iq interpretation_summary_publish
Code iq interpretation_summary_publishCode iq interpretation_summary_publish
Code iq interpretation_summary_publishFixstars Corporation
 
Numpla2
Numpla2Numpla2
Numpla2machy3
 
Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発
studioshin
 
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
AtCoder Inc.
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
 
Swift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたSwift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみた
axsh co., LTD.
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 

Viewers also liked (11)

Code iq interpretation_tanaka_publish
Code iq interpretation_tanaka_publishCode iq interpretation_tanaka_publish
Code iq interpretation_tanaka_publish
 
ナンプレ解析ツール
ナンプレ解析ツールナンプレ解析ツール
ナンプレ解析ツール
 
Code iq interpretation_futatsugi
Code iq interpretation_futatsugiCode iq interpretation_futatsugi
Code iq interpretation_futatsugi
 
Code iq interpretation_summary_publish
Code iq interpretation_summary_publishCode iq interpretation_summary_publish
Code iq interpretation_summary_publish
 
Marathon mi sawa
Marathon mi sawaMarathon mi sawa
Marathon mi sawa
 
Numpla2
Numpla2Numpla2
Numpla2
 
Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発
 
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
Swift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたSwift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみた
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 

Recently uploaded

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (8)

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

数独のアルゴリズムを考える ― 各種法の改善と高速化