約分したり最大公約数を算出するPythonスクリプトを作ってみた

最近 Youtubeで「10033/12877を約分する」というのを見ました。どうするんだろと思ったら「連分数」というのを使うらしいです。 連分数というのは、分母を整数+分数の形にしたもの分の1にして、というのをどんどん進めていった分数のことです。 詳しくは連分数 - Wikipediaをご覧下さい。 これだったらPythonで簡単に作れると思って、今回作ってみました。あまり需要はないと思います...(^^; Pythonスクリプト 今回Pythonスクリプト(.py)を作成・実行できるiPhoneアプリ「Pyto」とJupyterNotebook形式(.ipynb)を作成・実行できるiPhoneアプリ「Carnets」それぞれで作ってみました。 Pytoに関しては、ショートカットからパラメータを渡して実行できるので、ショートカットアプリも作ってみました。 Pyto - Python 3 15.0.3分類: 開発ツール,仕事効率化価格: 無料 (Develobile S.p.A.) Carnets - Jupyter 1.5.4分類: 開発ツール,教育価格: 無料 (Nicolas Holzschuch) スクリプトのダウンロード 以下のリンクからスクリプトをダウンロードして下さい。 Download ScriptPyto - 約分&最大公約数 Download Scriptショートカット - 約分&最大公約数ƒˆ Download ScriptCarnets - 約分&最大公約数 使ってみる Pyto単体の場合 ▼スクリプトの最初の方にあるchildに分子の数値、parentに分母の数値を入力して(デフォルトで分子=10033、分母=12877になってます)、右上の実行ボタンをタップ ▼下のコンソールに結果が表示されます。 10033/12877は最大公約数79で、127/163に約分できることがわかります。 10033=79×127、12877=79×163なのであってるようです。 ショートカットから実行する場合 上で説明した方法だと、毎回スクリプトを書き換えないとダメですが、ショートカットからだと分子、分母をパラメータとして渡すことで実行できるので便利です。 ここでは分子=6771、分母=7381の場合で説明します。 ▼ショートカットの「約分&最大公約数」のマークをタップ ▼分子に6771を入力して完了をタップ、分母に7381を入力して完了をタップ ▼Pytoが起動して、下のコンソールに結果が表示されます。 いちいちスクリプトを書き換えないで済むので便利です。(^^) Carnetsの場合 これはJupyterNotebook形式なので、外部からパラメータを渡すことは出来ないようです。 ▼最初のセルのchildとparentを書き換えて下さい。デフォルトは分子=10033、分母=12877です。 ▼それぞれのセルを実行すれば、3番目のセルに最大公約数、5番目のセルに約分結果が表示されます。 こちらも同じ結果が得られました。 最後に 今回PytoとCarnetsでスクリプトを作りましたが、それぞれ.py、.ipynbなのでデスクトップでも使えると思います。 あまり需要はないかもしれませんが、中高生のお子さんがいる方は使ってみては? 紹介したアプリ Pyto - Python 3 15.0.3分類: 開発ツール,仕事効率化価格: 無料 (Develobile S.p.A.) Carnets - Jupyter 1.5.4分類: 開発ツール,教育価格: 無料 (Nicolas Holzschuch) happyChappy(@happyChappy1115)でした。Sponsored Link

Pythonista3のスクリプトをウィジェットに配置する方法

iOS14 になってからホーム画面にウィジェットを配置できるようになりましたね。 ▼こういうやつです でも全てのアプリがウィジェットとして配置できるわけではないようですね。 今回紹介するPythonista3もウィジェットの追加アプリ一覧に出てきませんが、ショートカットアプリを使えば配置できるようになります。 ショートカット ▼ショートカットを起動して右上の+をタップして、アクションを追加をタップ ▼スクリプティングをタップして、下の方にあるPythonistaのスクリプトを実行をタップ ▼ウィジェットに配置したいスクリプト名をスクリプト名欄に入れます。 Pythonista3のフォルダに入れているスクリプトを指定する場合は上図のようにフォルダパスも必要です。引数がなければ空欄でOKです。 ▼右上の「・・・」をタップしてショートカット名を設定して完了をタップ これでショートカットを使って、Pythonista3スクリプトを起動できるようになりました。 あとはこのショートカットのウィジェットをホーム画面に配置します。 ウィジェットをホーム画面に配置 ▼ウィジェットを追加したいホーム画面の下の方の空いたスペースを長押しするとプルプルするので、左上の+をタップ ▼下の方のアプリ一覧からショートカットを選択して、ウィジェットを追加をタップ ▼ウィジェットが配置されたので、完了をタップ これでPythonista3スクリプトのウィジェットが配置出来ました。(^^) ちなみに 今回ホーム画面に配置したPythonista3スクリプトは、乗換案内で1度検索した駅名をリスト化し、次回からは発着駅や経由駅名を番号入力するだけで即検索できるスクリプトです。 以前ブログで紹介してるので、興味ある方はそちらもご覧下さい。 よく使う駅名をリスト化して、簡単にYahoo!乗換案内検索ができるpythonスクリプトを作ってみた! happyChappy(@happyChappy1115)でした。Sponsored Link Posted from するぷろ for iOS.

iPhoneでChromeで見ているページをホーム画面に追加する方法

iOS14 になってからデフォルトブラウザが変更可能になりましたね。 皆さんはもう変更しましたか? 私は今回試しにChromeに変更してみました。(^^) 結構便利かなと思ったんですけど、Safariの時にたまに使ってた「ホーム画面に追加」がChromeでは出来ないじゃないですか! 何か方法があるのかな? 皆さんはどうしてます? ということで今回ショートカットアプリを使って、Chromeで見ているページをホーム画面に追加できるようにしてみました。 当然そのアイコンをタップすればChromeで開きます。(^^) ショートカットダウンロード デフォルトではギャラリーのショートカットしかダウンロードできない設定になっているので、以下のようにしてダウンロード出来るように設定して下さい。 ▼設定からショートカットを開いて、信頼されていないショートカットを有効にする 以下の2つのショートカットをダウンロードして下さい。 Download Action 1ホーム追加リストƒˆ Download Action 2ホーム画面に保存ƒˆ ホーム画面に追加する流れ Chromeで見ているページから共有で「ホーム追加リスト」ショートカットを実行メモの「ホーム画面URL」ノートに見ているページのURLを保存し、「ホーム画面に保存」ショートカットが起動インデックスを1増やして、このショートカットを見ているページタイトルで別名保存このショートカットをホーム画面に追加 使ってみる ▼見ているページで共有をタップ ※ここではChromeを使ってますが、他のブラウザでも出来ます。 ▼上にスワイプしてホーム追加リストをタップ ▼初めて起動した時だけメモに保存するか聞いてくるので保存をタップ ▼「ホーム画面に保存」が起動するので、赤枠の数字を1増やして(ここでは0なので1にします)完了をタップ ▼「ホーム画面に保存」を長押しして複製をタップ ▼今複製したショートカットを開いて ▼見ていたページのタイトルが自動でコピーされてるので、ショートカット名を選択してペーストをタップ ▼見ていたページのタイトルがペーストされるので、好きな名前に修正して下さい。 ▼そのまま画面下のアクションをタップして、ホーム画面に追加をタップ ▼さらに追加をタップすれば、ホーム画面に追加されます。 ホーム画面に追加されたアイコンをタップすればChromeでページが開かれます。 ちなみに 本当なら「ホーム画面に保存」ショートカット内にタイトルとURLを保存したかったんですが上手くいかなかったので、メモアプリにファイル名「ホーム画面URL」として保存し、ホーム画面のアイコンをタップすると、ショートカット内のタイトル名で保存されたショートカットを呼び出し、そのショートカットで指定したn番目のURLをメモから取り込んでChromeを開くようにしてます。 なので、 ホーム画面URLメモやショートカット内のタイトル名で保存したショートカットを削除すると、ホーム画面のアイコンをタップしても何も起こらないので注意して下さい。(^^; 最後に 一応Chromeで開けるホーム画面追加は出来ましたが、Safariの方が簡単でいいですね。(^^; ま、どうしてもChromeを使いたいけど、ホーム画面に追加が出来なくて困ってた人はお試し下さい。 happyChappy(@happyChappy1115)でした。Sponsored Link Posted from するぷろ for iOS.

iPhoneでJupyter Notebookを使ってPythonしてみた!

厳密には Juno Connectというアプリなんですが、ほぼ Jupyter Notebookそのままに使えます。 Juno Connect 1.5.10分類: 開発ツール,教育価格: ¥1,220 (Rational Matter) iPhoneでPythonプログラミングと言えば、Pythonista3が有名だと思います。 Pythonista 3 3.3分類: 仕事効率化,教育価格: ¥1,220 (omz:software) 私も以前「[Pythonista3] Youtubeダウンロードライブラリ「Pytube」がまたエラーを出すようになったので「youtube-dl」に変更してみた!」や「よく使う駅名をリスト化して、簡単にYahoo!乗換案内検索ができるpythonスクリプトを作ってみた!」など多数のスクリプトを公開してます。 でもPythonista3は凄いアプリなんですが、データ解析等でよく使うpandas等が使えなかったりするんですよ。(T_T) 会社ではJupyter Notebookの開発環境でPythonのコーディングをしてるので、出来ればiPhoneでもJupyter Notebookが使えないかと思ってました。 そしたら、Juno Connectというアプリがあることを知ってダウンロードした訳です。 Juno ConnectとはiOS上で動作するJupyterクライアントアプリで、iPhoneにインストールしたJuno ConnectからリモートJupyterサーバーにアクセスしてデータ分析を行います。 Jupyterサーバーとして以下の4つが使えますが、これ以外にも独自のサーバーもOKなようです。 Juno社のリモートサーバー(Try Jupyter!)Azure NotebooksCOCALCbinder 私はMicrosoftのアカウントを持ってるのでAzure Notebooksにしてましたが、2020年9月に使えなくなるらしいので、COCALCに変更しました。 ちなみにリモートサーバーを使わずにローカルでJupyter Notebookが使えるJunoというアプリもあります。こちらの方が更に高いですが、お好きな方で。 Juno 1.2.8分類: 開発ツール,教育価格: ¥1,840 (Rational Matter) n次近似 前回、iPhoneのMatlabで行列を使ってn次近似する方法を紹介しました。 iPhoneのMatlabを使ってみた! 今回も同じように行列を使って近似式を求めてもいいんですが、折角Pythonなのでライブラリを使って近似してみます。 ・ExcelData.xlsx取得部 import numpy as np import pandas as pd df=pd.read_excel('ExcelData.xlsx',index_col=0) B=df.values Bnp=np.matrix(B) print(Bnp) ・n次近似指定部 print('n次近似(n>=1) n=?') N=int(input()) ・n次近似演算、グラフ化部 import numpy as np import matplotlib.pyplot as plt x=Bnp[:,0].T.tolist()[0] y=Bnp[:,1].T.tolist()[0] \#近似式の係数 res=np.polyfit(x,y,N) xMax=Bnp[:,0].max() RANGE=10 xMax=int(np.ceil(xMax/RANGE)*RANGE) \#近似式の計算 yy = np.poly1d(res)(x) \#グラフ化 plt.plot(x,yy) plt.plot(Bnp[:,0],Bnp[:,1],marker='*',linestyle='None') plt.xlim(0,xMax) \#グラフタイトルに近似式 title='' for i in reversed(range(N+1)): if i==N: ...

iPhoneのMatlabを使ってみた!

最近 会社でMatlabを使うことがたまにあって、文法とか覚えるのに色々弄れるiPhone版とかないかなぁと思って調べたらあるじゃないですか!しかも無料で! MATLAB Mobile 8.1分類: ビジネス,教育価格: 無料 (MathWorks) まぁ、無料なのは作成したファイルが250MBまでのようですが、練習するだけなら十分です。(^^) n次近似式算出方法 そこで練習として、複数点からn次近似するプログラムを作ってみようと思います。 近似方法として行列を使った方法をやってみます。 n次近似も同様にすればOKです。 Matlab mファイル 以下のプログラムを適当なファイル名(拡張子.m)で保存します。 clear;clc; %各行(x,y)の行列取得 B=readmatrix('ExcelData.xlsx'); B=B(:,2:end) plot(B(:,1),B(:,2),'*'); %N次近似 prompt='n次近似(n>=1) n=?'; N=input(prompt) a=[]; %係数a[] A=[]; dataNum=size(B,1); for i=1: dataNum A(i,1)=1; for j=1:N A(i,j+1)= B(i,1)^j; end y(i,1)=B(i,2); end AtA=A.'*A; Aty=A.'*y; ab=inv(AtA)*Aty; for i=1:N+1 a(i,1)=ab(i,1); end a(:,1) %x軸最大 xMax=max(B(:,1)); range=10; xMax=ceil(xMax/range)*range; xx=0:xMax; yy=0; for i=1:N+1 yy=yy+a(i,1)*xx.^(i-1); end plot(xx,yy); hold on plot(B(:,1),B(:,2),'*'); hold off また、元データをExcelData.xlsxというファイル名でカレントディレクトリに保存します。 mファイル以外のファイルの保存方法は後述します。 ここで使ったExcelData.xlsxは以下のようなファイルになってます。 ▼アプリ上部の実行ボタンをタップ ▼読み込んだExcelData.xlsxが表示されるので、グラフを見たければ右下のグラフアイコンか右上のグラフボタンをタップ ▼グラフが表示されるので、完了をタップして戻る ▼3次近似の場合、3を入力 ▼3次近似式の各係数が表示されるので、グラフアイコンかグラフボタンをタップ ▼3次近似のグラフが表示されます。 mファイル以外の保存方法 ▼ブラウザーでwww.mathworks.com/loginにアクセスしてMATLAB Driveにログインして、保存したいフォルダをタップ ▼矢印ボタンをタップしてファイルをタップ ▼ファイルを選択をタップ ▼ブラウズをタップしてアップロードしたいファイルを選択 ▼指定したフォルダにアップロードされました。 最後に Matlabというだけあって、行列(Matrix)の演算は簡単に出来ますね。グラフ化も簡単でした。 iPhoneだけで出来るというのがいいですね。 今後ももっと色々練習してみようと思います。(^^) 紹介したアプリ MATLAB ...