Bookmarks    
P値の計算    
比の計算    
行列式    
逆行列    
円の計算    
球の体積    
年齢計算    
日数計算    
曜日計算    
時差計算    
複利計算    
単利計算    
利息計算    
ROIの計算    
IRRの計算    
GDPの計算    
CAGR計算    
BMI計算機    
TDEE計算機    
1RM計算機    
露点温度    
進数変換    
給与換算    
燃費計算    
生コン量    
外壁面積    
   追加
確率・ランダムの計算ツール
2つの独立な事象の確率
2つの独立な事象の確率
2つの事象の確率(逆算)
2つの事象の確率(逆算)
くり返したときの確率
くり返したときの確率
条件付き確率・ベイズの定理
条件付き確率・ベイズの定理
期待値計算機
期待値計算機
二項分布の計算機
二項分布の計算機
順列・組み合わせ
順列・組み合わせ
円順列・じゅず順列
円順列・じゅず順列
重複順列・重複組合せ
重複順列・重複組合せ
乱数ジェネレーター
乱数ジェネレーター
平均・統計の計算ツール
平均計算機
平均計算機
代表値計算機(最頻値ほか)
代表値計算機(最頻値ほか)
標準偏差計算機
標準偏差計算機
四分位数計算機
四分位数計算機
度数分布表 計算機
度数分布表 計算機
相関係数計算機
相関係数計算機
正規分布の確率
正規分布の確率
Zスコアの計算
Zスコアの計算
信頼区間の計算
信頼区間の計算
サンプルサイズの計算
サンプルサイズの計算
標本調査の計算
標本調査の計算
P値の計算
P値の計算
割合・パーセントの計算ツール
割合・パーセントの計算
割合・パーセントの計算
増減率の計算
増減率の計算
パーセント差
パーセント差
誤差率の計算
誤差率の計算
比の計算
比の計算
割引計算機
割引計算機
消費税の計算
消費税の計算
利益率計算機
利益率計算機
速さの計算ツール
速さ計算機
速さ計算機
密度・濃度の計算ツール
密度計算機
密度計算機
モル濃度計算機
モル濃度計算機
分子量・モル質量
分子量・モル質量
物理・電気工学の計算ツール
オームの法則の計算
オームの法則の計算
W・A・V の相互換算
W・A・V の相互換算
抵抗器カラーコードの計算
抵抗器カラーコードの計算
電圧降下の計算
電圧降下の計算
単位の換算の計算ツール
坪・畳・㎡換算
坪・畳・㎡換算
重さの単位換算
重さの単位換算
靴サイズの変換
靴サイズの変換
整数・正負の数の計算ツール
割り算の筆算(商と余り)
割り算の筆算(商と余り)
最小公倍数計算機
最小公倍数計算機
最大公約数
最大公約数
正負の数の計算機
正負の数の計算機
素因数分解
素因数分解
一次不定方程式計算機
一次不定方程式計算機
合同式・余りの計算機
合同式・余りの計算機
約数計算機
約数計算機
ローマ数字変換
ローマ数字変換
分数・小数・端数処理の計算ツール
分数計算機
分数計算機
帯分数計算機
帯分数計算機
約分計算機
約分計算機
分数から小数への変換
分数から小数への変換
小数から分数への変換
小数から分数への変換
四捨五入・切り上げ・切り捨て
四捨五入・切り上げ・切り捨て
方程式・不等式の計算ツール
一次方程式計算機
一次方程式計算機
連立方程式計算機
連立方程式計算機
二次方程式の解の公式
二次方程式の解の公式
絶対値の方程式・不等式
絶対値の方程式・不等式
二次不等式 計算機
二次不等式 計算機
三次方程式計算機
三次方程式計算機
多項式・式の展開の計算ツール
文字式の計算機
文字式の計算機
因数分解計算機
因数分解計算機
式の展開 計算機
式の展開 計算機
多項式の割り算計算機
多項式の割り算計算機
二項定理の計算機
二項定理の計算機
平方根・n乗根の計算ツール
根号の簡約
根号の簡約
分母の有理化
分母の有理化
累乗根の計算
累乗根の計算
指数・対数の計算ツール
べき乗計算機
べき乗計算機
対数計算機
対数計算機
常用対数と桁数
常用対数と桁数
科学的記数法
科学的記数法
科学的記数法の計算
科学的記数法の計算
半減期計算機
半減期計算機
複素数の計算ツール
複素数計算機
複素数計算機
複素数の極形式変換
複素数の極形式変換
ド・モアブルの定理
ド・モアブルの定理
関数・グラフの計算ツール
直線の傾きの計算
直線の傾きの計算
一次関数計算機
一次関数計算機
比例・反比例 計算機
比例・反比例 計算機
二次関数 y=ax² 計算機
二次関数 y=ax² 計算機
2点間の距離の計算
2点間の距離の計算
3D空間の2点間の距離の計算
3D空間の2点間の距離の計算
内分点・外分点の計算
内分点・外分点の計算
点と直線の距離 計算機
点と直線の距離 計算機
緯度経度の距離計算
緯度経度の距離計算
平方完成 計算機
平方完成 計算機
円の方程式 計算機
円の方程式 計算機
二次曲線計算機
二次曲線計算機
極座標と直交座標の変換
極座標と直交座標の変換
微分・積分の計算ツール
極限計算機
極限計算機
導関数計算機
導関数計算機
微分公式の計算機
微分公式の計算機
接線・法線 計算機
接線・法線 計算機
定積分計算機
定積分計算機
不定積分計算機
不定積分計算機
2曲線間の面積
2曲線間の面積
回転体の体積 計算機
回転体の体積 計算機
数列の計算ツール
等差数列の計算
等差数列の計算
等比数列の計算
等比数列の計算
Σ(シグマ)計算機
Σ(シグマ)計算機
フィボナッチ数列の計算
フィボナッチ数列の計算
漸化式計算機
漸化式計算機
ベクトルの計算ツール
ベクトルの計算
ベクトルの計算
外積の計算
外積の計算
行列の計算ツール
行列の計算
行列の計算
行列式
行列式
逆行列
逆行列
平面図形の計算ツール
三角比の計算
三角比の計算
度とラジアンの変換
度とラジアンの変換
三角関数の合成
三角関数の合成
三角形計算機
三角形計算機
三角形の面積計算機
三角形の面積計算機
直角三角形の計算
直角三角形の計算
三平方の定理の計算
三平方の定理の計算
多角形の内角・外角
多角形の内角・外角
相似比・面積比・体積比
相似比・面積比・体積比
平行線と角
平行線と角
長方形の面積
長方形の面積
平行四辺形の面積
平行四辺形の面積
台形の面積
台形の面積
円の計算
円の計算
扇形の面積
扇形の面積
円周角の定理
円周角の定理
楕円の面積
楕円の面積
空間図形の計算ツール
立方体の体積
立方体の体積
立方体の表面積
立方体の表面積
直方体の体積
直方体の体積
直方体の表面積
直方体の表面積
円柱の体積
円柱の体積
円柱の表面積
円柱の表面積
球の体積
球の体積
球の表面積
球の表面積
球欠(球冠)の体積
球欠(球冠)の体積
球冠の表面積
球冠の表面積
楕円体の体積
楕円体の体積
楕円体の表面積
楕円体の表面積
四角錐の体積
四角錐の体積
四角錐の表面積
四角錐の表面積
円錐の体積
円錐の体積
円錐の表面積
円錐の表面積
円錐台の体積
円錐台の体積
円錐台の表面積
円錐台の表面積
パイプ(管)の体積
パイプ(管)の体積
カプセル形の体積
カプセル形の体積
カプセルの表面積
カプセルの表面積
日付・時間の計算ツール
年齢計算
年齢計算
日数計算
日数計算
○日後・○日前の日付
○日後・○日前の日付
○時間後・○時間前の日時
○時間後・○時間前の日時
曜日計算
曜日計算
時間の足し算・引き算
時間の足し算・引き算
時差計算
時差計算
勤務時間計算
勤務時間計算
時間差の計算
時間差の計算
タイムカード計算
タイムカード計算
金融・経済の計算ツール
複利計算
複利計算
単利計算
単利計算
利息計算
利息計算
ファイナンス計算機
ファイナンス計算機
現在価値の計算
現在価値の計算
将来価値の計算
将来価値の計算
ROIの計算
ROIの計算
IRRの計算
IRRの計算
回収期間の計算
回収期間の計算
平均リターンの計算
平均リターンの計算
GDPの計算
GDPの計算
Webマーケ・広告指標の計算ツール
クリック率(CTR)の計算
クリック率(CTR)の計算
コンバージョン率(CVR)の計算
コンバージョン率(CVR)の計算
CPC・CPM・CPA計算機
CPC・CPM・CPA計算機
ROAS(広告費用対効果)の計算
ROAS(広告費用対効果)の計算
損益分岐CPA・許容CPA計算機
損益分岐CPA・許容CPA計算機
顧客生涯価値(LTV)の計算
顧客生涯価値(LTV)の計算
顧客獲得コスト(CAC)とLTV/CAC比
顧客獲得コスト(CAC)とLTV/CAC比
チャーン率(解約率)と平均継続期間
チャーン率(解約率)と平均継続期間
A/Bテストの有意差判定
A/Bテストの有意差判定
A/Bテストの必要サンプル数
A/Bテストの必要サンプル数
検索順位別CTRからの想定流入数
検索順位別CTRからの想定流入数
損益分岐点計算機
損益分岐点計算機
値入率・掛率換算
値入率・掛率換算
CAGR計算
CAGR計算
健康・フィットネスの計算ツール
BMI計算機
BMI計算機
睡眠サイクル計算
睡眠サイクル計算
カロリー計算機
カロリー計算機
基礎代謝量計算機
基礎代謝量計算機
TDEE計算機
TDEE計算機
理想体重計算機
理想体重計算機
体脂肪率計算機
体脂肪率計算機
除脂肪体重計算機
除脂肪体重計算機
消費カロリー計算機
消費カロリー計算機
たんぱく質摂取量計算機
たんぱく質摂取量計算機
PFCバランス計算機
PFCバランス計算機
炭水化物摂取量計算機
炭水化物摂取量計算機
脂質摂取量計算機
脂質摂取量計算機
子供の身長予測
子供の身長予測
スポーツの計算ツール
ゴルフハンディキャップ
ゴルフハンディキャップ
ペース計算機
ペース計算機
1RM計算機
1RM計算機
目標心拍数計算機
目標心拍数計算機
気象の計算ツール
ヒートインデックス
ヒートインデックス
ウインドチル
ウインドチル
露点温度
露点温度
コンピュータの計算ツール
進数変換
進数変換
IPサブネット計算機
IPサブネット計算機
帯域幅・ダウンロード時間の計算機
帯域幅・ダウンロード時間の計算機
家計・光熱費の計算ツール
電気代計算
電気代計算
kWh→電気代・逆算
kWh→電気代・逆算
年間消費電力量→電気代
年間消費電力量→電気代
エアコン畳数・能力
エアコン畳数・能力
エアコンの電気代計算
エアコンの電気代計算
暖房の電気代比較
暖房の電気代比較
ガスと電気の光熱費比較
ガスと電気の光熱費比較
LED交換の節約額
LED交換の節約額
給与換算
給与換算
家計収支の計算
家計収支の計算
自動車の計算ツール
ガソリン代計算
ガソリン代計算
EV充電コスト
EV充電コスト
EVとガソリン車の燃料費比較
EVとガソリン車の燃料費比較
燃費計算
燃費計算
タイヤサイズ計算
タイヤサイズ計算
太陽光発電・蓄電池の計算ツール
太陽光発電の発電量
太陽光発電の発電量
太陽光パネルの枚数と面積
太陽光パネルの枚数と面積
太陽光発電の回収年数
太陽光発電の回収年数
蓄電池の必要容量と持ち時間
蓄電池の必要容量と持ち時間
住まい・DIYの計算ツール
タイル枚数
タイル枚数
階段の寸法
階段の寸法
生コン量
生コン量
壁・天井・床の面積
壁・天井・床の面積
壁紙の必要量
壁紙の必要量
塗料の必要量
塗料の必要量
フローリング枚数
フローリング枚数
外壁面積
外壁面積
砂利の必要量
砂利の必要量
モルタルの配合
モルタルの配合
勾配の計算
勾配の計算
木材の取り数
木材の取り数
建ぺい率・容積率
建ぺい率・容積率
クッションフロア必要量
クッションフロア必要量
畳の枚数と広さ
畳の枚数と広さ
断熱材の必要量
断熱材の必要量
カーテンのサイズ
カーテンのサイズ
テレビのサイズと視聴距離
テレビのサイズと視聴距離
土・培養土の必要量
土・培養土の必要量
芝生の必要枚数
芝生の必要枚数
ブロック塀の個数
ブロック塀の個数
レンガの必要枚数
レンガの必要枚数
ウッドデッキの材料
ウッドデッキの材料
スロープの必要長さ
スロープの必要長さ
ネジの下穴径と長さ
ネジの下穴径と長さ
容積と必要換気量
容積と必要換気量
塗料の希釈計算
塗料の希釈計算
巾木・廻り縁の長さ
巾木・廻り縁の長さ
ブラインドの採寸
ブラインドの採寸
額縁の取り付け高さと配置
額縁の取り付け高さと配置
排水勾配と高低差
排水勾配と高低差
ビス・釘の必要本数
ビス・釘の必要本数
木材の材積(m³・才)
木材の材積(m³・才)
フェンスの本数
フェンスの本数
木材の収縮量(含水率変化)
木材の収縮量(含水率変化)
接着剤・コーキングの必要量
接着剤・コーキングの必要量
部屋の熱損失の目安
部屋の熱損失の目安
家具の搬入可否
家具の搬入可否
引越しのダンボール枚数
引越しのダンボール枚数
収納・棚の容量
収納・棚の容量
板取り計算
板取り計算
棚板のたわみと耐荷重
棚板のたわみと耐荷重

一次不定方程式 ax+by=c の整数解 計算機(互除法の途中式つき)

一次不定方程式 ax + by = c の係数を入力してください。下の数式は入力欄と連動していて、数字の部分を直接書き換えても計算できます。「求める解の範囲」を変えると、正の整数解だけを絞り込むこともできます。

数値は半角の整数で入力してください(小数・分数は使えません)。負の数も使えます。x や y の項が無いときは、その係数に 0 を入力してください。
計算結果・グラフ
左の入力欄に係数 a・b・c を入れて「計算する」を押すと、ここに整数解とグラフが表示されます。

このページでできること

  • 整数の係数 \(a,\ b,\ c\) を入れるだけで、\(ax + by = c\) を満たす整数の組 \(x,\ y\)(整数解)を求められます
  • \(c\) が \(a\) と \(b\) の最大公約数の倍数でないときは整数解が存在しません。その判定と、なぜ存在しないのかの理由も表示します
  • ユークリッドの互除法の割り算の表と、余りを逆にたどって特殊解を作る表を、1行ずつそのまま見られます
  • 答えは1組だけでなく、\(x = x_0 + \dfrac{b}{g}t,\ y = y_0 - \dfrac{a}{g}t\)(\(t\) は整数)の一般解と、\(t\) を動かした整数解の一覧表で表示します
  • 「正の整数解だけ」「0 以上の整数解だけ」に絞り込めます。50円切手と80円切手で1000円ちょうどにする組み合わせを求める、といった問題がそのまま解けます
係数に入れられるのは整数だけです(小数・分数は使えません)。1つの係数は15桁以内で、\(a\) と \(b\) を同時に 0 にすることはできません。

この計算は何の役に立つ?

ぴったりの金額・ぴったりの個数にする組み合わせを見つける

50円切手と80円切手だけで1000円ちょうどにする、2種類の分銅だけである重さを量る、決まった長さの材料だけでちょうどの長さをつくる。こうした「決まった大きさのものを組み合わせて、目標にぴったり合わせる」問題は、そのまま \(ax + by = c\) の整数解を求める問題になります。
枚数や個数はマイナスにできないので、実際には正の整数解のしぼり込みまでやって初めて答えになります。

詰め合わせで「作れる個数・作れない個数」を見分ける

6個入りと10個入りの箱しかないとき、注文どおりの個数をぴったりそろえられるかどうかは、\(6x + 10y = c\) に 0 以上の整数解があるかどうかで決まります。6 と 10 の最大公約数は 2 なので、奇数個の注文はどう組み合わせても作れません。
食品や部品の箱詰めでは、この「作れる個数」の見極めが、注文を受けられるか・どの箱サイズをそろえるべきかの判断に直結します。

目盛りのない容器で目的の量を量る

5Lと3Lの容器だけで4Lを量る、という有名な問題は \(5x + 3y = 4\) の整数解に対応します(\(x\)・\(y\) は、それぞれの容器で足した回数と減らした回数を符号付きで表したものです)。\(\gcd(5,\ 3) = 1\) なので、この2つの容器があれば1Lきざみでどんな量でも量れることが、式から先に判定できます。
実験や調理で「手元の器具だけで必要な量を作れるか」を考えるときの、そのままの数学です。

ネット通信の暗号(RSA)の鍵を作る

ネットバンキングやオンラインショッピングを支えているRSA暗号では、公開鍵の値 \(e\) から秘密鍵の値 \(d\) を作るときに \(e d + \varphi k = 1\) という一次不定方程式を解きます(\(\varphi\) は鍵ごとに決まる整数)。ここで使われているのが、このページと同じ拡張ユークリッドの互除法です。
何百桁もある数でもこの手順なら一瞬で解けることが、暗号を実用にしている土台の一つになっています。

材料をむだなく使い切る生産計画

1個あたり \(a\) g の材料を使う製品Aと、\(b\) g 使う製品Bを作って、用意した \(c\) g の材料をちょうど使い切りたい。この計画は \(ax + by = c\) の 0 以上の整数解を求める問題です。製品は0.5個だけ作るということができないので、答えは整数でなければなりません。
このように「答えが整数に限られる計画問題」を扱う分野は整数計画法と呼ばれ、生産計画・シフト作成・配送計画などで使われています。

式とグラフ

整数解があるための条件
グラフ
数学表記 (一般的な数式)
\(c\) \(=\) \(\gcd(a,\ b)\) \(\times\) \(m\)
日本語表記 (記号を日本語に置き換えた式)
③ 右辺の定数 \(c\) \(=\) ① \(a\) と \(b\) の最大公約数 \(g\) \(\times\) ② ある整数 \(m\)
式を日本語で読むと
① \(a\) と \(b\) の最大公約数 \(g\) を
② ある整数 \(m\) 倍したものが
③ 右辺の定数 \(c\) とちょうど等しくなる(つまり \(c\) が \(g\) の倍数である)とき、そのときに限り整数解が存在する
簡単な例
\(2x + 4y = 6\) には整数解がありますが、\(2x + 4y = 5\) には1組もありません(どちらも \(\gcd(2,\ 4) = 2\))
右辺の定数(6) \(=\) 最大公約数(2) \(\times\) 整数(3)
\(\gcd(2,\ 4) = 2\)
\(6 = 2 \times 3 \quad \Rightarrow \quad 2 \times 1 + 4 \times 1 = 6\)
\(5 = 2 \times 2 + 1 \quad \Rightarrow \quad 2x + 4y \neq 5\)
考え方のポイント
なぜ \(g\) の倍数でないとだめなのでしょうか。\(a\) も \(b\) も \(g\) の倍数なので、\(a = g a'\)、\(b = g b'\) と書けます。すると左辺は \(ax + by = g(a'x + b'y)\) となり、\(x\) と \(y\) が整数である限り、左辺は必ず \(g\) の倍数にしかなりません。だから右辺の \(c\) が \(g\) の倍数でなければ、どんな整数を入れても等式は成り立ちません。 逆に \(c\) が \(g\) の倍数でありさえすれば、解は必ず存在します(それを保証するのが次のベズーの等式です)。グラフで言えば、直線 \(ax + by = c\) が格子点(\(x\) 座標も \(y\) 座標も整数の点)を通るか、格子点のすき間をすり抜けるかの違いです。
ベズーの等式(互除法で見つかる1組の整数)
数学表記 (一般的な数式)
\(a x_1\) \(+\) \(b y_1\) \(=\) \(\gcd(a,\ b)\)
日本語表記 (記号を日本語に置き換えた式)
① \(x\) の係数 \(a\) と、互除法で見つかる整数 \(x_1\) を掛けた項 \(+\) ② \(y\) の係数 \(b\) と、互除法で見つかる整数 \(y_1\) を掛けた項 \(=\) ③ \(a\) と \(b\) の最大公約数 \(g\)
式を日本語で読むと
① \(x\) の係数 \(a\) と、互除法で見つかる整数 \(x_1\) を掛けた項 に
② \(y\) の係数 \(b\) と、互除法で見つかる整数 \(y_1\) を掛けた項 を足すと
③ \(a\) と \(b\) の最大公約数 \(g\) にできる。そうなる整数の組 \(x_1,\ y_1\) は必ず存在し、ユークリッドの互除法を逆にたどれば見つかる
簡単な例
\(7\) と \(5\) で互除法を計算し、余りを逆にたどると(\(\gcd(7,\ 5) = 1\))
\(7\) と整数 \(-2\) を掛けた項 \(+\) \(5\) と整数 \(3\) を掛けた項 \(=\) 最大公約数(1)
\(7 = 5 \times 1 + 2, \quad 5 = 2 \times 2 + 1\)
\(1 = 5 - 2 \times 2 = 5 - (7 - 5) \times 2 = 3 \times 5 - 2 \times 7\)
\(7 \times (-2) + 5 \times 3 = -14 + 15 = 1\)
考え方のポイント
互除法の余りは、いつでも「もとの2数の整数倍の和」で書けます。実際 \(2 = 7 - 5\)、そのあとの \(1 = 5 - 2 \times 2\) の \(2\) にこれを代入すれば、\(1\) が \(7\) と \(5\) の整数倍の和になります。この作業をどんな2数でも機械的にできるのが拡張ユークリッドの互除法です。 見つかった \(x_1,\ y_1\) は最大公約数 \(g\) を作る組なので、そのままでは \(c\) の解ではありません。両辺を \(\dfrac{c}{g}\) 倍すると、目当ての方程式の解が1組できます。 \(x_0 = \dfrac{c}{g} x_1, \quad y_0 = \dfrac{c}{g} y_1\) 例えば \(7x + 5y = 3\) なら、上の式を3倍して \(7 \times (-6) + 5 \times 9 = 3\)、つまり \((x_0,\ y_0) = (-6,\ 9)\) が1組の解になります。この計算機は、こうして得た解を見やすい大きさになるまでずらしてから表示します(どの1組を選んでも、次の一般解は同じ集まりになります)。
すべての整数解(一般解)
グラフ
数学表記 (一般的な数式)
\(x\) \(=\) \(x_0\) \(+\) \(\dfrac{b}{g}\) \(t\)
\(y\) \(=\) \(y_0\) \(-\) \(\dfrac{a}{g}\) \(t\)
日本語表記 (記号を日本語に置き換えた式)
整数解の \(x\) \(=\) ① 特殊解の \(x_0\) \(+\) ② \(x\) のずれ幅 \(\dfrac{b}{g}\) ③ 整数 \(t\)
整数解の \(y\) \(=\) ④ 特殊解の \(y_0\) \(-\) ⑤ \(y\) のずれ幅 \(\dfrac{a}{g}\) 整数 \(t\)
式を日本語で読むと
① 特殊解の \(x_0\) に
② \(x\) のずれ幅 \(\dfrac{b}{g}\) を
③ 整数 \(t\) 倍して足すと、整数解の \(x\) になり、同時に
④ 特殊解の \(y_0\) から
⑤ \(y\) のずれ幅 \(\dfrac{a}{g}\) を同じ \(t\) 倍して引くと、整数解の \(y\) になる。\(t\) に整数を入れるたびに別の解が1組できて、これで全部の整数解を表せる
簡単な例
\(3x + 4y = 10\) は \((x_0,\ y_0) = (2,\ 1)\) が1組の解で、\(\gcd(3,\ 4) = 1\) なので
整数解の \(x\) \(=\) 特殊解(2) \(+\) ずれ幅(4) 整数 \(t\)
整数解の \(y\) \(=\) 特殊解(1) \(-\) ずれ幅(3) 整数 \(t\)
\(3 \times 2 + 4 \times 1 = 10\)
\(x = 2 + 4t, \quad y = 1 - 3t\)
\(t = 1 \ \Rightarrow \ (x,\ y) = (6,\ -2), \quad 3 \times 6 + 4 \times (-2) = 10\)
\(t = -1 \ \Rightarrow \ (x,\ y) = (-2,\ 4), \quad 3 \times (-2) + 4 \times 4 = 10\)
考え方のポイント
なぜ \(x\) は \(\dfrac{b}{g}\) ずつ、\(y\) は \(\dfrac{a}{g}\) ずつしかずれないのでしょうか。\((x,\ y)\) と \((x_0,\ y_0)\) がどちらも解なら、2つの式を引き算して \(a(x - x_0) = -b(y - y_0)\) が成り立ちます。両辺を \(g\) で割ると \(\dfrac{a}{g}(x - x_0) = -\dfrac{b}{g}(y - y_0)\) となり、\(\dfrac{a}{g}\) と \(\dfrac{b}{g}\) は互いに素(共通の約数が 1 だけ)です。 すると左辺は \(\dfrac{b}{g}\) の倍数でなければならず、\(\dfrac{a}{g}\) の側にその因数が無い以上、\(x - x_0\) が \(\dfrac{b}{g}\) の倍数だと決まります。つまり \(x - x_0 = \dfrac{b}{g}t\) と書けて、そこから \(y\) の式も決まります。 グラフで見ると、直線 \(ax + by = c\) の上に格子点が等間隔にきれいに並び、その間隔が横に \(\dfrac{b}{g}\)、縦に \(\dfrac{a}{g}\) になっています。
正の整数解のしぼり込み
グラフ
数学表記 (一般的な数式)
\(x_0\) \(+\) \(\dfrac{b}{g}\) \(t\) \(\geqq 1\)
\(y_0\) \(-\) \(\dfrac{a}{g}\) \(t\) \(\geqq 1\)
日本語表記 (記号を日本語に置き換えた式)
① 特殊解の \(x_0\) \(+\) ② \(x\) のずれ幅 \(\dfrac{b}{g}\) ③ 整数 \(t\) \(\geqq 1\)
④ 特殊解の \(y_0\) \(-\) ⑤ \(y\) のずれ幅 \(\dfrac{a}{g}\) 整数 \(t\) \(\geqq 1\)
式を日本語で読むと
① 特殊解の \(x_0\) に
② \(x\) のずれ幅 \(\dfrac{b}{g}\) を
③ 整数 \(t\) 倍して足した値(=整数解の \(x\))が 1 以上で、しかも
④ 特殊解の \(y_0\) から
⑤ \(y\) のずれ幅 \(\dfrac{a}{g}\) を同じ \(t\) 倍して引いた値(=整数解の \(y\))も 1 以上になる。この2つを同時に満たす \(t\) の範囲を求めれば、正の整数解が全部わかる
簡単な例
3個入りと5個入りのパックだけで47個ちょうどそろえる(\(3x + 5y = 47\)、\((x_0,\ y_0) = (4,\ 7)\))と
特殊解(4) \(+\) ずれ幅(5) 整数 \(t\) \(\geqq 1\)
特殊解(7) \(-\) ずれ幅(3) 整数 \(t\) \(\geqq 1\)
\(3 \times 4 + 5 \times 7 = 47\)
\(4 + 5t \geqq 1 \ \Leftrightarrow \ t \geqq -\dfrac{3}{5} \ \Leftrightarrow \ t \geqq 0\)
\(7 - 3t \geqq 1 \ \Leftrightarrow \ t \leqq 2\)
\(0 \leqq t \leqq 2 \ \Rightarrow \ (x,\ y) = (4,\ 7),\ (9,\ 4),\ (14,\ 1)\)
考え方のポイント
枚数・個数・人数を求める問題では、答えは正の整数(または 0 以上の整数)に限られます。一般解を不等式に入れて \(t\) の範囲を出せば、条件に合う解だけを取り出せます。\(t\) は整数なので、\(t \geqq -\dfrac{3}{5}\) のような境界が分数になっても、そこから内側の整数(この例では \(t \geqq 0\))まで詰められるのがポイントです。 \(a\) と \(b\) が同じ符号(どちらも正など)なら、片方の不等式が下限、もう片方が上限になるので、条件を満たす解は必ず有限個です。符号が違う(例えば \(3x - 5y = 1\))ときは2つとも同じ向きの制限になり、正の整数解は無限に存在します。係数の片方が 0 のとき(例えば \(0x + 5y = 10\))は、0 でない方の文字の値が1つに決まり、もう一方は自由に動けます。決まった方が条件を満たしていれば解は無限個、満たしていなければ1組もありません。 逆に、条件を満たす \(t\) が1つも無いこともあります。そのときは「そろえられる組み合わせは無い」というのが答えです。
一次不定方程式 \(ax + by = c\) に整数解があるのは、\(c\) が \(a\) と \(b\) の最大公約数 \(g\) の倍数のときだけです。解があるときは、ユークリッドの互除法を逆にたどって特殊解 \((x_0,\ y_0)\) を1組作れば、残りはすべて \(x = x_0 + \dfrac{b}{g}t,\ y = y_0 - \dfrac{a}{g}t\)(\(t\) は整数)で表せます。

用語・記号の解説

記号

\(a,\ b\) エー・ビー \(x\) と \(y\) に掛かっている係数。決まった数を表すときは、アルファベットの最初の方の文字 \(a,\ b,\ c\) を使う慣例があります。このページではどちらも整数です。
\(c\) シー 方程式の右辺の定数。constant(定数)の頭文字です。「作りたい合計」にあたる数で、これが最大公約数の倍数かどうかで解の有無が決まります。
\(x,\ y\) エックス・ワイ 求める未知数。未知の数はアルファベットの終わりの方の文字で表す、という書き方はデカルトが広めたといわれます。このページでは整数の値だけを答えとして扱います。
\(\gcd(a,\ b)\) ジー・シー・ディー、さいだいこうやくすう \(a\) と \(b\) の最大公約数。greatest common divisor(最大の共通の約数)の頭文字です。日本の教科書では \((a,\ b)\) と略記することもあります。
\(g\) ジー 最大公約数 \(\gcd(a,\ b)\) を短く書いた記号。greatest(最大)の頭文字です。一般解の \(\dfrac{b}{g}\)・\(\dfrac{a}{g}\) のように、式が長くなるのを防ぐために使います。
\(x_0,\ y_0\) エックス・ゼロ、ワイ・ゼロ 特殊解、つまり最初に見つけた1組の整数解。「基準になる0番目の解」という意味で右下に 0 を添えます。ここを出発点にして、すべての整数解を表します。
\(x_1,\ y_1\) エックス・イチ、ワイ・イチ 互除法を逆にたどると見つかる整数の組で、\(a x_1 + b y_1 = g\) を満たします。これを \(\dfrac{c}{g}\) 倍すると特殊解 \((x_0,\ y_0)\) になります。
\(t\) ティー 整数なら何でもよい変数(媒介変数)。すべての整数解を一つの式でまとめて表すために使います。\(t\) に整数を入れるたびに、別の整数解が1組現れます。
\(m\) エム 「\(c\) が \(g\) の何倍か」を表す整数。整数を表す文字には \(m\)・\(n\)・\(k\) がよく使われ、\(m\) は multiple(倍数)の頭文字に由来するといわれます。\(c = g \times m\) と書けるとき、そしてそのときだけ整数解があります。
\(q\) キュー 割り算の商。quotient(商)の頭文字です。互除法の表では \(13 = 5 \times 2 + 3\) の \(2\) にあたります。
\(r\) アール 割り算の余り。remainder(余り)の頭文字です。互除法の表では \(13 = 5 \times 2 + 3\) の \(3\) にあたります。この余りが 0 になったときが計算の終わりです。
\(\geqq\) だいなりイコール、いじょう 「左辺が右辺以上」を表す不等号。\(x \geqq 1\) は「\(x\) は 1 以上」という意味です。日本の教科書では等号付きの不等号を \(\geqq\)・\(\leqq\) の形で書きます。

用語

一次不定方程式 いちじふていほうていしき \(ax + by = c\) のように、未知数が2つあるのに式が1つしかない一次方程式。「不定」は解が1つに定まらないという意味で、実数の範囲なら直線上のすべての点が解になります。整数解に限っても、普通は無数にあります。
ディオファントス方程式 ディオファントスほうていしき 整数解だけを答えとする方程式をまとめた呼び名。古代ギリシャの数学者ディオファントスの名前に由来します。このページで扱う一次不定方程式は、その中で最も基本的なものです。
整数解 せいすうかい 方程式を満たす解のうち、\(x\) も \(y\) も整数になっているもの。枚数・個数・人数など「半端があり得ない量」を求める問題では、整数解だけが意味を持ちます。
特殊解 とくしゅかい 無数にある整数解のうち、最初に見つけた1組のこと。どの1組を選んでもかまいません。ここを出発点にして、一般解の形ですべての解を表します。
一般解 いっぱんかい すべての整数解を、整数 \(t\) を使って一つの式にまとめて表したもの。\(t\) に整数を入れると、そのつど別の解が1組取り出せます。
最大公約数 さいだいこうやくすう 2つ以上の整数のどれをも割り切れる正の整数のうち、一番大きいもの。一次不定方程式では、この値が「解があるかどうか」と「解と解の間隔」の両方を決めます。
ユークリッドの互除法 ユークリッドのごじょほう 大きい方を小さい方で割り、割る数と余りの組に置き換える、という操作をくり返して最大公約数を求める方法。余りが 0 になったときの割る数が最大公約数です。紀元前3世紀ごろの著書「原論」に載っている、世界最古のアルゴリズムとも呼ばれる手順です。
拡張ユークリッドの互除法 かくちょうユークリッドのごじょほう 互除法の割り算の式を下から順に代入し直して、最大公約数を \(a x_1 + b y_1\) の形で表す方法。一次不定方程式の特殊解を作るのに使います。
ベズーの等式 ベズーのとうしき \(a x_1 + b y_1 = \gcd(a,\ b)\) を満たす整数 \(x_1,\ y_1\) が必ず存在する、という定理。フランスの数学者ベズーの名前が付いています。一次不定方程式が解けることの根拠です。
互いに素 たがいにそ 2つの整数の最大公約数が 1 であること。例えば 3 と 4 は互いに素です。\(\dfrac{a}{g}\) と \(\dfrac{b}{g}\) は必ず互いに素になり、これが「解が等間隔に並ぶ」ことの決め手になります。
倍数 ばいすう ある整数を整数倍して作れる数。\(10\) の倍数は \(\dots,\ -20,\ -10,\ 0,\ 10,\ 20,\ \dots\) です。0 や負の数も倍数に含めます。
余り あまり 整数の割り算で割り切れずに残る数。\(13 \div 5\) は商が \(2\) で余りが \(3\) です。互除法はこの余りだけを使って進みます。
商 しょう 整数の割り算で「割る数が何回分とれるか」を表す整数。\(13 = 5 \times 2 + 3\) の \(2\) が商です。
格子点 こうしてん 座標平面上で、\(x\) 座標も \(y\) 座標も整数である点。方眼紙のマス目の交点にあたります。一次不定方程式の整数解は、直線 \(ax + by = c\) の上にある格子点そのものです。
媒介変数 ばいかいへんすう 解の集まり全体を一つの式で表すために置く、自由に動かせる変数。このページの \(t\) がそれです。パラメータとも呼びます。
係数 けいすう 文字の前に付いている数。\(3x\) の \(3\) が係数です。数が書かれていない \(x\) の係数は 1 と考えます。
不等式 ふとうしき \(t \geqq 0\) のように、2つの値の大小関係を表す式。正の整数解を絞り込むときに使います。

前提として理解しておくといいこと

このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。

整数の割り算と余り(小学4年〜中学1年)
  • \(13 \div 5\) が「商 \(2\)、余り \(3\)」になり、これを \(13 = 5 \times 2 + 3\) と1本の式に書き直せること
  • 余りは必ず割る数より小さくなる(\(0\) 以上、割る数未満)と知っていること
約数・倍数・最大公約数(小学5年〜中学3年)
  • 「\(6\) は \(3\) の倍数」「\(3\) は \(6\) の約数」を言い換えられること
  • \(12\) と \(18\) の最大公約数が \(6\) だと求められること(素因数分解でもかまいません)
  • 2つの数の最大公約数が \(1\) のとき「互いに素」と呼ぶと知っていること
文字式と一次方程式(中学1年〜2年)
  • \(ax + by\) のような文字式で、\(a\)・\(b\) が係数、\(x\)・\(y\) が未知数だとわかること
  • \(3 \times 2 + 5y = 1\) のような式を \(y\) について解けること
  • 共通の数でくくる変形(\(4x + 6y = 2(2x + 3y)\))ができること
二元一次方程式とそのグラフ(中学2年)
  • \(ax + by = c\) が座標平面では1本の直線を表すとわかること
  • 未知数が2つで式が1つだと解が1組に決まらず、直線上の点が全部解になると知っていること
不等式(中学1年〜高校 数学I)
  • \(5t \geqq 1\) を \(t \geqq \dfrac{1}{5}\) の形に変形できること
  • 負の数で両辺を割ると不等号の向きが変わることを知っていること
  • \(t \leqq \dfrac{5}{3}\) のとき、\(t\) が整数なら \(t \leqq 1\) まで詰められること
分数の計算(小学5年〜中学1年)
  • \(\dfrac{80}{10} = 8\) のような約分ができること
  • \(-\dfrac{3}{8}\) のような負の分数の大小を、数直線の上で判断できること

Excelで計算する方法

Excelファイルをダウンロード
式ごとにシートが分かれたExcelファイルです。貼り付け場所を気にせず、開いてすぐ使えます。
下の表を丸ごとコピーして、ExcelのA1セルに貼り付けるとそのまま使えます。
「整数解があるかどうか」を確かめる表
x の係数 a 50
y の係数 b 80
右辺の定数 c 1000
最大公約数 g =GCD(B1,B2)
c を g で割った余り =MOD(B3,B4)
整数解があるか =IF(B5=0,"整数解がある","整数解はない")
「ベズーの等式」を確かめる表
x の係数 a 50
y の係数 b 80
互除法で見つけた x1 -3
互除法で見つけた y1 2
a×x1 + b×y1 =B1*B3+B2*B4
最大公約数 g =GCD(B1,B2)
「すべての整数解(一般解)」から解を作る表
x の係数 a 50
y の係数 b 80
右辺の定数 c 1000
最大公約数 g =GCD(B1,B2)
特殊解 x0 4
特殊解 y0 10
整数 t 1
x = x0 + (b/g)×t =B5+(B2/B4)*B7
y = y0 − (a/g)×t =B6-(B1/B4)*B7
検算 a×x + b×y =B1*B8+B2*B9
「正の整数解のしぼり込み」を求める表
x の係数 a 50
y の係数 b 80
最大公約数 g =GCD(B1,B2)
特殊解 x0 4
特殊解 y0 10
t の下限(x ≧ 1 から) =-INT((B4-1)/(B2/B3))
t の上限(y ≧ 1 から) =INT((B5-1)/(B1/B3))
正の整数解の個数 =MAX(0,B7-B6+1)
貼り付けると、上の行(係数や特殊解)が入力欄になり、下の行が自動計算の結果になります。GCD は最大公約数、MOD は割った余り、INT は小数点以下を切り捨てる関数です。
1つ目の表は 50x + 80y = 1000 の例で、最大公約数は 10、1000 を 10 で割った余りは 0 なので「整数解がある」と表示されます。ここを 1001 に変えると「整数解はない」に変わります。
2つ目の表は、互除法を逆にたどって得た x1 = −3、y1 = 2 が本当にベズーの等式を満たすかの確認用です。50×(−3) + 80×2 = 10 となり、最大公約数と一致します。
3つ目の表は一般解から解を1組取り出す表です。t に 1 を入れると x = 12、y = 5 になり、検算の行は 1000 に戻ります。t をいろいろな整数に変えて試してください。
4つ目の表は正の整数解を絞り込む表です。t の下限は 0、上限は 1 と出るので、正の整数解は 2 組(t = 0 と t = 1)とわかります。この2つの式は a も b も正の場合のものなので、負の係数を入れるときは不等号の向きが変わる点に注意してください。

Googleスプレッドシートで計算する方法

Excelファイルをダウンロード
上のExcelファイルをダウンロードし、Googleドライブにアップロードして開くと、そのままスプレッドシートとして使えます。
下の表を丸ごとコピーして、GoogleスプレッドシートのA1セルに貼り付けるとそのまま使えます。
「整数解があるかどうか」を確かめる表
x の係数 a 50
y の係数 b 80
右辺の定数 c 1000
最大公約数 g =GCD(B1,B2)
c を g で割った余り =MOD(B3,B4)
整数解があるか =IF(B5=0,"整数解がある","整数解はない")
「ベズーの等式」を確かめる表
x の係数 a 50
y の係数 b 80
互除法で見つけた x1 -3
互除法で見つけた y1 2
a×x1 + b×y1 =B1*B3+B2*B4
最大公約数 g =GCD(B1,B2)
「すべての整数解(一般解)」から解を作る表
x の係数 a 50
y の係数 b 80
右辺の定数 c 1000
最大公約数 g =GCD(B1,B2)
特殊解 x0 4
特殊解 y0 10
整数 t 1
x = x0 + (b/g)×t =B5+(B2/B4)*B7
y = y0 − (a/g)×t =B6-(B1/B4)*B7
検算 a×x + b×y =B1*B8+B2*B9
「正の整数解のしぼり込み」を求める表
x の係数 a 50
y の係数 b 80
最大公約数 g =GCD(B1,B2)
特殊解 x0 4
特殊解 y0 10
t の下限(x ≧ 1 から) =-INT((B4-1)/(B2/B3))
t の上限(y ≧ 1 から) =INT((B5-1)/(B1/B3))
正の整数解の個数 =MAX(0,B7-B6+1)
Excelと同じ式がそのまま使えます(GCD・MOD・INT・MAX・IF はどれも同じ名前と働きです)。表を丸ごとコピーしてA1セルに貼り付け、係数を自分の数値に書き換えてください。

Pythonで計算する方法

from math import gcd

# ax + by = c の係数(整数)
a, b, c = 50, 80, 1000

def extended_gcd(x, y):
    # 拡張ユークリッドの互除法:gcd と、x*s + y*t = gcd を満たす s, t を返す
    if y == 0:
        return x, 1, 0
    g, s, t = extended_gcd(y, x % y)
    return g, t, s - (x // y) * t

g = gcd(a, b)
if c % g != 0:
    print(f"{c} は {g} の倍数ではないので、整数解はありません")
else:
    _, s, t = extended_gcd(a, b)
    x0, y0 = s * (c // g), t * (c // g)   # 特殊解(1組の整数解)
    step_x, step_y = b // g, a // g       # x のずれ幅と y のずれ幅
    # x が 0 以上で最小になるまでずらして、見やすい特殊解に直す
    n = x0 // step_x
    x0, y0 = x0 - n * step_x, y0 + n * step_y
    print(f"特殊解: (x, y) = ({x0}, {y0})")
    print(f"一般解: x = {x0} + {step_x}t, y = {y0} - {step_y}t (t は整数)")
    for k in range(-2, 3):
        print(f"  t = {k:2}: (x, y) = ({x0 + step_x * k}, {y0 - step_y * k})")
    # 正の整数解(x >= 1 かつ y >= 1)だけを取り出す
    t_low = -((1 - x0) // -step_x)
    t_high = (y0 - 1) // step_y
    print("正の整数解:", [(x0 + step_x * k, y0 - step_y * k)
                       for k in range(t_low, t_high + 1)])
標準ライブラリの math.gcd と、再帰で書いた拡張ユークリッドの互除法だけで解けます。この例は 50x + 80y = 1000 で、実行すると特殊解 (4, 10)、一般解 x = 4 + 8t・y = 10 − 5t、正の整数解 [(4, 10), (12, 5)] が表示されます。係数を書き換えて試してください(最後の正の整数解の部分は、a も b も正の場合の式です)。

数式記述言語(LaTeX等)での書き方(コピペ可)

整数解があるための条件
c = gcd(a, b) × m
c = \gcd(a, b) \times m
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>c</mi>
    <mo>=</mo>
    <mi>gcd</mi><mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo>
    <mo>&#xD7;</mo>
    <mi>m</mi>
  </mrow>
</math>
c = gcd(a, b) * m
Mod[c, GCD[a, b]] == 0
irem(c, igcd(a, b)) = 0;
mod(c, gcd(a, b)) == 0
c = gcd(a,b) × m
ベズーの等式(互除法で見つかる1組の整数)
a·x₁ + b·y₁ = gcd(a, b)
a x_1 + b y_1 = \gcd(a, b)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>a</mi><msub><mi>x</mi><mn>1</mn></msub>
    <mo>+</mo>
    <mi>b</mi><msub><mi>y</mi><mn>1</mn></msub>
    <mo>=</mo>
    <mi>gcd</mi><mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo>
  </mrow>
</math>
a*x_1 + b*y_1 = gcd(a, b)
ExtendedGCD[a, b]
igcdex(a, b, x1, y1);
[g, x1, y1] = gcd(a, b);
a x_1 + b y_1 = gcd(a,b)
すべての整数解(一般解)
x = x₀ + (b/g)t, y = y₀ − (a/g)t
x = x_0 + \frac{b}{g} t, \quad y = y_0 - \frac{a}{g} t
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>x</mi><mo>=</mo><msub><mi>x</mi><mn>0</mn></msub>
    <mo>+</mo>
    <mfrac><mi>b</mi><mi>g</mi></mfrac><mi>t</mi>
    <mo>,</mo><mspace width="1em"/>
    <mi>y</mi><mo>=</mo><msub><mi>y</mi><mn>0</mn></msub>
    <mo>&#x2212;</mo>
    <mfrac><mi>a</mi><mi>g</mi></mfrac><mi>t</mi>
  </mrow>
</math>
x = x_0 + (b/g)t, y = y_0 - (a/g)t
Solve[a x + b y == c, {x, y}, Integers]
isolve(a*x + b*y = c);
S = solve(a*x + b*y == c, [x y], 'Integer', true);
x = x_0 + (b/g)t, y = y_0 - (a/g)t
正の整数解のしぼり込み
x₀ + (b/g)t ≧ 1 かつ y₀ − (a/g)t ≧ 1
x_0 + \frac{b}{g} t \geqq 1, \quad y_0 - \frac{a}{g} t \geqq 1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>x</mi><mn>0</mn></msub>
    <mo>+</mo>
    <mfrac><mi>b</mi><mi>g</mi></mfrac><mi>t</mi>
    <mo>&#x2267;</mo><mn>1</mn>
    <mo>,</mo><mspace width="1em"/>
    <msub><mi>y</mi><mn>0</mn></msub>
    <mo>&#x2212;</mo>
    <mfrac><mi>a</mi><mi>g</mi></mfrac><mi>t</mi>
    <mo>&#x2267;</mo><mn>1</mn>
  </mrow>
</math>
x_0 + (b/g)t >= 1 and y_0 - (a/g)t >= 1
Solve[a x + b y == c && x >= 1 && y >= 1, {x, y}, Integers]
isolve({a*x + b*y = c, x >= 1, y >= 1});
S = solve([a*x + b*y == c, x >= 1, y >= 1], [x y], 'Integer', true);
x_0 + (b/g)t ≧ 1, y_0 − (a/g)t ≧ 1

ChatGPT に聞いて計算してもらう方法

あなたは数学(整数の性質)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。

一次不定方程式 50x + 80y = 1000 の整数解を求めてください。
次の内容をそれぞれ示してください。
1. 50 と 80 の最大公約数と、1000 がその倍数かどうか
2. ユークリッドの互除法の割り算の式(余りが0になるまで)と、それを逆にたどって得られる 50×x1 + 80×y1 = 最大公約数 の x1, y1
3. 特殊解 (x0, y0) と、一般解 x = x0 + (b/g)t, y = y0 − (a/g)t
4. x も y も1以上になる整数解をすべて

Pythonでは math.gcd と拡張ユークリッドの互除法を使って厳密に計算し、計算に使った式と実行結果の数値を示してください。

計算ドリル(演習問題)

このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。


使い方
  1. 1
    数値を入力
    計算したい数値を入力欄に入力します
  2. 2
    計算
    「計算する」ボタンを押します
  3. 3
    結果を確認
    計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
  DataChefの特徴
簡単・無料
無料で回数無制限の変換
専門知識不要、直感的で簡単な操作
会員登録不要
アクセス直後に利用可能
個人情報を登録することなく使用できます
安全・安心
通信を高度に暗号化
「ダウンロード」押下でファイルを自動削除
高速
ストレスのない快適な表示速度・変換速度
透かしなし
ウォーターマークなし
クレジット表記不要
商用利用可能
無料で商用利用可能
商用利用許諾の連絡も不要です