• Skip to main content
  • Skip to primary sidebar

学習記録

BokehとHoloviewsでグラフをhtmlにする

2018年4月23日 by 河副 太智 Leave a Comment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import holoviews as hv
curve = hv.Curve(range(10)) # Could be any HoloViews object
 
renderer = hv.renderer('bokeh')
 
# Using renderer save
renderer.save(curve, 'graph.html')
 
# Convert to bokeh figure then save using bokeh
plot = renderer.get_plot(curve).state
 
from bokeh.io import output_file, save, show
 
output_file("graph.html")
show(plot)

 

 

 

Filed Under: Bokeh, グラフ

曼荼羅の壁画

2018年4月22日 by 河副 太智 Leave a Comment

1.母ピンの本数
2.角度
3.リストの素数

によって曼荼羅模様が変わるプログラム

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
%matplotlib inline
 
 
import matplotlib.pyplot as plt
import math
 
n = 35#母ピンの本数
 
kaku = 360 / n #角度
 
 
x = [] #ピンの位皿
y = [] #ピンの位皿
 
 
pnum = [11,81,101, 3, 17 ] # (1)素数のリスト
 
#索数番目のピンに糸をかける
 
plt.figure(figsize=(8, 8))
for p in pnum:
    for i in range(n+1):
        th = math.radians(kaku*i*p)
        x.append(100 * math.cos(th))
        y.append(100 * math.sin(th))
    plt.plot(x,y)#模様を壁画
    x.clear() # をクリア
    y.clear() #
plt. show()

Filed Under: グラフ

素数判定プログラム

2018年4月22日 by 河副 太智 Leave a Comment

フェルマーの小定理での素数判定は5行でできる

1
2
3
4
5
6
val = 6
 
if pow(2, val-1)% val == 1:
    print("{0}: 素数".format(val))
else:
    print("{0}: 素数ではない".format(val))

 

普通に判定すると以下のようになる

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
val= 6
cnt = 0
 
for a in range(2, val+1):
    cnt += 1
    if a*a > val: # (1)
        result= True
        break
 
    if val% a == 0:
        result = False
        break
 
 
 
if result:
    print ("{0}: 素数:({1})".format(val, cnt))
else:
    print("{0}: 素数ではない:({1})".format(val, cnt))

 

Filed Under: 数学

素因数分解

2018年4月21日 by 河副 太智 Leave a Comment

 

200を素因数分解すると
2^3 x 5^2が答えである

これをpythonで書くと以下のようになる

1
2
import sympy as sym
sym.factorint(200)

1
{2: 3, 5: 2}

Filed Under: 数学

Blockchainプログラミング基礎:listの使い方

2018年4月21日 by 河副 太智 Leave a Comment

PythonでのBlockchainプログラミングの初歩はlistの使い方です。

1
2
3
4
#変数blockchainに4つの数値をlist形式で渡す。
>>> blockchain =[1,5,7,809]
>>> blockchain
[1, 5, 7, 809]

 

1
2
3
#変数blockchainのlist内の左から3番目の数値を取得
>>> blockchain[2]
7

 

1
2
3
#変数blockchainのlist内の左から3番目の数値を2倍にする
>>> blockchain[2]*2
14

↑このlistの特定の数値を2倍にするのはlistの中身を変更するわけではなく
一次的に2倍にされた数値が表示されているだけですので
再度変数blockchainを表示させれば2倍になる前の数値が出てきます。

 

1
2
3
4
5
6
#listに値を追加する場合はappend()を使用数値3をlist末尾に追加します。
>>> blockchain
[1, 5, 7, 809]
>>> blockchain.append(3)
>>> blockchain
[1, 5, 7, 809, 3]

 

1
2
3
4
5
6
#listの末尾を削除するにはpopを使用
 
>>> blockchain.pop()
3
>>> blockchain
[1, 5, 7, 809]

↑この方法ですと一次的ではなくlistから値が削除されるので
次回変数blockchainを呼び出せば末尾の3は除外されたlistが
表示される事になります。

Filed Under: ブロックチェーン Tagged With: ブロックチェーン

暗号の基礎を恋愛短編集風に語る

2018年4月19日 by 河副 太智 Leave a Comment

 

恋愛短編集風にシーザー暗号の基礎を紹介します。
ブロックチェーンや暗号通貨の基礎に無理矢理繋げます

昔々ドイツの田舎にとある純真無垢な女の子がいました
ある日噂好きの友達から「好きな人は誰?」とメールで聞かれました

純真無垢な女の子は「andy君」と答えたくてもそのメールが
お父さんに見られたら大変です。
女の子のお父さんのスマホチェックはとても厳しいからです。

そこで純真無垢な女の子は[andy]という文字を暗号化して
噂好きの友達にメールしようと試みました。

そして無事[andy]という文字を[DQGB]に変換する事ができ、
メールに暗号で「私の好きな人は[DQGB]君よ」と言いました。

予め暗号解読のキーを知っている噂好きの友達は
すぐに[DQGB]から[andy]に変換する事ができました。

これで純真無垢な女の子はお父さんにばれないように
好きな男の子の名前を噂好きの友達に伝える事ができました。

 

しかし、友達は噂話が大好きです。
翌日学校中にばらされてしまい大きな噂になりました。

「これじゃあ暗号の意味がないじゃない…」
もはや純真無垢な女の子はショック過ぎて登校できなくなってしまいました。

しかし、それを聞いたandy君は元々純真無垢な女の子を好きでした
結果オーライで2人は恋人となりドイツの田舎で幸せになったとさ。

めでたしめでたし…

 

 

 

では本文に入ります。

 

andyという人名(アンディー君)を
暗号でDQGBになる仮定を紹介します。

andyというのは暗号化する前の文字なので「平文」と呼び
DQGBは暗号化された文字なので「暗号文」と呼びます

 

まずは暗号のベースとなるアルファベット一覧を作ります。
小文字アルファベットに数字1~26を割り当てていきます
(小文字アルファベット一覧の数字は赤にします)

a b c d ~ w x y z
1 2 3 4 ~ 23 24 25 26

 

同じように大文字アルファベットにも数字1~26を割り当てる
(大文字アルファベット一覧の数字は青にします)

A B C D ~ W X Y Z
1 2 3 4 ~ 23 24 25 26

 

そして

 

「小文字アルファベット一覧」の下段の数字に「3を足す」
(ポイントはwの26までいったら次のxは最初に戻って1になる)

a b c d ~ w x y z
4 5 6 7 ~ 26 1 2 3

 

「小文字アルファベット一覧(3を足した)」と
「大文字アルファベット一覧(何も足していない)」を合体させてみます

すると以下のようになります。

 

a b c d ~ w x y z
4 5 6 7 ~ 26 1 2 3
A B C D ~ W X Y Z
1 2 3 4 ~ 23 24 25 26

 

上記の図の中から探してみてください

aは4
Dは4
となっておりますよね?

 

これはaとDいう小文字と大文字のアルファベットは
4という数字を基にして繋がっているという事です

 

分かり易くする為に
aに合わせて大文字アルファベット一覧をずらします

a b c d ~ w x y z
4 5 6 7 ~ 26 1 2 3
D E F G ~ Z A B C
4 5 6 7 ~ 26 1 2 3

こうしてみるとaとDいう小文字と大文字のアルファベットは
4という数字を基にして繋がっているという事がわかると思います

赤数字対応のアルファベット小文字は暗号化前の「平文」
青文字対応のアルファベット大文字は暗号化後の「暗号文」

bはE

cはF

dはG

wはZ

xはA

yはB

zはC

 

こんな風に一方のアルファベットに数字を割り当てて
もう一方のアルファベットにずらした数字を割り当てて
andyという平文の人名を暗号でDQGBになります。

 

つまり噂好きの友達は「3文字ずらしルール」というキーを
事前に知っていたので暗号を平文に変換する事ができたのです。

 

よくわかんねぇよ!という方、
それ間違ってねぇ?という方
いらっしゃいましたらコメント下さい

Filed Under: 暗号学

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 19
  • Page 20
  • Page 21
  • Page 22
  • Page 23
  • Interim pages omitted …
  • Page 66
  • Go to Next Page »

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in