FC2ブログ

東方の海

サブカル考察など。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) |

素因数分解を多項式時間で解く方法については様々議論されています。Shorのアルゴリズムから隆盛して近年量子コンピュータの研究が盛んですが、古典的コンピュータではもはやP≠NP予想であり、成否どちらも証明できるかは怪しいものとなっています。

さて、それについて、2012年11月15日(木)に、あるツイートがTwitterの一部界隈をにぎわせました。不思議な人物が彼にそれについての研究成果らしき紙束を渡したのです。しかし、中身は意味不明な表ばかり。筆者も当時読んでみましたが、方法が書かれているのか補題までなのかすらわかりませんでした。


yamu_chaさんが垢消しをしてしまったので、リンクだけ貼っておきます。(まさか真理に触れてしまったのだろうか……?と思ったけど、普通に卒業?とともに垢消ししただけっぽい?行方をご存知の方はぜひ知らせていただけると嬉しいかも。)

元ツイートURL:https://twitter.com/yamu_cha/status/268878201890144256

該当ツイートのぱくったー:http://lovelove.rabi-en-rose.net/pakutter.php?tweetid=268878201890144256

流れ:http://twilog.org/ps_maru/search?word=%40yamu_cha&ao=a

画像:http://www.mobypicture.com/user/yamu_cha

画像は荒いです。yamu_chaさん自身がスキャンしたpdfのリンクをツイートしていたのでそこからダウンロードしたのですが、元リンクが不明となっており、とりあえずこれだけ。

ぱくったーによると、約870Fav・約180RTいっていたようです。


もし正しい方法が書かれているのであれば数学史上最大のイベントの1つとなり世界中の暗号が揺るがされてしまいますが、個人的にはこの資料だけでP≠NP予想の解決までいくものではない気がします。もし解読できる方がいましたらぜひ挑戦してみてください。

2016.05.31 02:59 | 数学 | トラックバック(-) | コメント(0) |
いわゆる「この Web サイトのセキュリティ証明書には問題があります」問題。ただ、今回は、なぜか「ここをクリックしてこの Web ページを閉じる。」の下に表示されるはずの「このサイトの閲覧を続行する(推奨されません)。」が表示されないため、違和感がありました。

InternetExplorer11を利用していましたが、コンピューターの再起動に失敗して以来、突然Googleに接続できなくなりました。IEをリセットするもやはり接続エラーになり接続できず。Chromeだと接続できました。いろいろ調べると、
・コンピューターのエラーで証明書機能が破損している
・GoogleやFacebookの証明書が失効などでエラーになっている
・セキュリティ対策ソフトが悪さをしている
・本当にセキュリティ攻撃を受けている
のいくつかが原因の候補となりました。Googleがだめなのかと思っていたら、Facebookにも接続できませんでした。ということは、HTTPSだとだめということが推測できます。思い返せば、再起動失敗後の起動時にセキュリティ対策ソフト(Avast!)の更新ポップアップが出てきていました。これが原因かと思い、リアルタイムシールドを一旦停止して接続してみると成功。一度成功したサイトには、リアルタイムシールドを再開してもアクセスできるようになりました。つまり、SSL証明書が取得できれば大丈夫ということです。つまり、HTTPSシールドが悪さをしているということになります。
設定>常駐保護>ウェブシールドカスタマイズ>「HTTPSスキャンを有効にする」をオフにしたところ、リアルタイムシールドを停止しなくても解決したので、これを原因と結論づけました。

最近のセキュリティ対策ソフトはHTTPSでも復号化されたデータをスキャンしてくれるんですね、すごい。でも、IEを使い続ける限りは無効にしておくしかないようです。Chromeだと大丈夫だったということは、ChromeのHTTPSでの通信内容はスキャンされないということですので、セキュリティ的にはChromeを使うのと今のところ大差はないでしょう。
でも、実際、IEは圧倒的にウイルスの標的になりやすいので、どうにかしたいですね。新ブラウザのEdgeは、Chromeよりも設定項目が少なく、本当に閲覧専用といった感じで、使う気になれません。Chromeも最近は設定や拡張機能が制限されていて、やはりFirefoxが最高(でもFirefoxもmozillaが組織再編を進めているので今後どうなるかはわかりませんが)。
2016.04.19 02:35 | コンピューター | トラックバック(-) | コメント(0) |
こんにちは。
ふと宅録をしたいと思い、ノートパソコン内蔵のマイクで録音を試してみたのですが、ノイズや息が吹きかかる音が多く入ってしまいました。これを防ぐには、スタジオにあるようなポップガード(マイクに息が吹きかかるのを防ぐスポンジ状のフィルター)が必要で、製品を購入すると安いものでも2000円弱します。そこで、100均商品を利用してポップガードを製作することにしました。

参考にしたページは以下の3つです。
ボーカル録音には金属ポップガード買うべし。ティッシュで代用できねーから! - HYLEにっき
実験野郎 実験20 スタジオsus4
歌や声の収録時にポップノイズを防ぐポップガードは216円で自作できるぞ!

ポップガードは市販のものを買うべきという記事(1つ目)を見つつも、今回は試作のため、自作することにしました(自作だと市販のものにはかなわないと思うので、資金に余裕があれば市販のものを買う方がいいと思います。作る手間もかからないし)。
結局、ポップガード自体の作り方は2つ目の記事を参考にしました。ただ、2つ目の記事ではホルダーがマイクスタンドのようにしっかりした作りになっていますが、今回は手持ちもしくはノートパソコン取り付けで使うので、ホルダーはポップホルダーを連結して使うことにしました。

まず、そのへんにあるザ・ダイソーに立ち寄りました。購入したメイン商品のは以下の3商品です(最初ミニバスケットがなかったので2mmアルミワイヤーを買いましたが、他のダイソーに寄ったらゲットできたので結局使いませんでした)。

ポップガード1













ミニバスケット17cm 黒色ストッキング(M~L) ポップホルダークリップ式(3個入り)

他に少量必要なのが、
ペンチ カッター(刃の後ろを使う) 1.5mm幅両面テープ(約1m使用)
です。

ポップガード2







2つ目の記事を参考に作っていきます。注意点は以下。
・ストッキングの膜は1枚だと薄すぎなので2枚以上にすること(今回は2枚にしました。フレームの隙間的には約3枚まで入るので、3枚にしたほうがいいかもしれません)。
・膜の端は、中(1枚目)の膜は接着面ぎりぎりまで切り(2枚目を貼るときに折れて付着してしまって大変でした)、外(2枚目)の膜は端から5mmほど残して切るとよい。

ポップガード3







完成!

ポップホルダーは1個折れてしまったので2個になってますが、3個つなげるともっと伸ばすこともできます。とりあえずここまで。宅録自体はそのうちしようと思いますが、ポップガードが完成した達成感からかやる気が低下してます(←おい)。
2016.04.15 13:50 | 工作 | トラックバック(-) | コメント(0) |
タイトルの通り。スマホのカメラレンズガラス内部に水滴(結露)が入ったときの対処法。
買い替えが脳裏をよぎって震えたけど、結論としてはなんとかなります。

まず、12時間ぐらい側面のカバーを開けて米櫃に突っ込んでおきました。しかし、ほとんど効果なし。怖くなってネットで対処法を調べました。すると、以下のサイトを発見。

携帯(スマホ)が水没気味になってカメラのレンズ内に水が入った時の裏技 ITメモ

これを見て、指でレンズガラスをこすりまくりました。すると、ちょっとずつ水滴が消えていきましたが、遅い。そして、冷えると、水滴の量は若干減るものの、また曇ってしまいました。
そこで、ドライヤーを使ってスマホ本体全体を温め、特にレンズガラスを温めることにしました。触感で約65℃を保ちました。すると、効果あり。ゆびでこするより早い。しかし、冷やすとやはり曇り、根気強く何度もやる必要がありました。効率を上げるため、本体側面のSDカードやUSB端子などのカバー扉は全て開け、ときどき口をつけて逆側のカバー穴からドライヤーの温風を送り込んで口をつけた側から内部の空気を吸う、を繰り返しました。すると、1時間ほどでかなり回復。しかし、やはり曇るので、しばらく乾燥した部屋で放置していたところ、なぜか水滴がかなり減っていました。さらに1時間放置すると、水滴は完全消失し、カメラは完全回復していました!!大成功です!!

さて、一旦は回復したものの、内部の基盤などにはまだ大量の水滴が残っているはず。このままでは内部湿度はほぼ100%で、冷やしたらまた結露しかねないですし、なにより基盤の結露は回路のショートや基盤の腐食、本体の破損につながります。そのため、一刻も早く内部の水滴を除去する必要があります。そのためには、乾燥した部屋で、ドライヤーで約65℃に保ってさらに2時間ほど保温乾燥が必要になるでしょう。米櫃は冷たいのであまり効果がありません。タッパーに乾燥剤を入れてドライヤーの温風で温めるが一番効果がありそうですが、ちょっと用意が大変なのでとりあえずはドライヤーのみで試してみたいです。

ちなみに、基盤に印刷された部分は金や銀でできているのですが、SDカードスロットなどとの接続部分はステンレスやニッケルやハンダが使われており、異種金属接合となっているので、ここが優先的に腐食します。また、カメラ素子などに水滴がつくと、表面の高電圧によるショートで素子が破壊される可能性があります。また、金メッキされた配線でも、電圧にもよりますが、電気が流れているとたとえ金でも錆びて腐食する可能性があります。一旦結露してしまったら最後まで気を抜かないように。ゴキブリやカビの蔓延と同じで、根気強い対処が必要になります。
また、素人の技量では乾燥が不完全になったり、スマホの材質が熱変性を起こして表面が溶ける・故障するなどの逆効果になったりする可能性が高いです。プロに任せたほうが無難です。なお、水没だと携帯電話ショップの保証範囲外になる会社がほとんどなので注意してください。水没以外の結露でも取り扱いの過失として保証範囲外になる可能性はゼロではありません。

以上、対処法でした。自己責任になりますが、買い替えるしかないかもと思っている人はちょっと待ってください。まだ見込みはあります。
2016.03.23 17:07 | コンピューター | トラックバック(-) | コメント(0) |

最近Twitterで話題になった数学の未解決問題で筆者が取り組んでいる問題に、プリクラ問題というのがあります。

という問題提起から始まったものです。Togetterまとめは以下。

プリクラ問題 - Togetterまとめ

プリクラ問題2

プリクラ問題まとめのまとめ - Togetterまとめ


---以上、2016年5月31日追記。---


プリクラ問題の総探索プログラムのRubyコードをおいておきます。

def solve(n,m) #プリクラ問題。n人がm人まで入れるプリクラで全員自分以外の人と1回以上撮るためのプリクラ撮影回数の最小値を求める。
mincount = C(n,m)
card = card(n,m)
order = order(C(n,m))
order.each{|elem| mincount=min(mincount,count(card,elem))}
return mincount
end
def count(card,order) #cardをorder順にparseしてcard使用回数を数えて返す関数
flag = make2d(order.length(),order.length())
counter = 0
for i in 0..(order.length()-1)
counter = counter + 1
parse(card[order[i]-1]).each{|elem| flag[elem[0]-1][elem[1]-1]=1}
if (sumElem(sumElem(flag)) == C(order.length(),2))
break
end
end
return counter
end
def parse(a) #[3,1,2]を代入すると[[3,1],[3,2],[1,2]]を返すような関数
deck = make1d(C(a.length(),2))
count = 0
for i in 0..(a.length()-1)
for j in (i+1)..(a.length()-1)
deck[count] = [a[i]] + [a[j]]
count = count + 1
end
end
return deck
end
def order(n) #[[1,2,3],..,[3,2,1]]を返すような関数
deck = make1d(P(n,n))
line = make1d(n)
for i in 0..(n-1)
line[i] = i + 1
end
counter = [0]
def shuffle(orig,count,a,b=[]) #配列の要素を順番に抜き出す再帰的関数
if a.length() == 0
orig[count[0]] = b
count[0] = count[0] + 1
else
a.each{|i| shuffle(orig,count,a-[i],b+[i])}
end
end
shuffle(deck,counter,line)
return deck
end
def card(n,m) #[[1,2,3],..,[3,4,5]]を返すような関数
deck = make1d(C(n,m))
temp = deck.clone
temp[0] = make1d(m)
for i in 0..(m-1)
temp[0][i] = i+1
end
deck[0] = temp[0].clone
def pointer(n,m,narray,num) #[1,4,5]を代入すると[2,3,4]を返すような関数
if num > -1
if narray[num] < n+num+1-m
narray[num] = narray[num]+1
if num < m-1
for i in 1..(m-1-num)
narray[num+i] = narray[num]+i
end
end
return narray
else
pointer(n,m,narray,num-1)
end
else
return 'error: the last elem [n-m+1,..,n] was put in pointer().'
end
end
for i in 1..C(n,m)-1
temp[i] = pointer(n,m,temp[i-1],m-1)
deck[i] = temp[i].clone
end
return deck
end
def max(x,y) #x,yのうち大きい方を返す
if x >= y
x
else
y
end
end
def min(x,y) #x,yのうち小さい方を返す
if x <= y
x
else
y
end
end
def maxElem(a,i=a.length()-1) #0..iの配列aのうち最大の要素を返す
if i==0
a[0]
else
if maxElem(a,i-1) > a[i]
maxElem(a,i-1)
else
a[i]
end
end
end
def minElem(a,i=a.length()-1) #0..iの配列aのうち最小の要素を返す
if i==0
a[0]
else
if minElem(a,i-1) > a[i]
a[i]
else
minElem(a,i-1)
end
end
end
def sumElem(a,i=a.length()-1) #配列の要素の合計を返す
if i==0
a[0]
else
a[i] + sumElem(a,i-1)
end
end
def make1d(n) #長さnの零列ベクトルを返す
a = Array.new(n)
for i in 0..(n-1)
a[i] = 0
end
a
end
def make2d(height,width) #height行witdth列の行列を返す
a = Array.new(height)
for i in 0..(height-1)
a[i] = make1d(width)
end
a
end
def C(n,k) #nCkを返す
if k > n
0
else
if k == 0
1
else
C(n-1,k-1)+C(n-1,k)
end
end
end
2016.03.08 01:40 | 数学 | トラックバック(-) | コメント(0) |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。