数学ナビゲーター掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[ スレッド内全1レス(親記事-1 表示) ] <<
0
>>
■48016
/ 親記事)
計算量について
▼
■
□投稿者/ サボり部
一般人(1回)-(2017/07/07(Fri) 14:14:21)
P=NP問題の読み物を読んでいた時に疑問がでてきました。
基本ソートの計算量はO(n^2)です。
これについては感覚的にですが、n個のものを参照することをn回繰り返すので、n^2程度の多項式時間の計算量だと感じます。
それに対して、ある数nの素因数を求めるアルゴリズムでは、√n以下の数字で順に割っていけば解が出ます。ソートの時と同じように考えると、自分の(間違った)感覚では計算量がO(√n)に感じます。
実際には2進数で表した時の桁数を考えて、A=log[2]nとし、√n=(√2)^Aなので、指数関数時間かかるというのが正しいです。
確かに指数関数時間でなければ暗号化に使えなくなるのでその意味では納得できるのですが…。
ソートでは2進数に表し直すという処理はせず、素因数を求める方ではその処理をするというのはどのような違いから出てきているのでしょうか?
根本的なことが分かっていないのかもしれませんが、よろしくお願いします。
引用返信
/
返信
[メール受信/OFF]
削除キー/
編集
削除
■48020
/ ResNo.1)
Re[1]: 計算量について
▲
▼
■
□投稿者/ ななし
一般人(1回)-(2017/07/12(Wed) 07:46:56)
> それに対して、ある数nの素因数を求めるアルゴリズムでは、√n以下の数字で順に割っていけば解が出ます。ソートの時と同じように考えると、自分の(間違った)感覚では計算量がO(√n)に感じます。
そのとおり、O(√n)だと思います。
計算量が多項式時間かどうかどうかというのは、入力データのサイズがmの場合にmの多項式になるかどうかということなので、数nをデータで表したときにどのくらいのサイズなのかを考える必要があります。2進数で表すこと考えると(別に10進数でも構いません)、
2進数m桁の数nを素因数分解するとき、nは大体2^mなので、√nは2^(m/2)くらいであり、計算量はO(√n)=O(2^(m/2))となって、これは指数時間となりますね。
引用返信
/
返信
[メール受信/OFF]
削除キー/
編集
削除
このスレッドをツリーで一括表示
スレッド内ページ移動 / <<
0
>>
このスレッドに書きこむ
入力内容にタグは利用できません。
数式の記述方法
TeX入力ができます。
\[
TeX形式数式
\]
あるいは,
$
TeX形式数式
$
で数式を記述します。
TeX形式数式には半角英数字のみです。詳しくは、
ここ
を見てください。
Titleは質問の内容がわかりやすいように書いてください。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、Title、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
削除キーを覚えておくと、自分の記事の編集・削除ができます。
URLは自動的にリンクされます。
引用返信するときは不要な引用部分を削除してください。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
使用例)
No123 → 記事No123の記事リンクになります(指定表示)。
No123,130,134 → 記事No123/130/134 の記事リンクになります(複数表示)。
No123-130 → 記事No123〜130 の記事リンクになります(連続表示)。
Name
/
E-Mail
/
└> 関連するレス記事をメールで受信しますか?
NO
YES
/ アドレス
非公開
公開
Title
/
URL
/
Comment/ 通常モード->
図表モード->
(適当に改行して下さい/半角10000文字以内)
■No48020に返信(ななしさんの記事) >>それに対して、ある数nの素因数を求めるアルゴリズムでは、√n以下の数字で順に割っていけば解が出ます。ソートの時と同じように考えると、自分の(間違った)感覚では計算量がO(√n)に感じます。 > > そのとおり、O(√n)だと思います。 > > 計算量が多項式時間かどうかどうかというのは、入力データのサイズがmの場合にmの多項式になるかどうかということなので、数nをデータで表したときにどのくらいのサイズなのかを考える必要があります。2進数で表すこと考えると(別に10進数でも構いません)、 > 2進数m桁の数nを素因数分解するとき、nは大体2^mなので、√nは2^(m/2)くらいであり、計算量はO(√n)=O(2^(m/2))となって、これは指数時間となりますね。 >
File
/
アップ可能拡張子=> /
.gif
/
.jpg
/
.jpeg
/
.png
/.txt/.lzh/.zip/.mid/.svg
1) 太字の拡張子は画像として認識されます。
2) 画像は初期状態で縮小サイズ250×250ピクセル以下で表示されます。
3) 同名ファイルがある、またはファイル名が不適切な場合、
ファイル名が自動変更されます。
4) アップ可能ファイルサイズは1回
200KB
(1KB=1024Bytes)までです。
5) ファイルアップ時はプレビューは利用できません。
6) スレッド内の合計ファイルサイズ:[0/500KB]
残り:[500KB]
Icon
/
ぺそぎん(常)
ぺそぎん(喜)
ぺそぎん(礼)
ぺそぎん(跳)
ぺそぎん(焦)
ぺそぎん(励)
マサト
ミツコ
サトシ
サクラ
ダン
エリカ
ホイールロボ
くるりロボ
ぱんだ
ふとめネコ
ねずみ
こあら
疑問ねこ
ランダム
管理者用
(画像を選択/
サンプル一覧
)
削除キー
/
(半角8文字以内)
解決済み!
BOX/
解決したらチェックしてください!
プレビュー/
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-
Edit By
数学ナビゲーター