フリーランス チャレンジ!!

フリーランス チャレンジ!!

現役フリーランスエンジニアが書く雑記ブログ

【Go言語】エラトステネスの篩(ふるい)で素数を求めるプログラム

エラトステネスの篩 ふるい 素数

素数を求めるのに単純に判定するより、エラトステネスの篩を使えば計算量が少なくなるため処理が高速になります。

 

アルゴリズムとかあまり知らずにプログラム組んでる人はぜひ呼んでください。

ちょっと世界が変わりますよ!

(アルゴリズム勉強しようって気になります)

 

エラトステネスの篩

エラトステネスの篩 (エラトステネスのふるい、英: Sieve of Eratosthenes) は、指定された整数以下の全ての素数を発見するための単純なアルゴリズムである。古代ギリシアの科学者、エラトステネスが考案したとされるため、この名がある。

引用:wikipediaより

 


尚、エラトステネスの篩のアルゴリズムは以下の通りです。

1:2 から n までの整数を並べる。
2:生き残っている数の中で一番小さい(かつまだ p として使われていない)ものを新たに p とおき,p 以外の p の倍数を全て消していく。
3:2の操作を繰り返していき,p が n−−√ を越えたら終了。最終的に生き残ったものが素数。

 引用:エラトステネスのふるいとその計算量 | 高校数学の美しい物語

 

最近マイブームのGo言語でプログラムします。

 

エラトステネスの篩を使わないロジックとどのくらい処理時間に差があるかも確認してみます。

 

 

なぜエラトステネスの篩が速いのか?

そもそもなぜエラトステネスの篩が速いのでしょうか?

 

アルゴリズムを見てもピンとこないので、実例をあげて確認しましょう。

 

実例として0〜100までの数で素数を求めます。

※実際、0と1は素数では無いのでプログラムは2〜100の数から素数を求めます。

 

ちなみに素数とは1と自分自身以外で割り切れない数のこと。(3、5、7とか・・・)

 

通常の素数を求めるプログラム

2から100まで1つずつ自分以外で割れるかチェックしていきます。

 

①まず"2"を調べる

②"2"は"3"で割れるか? 割れない次の数を調べる

③"2"は"4"で割れるか? 割れない次の数を調べる・・・

④これを"100"まで調べて、割れないことがわかったので素数

 

このように素数の場合は、100までチェックしなければいけません。

ただ、素数でない例えば"4"の場合は、最初の"2"で割り切れるのですぐチェックが終わります。

 

エラトステネスの篩のプログラム

次にエラトステネスの篩ですが最大数の平方根までチェックすればOKです。

 

100の平方根は10なので2〜10までチェックすればいい。

そしてリストから調べてる数の倍数をふるい落とします。

 

実例でみてみましょう。

 

①まず"2"を調べる

②"2"で割れる数をリストから削除(4,6,8,10,12,14・・・)

③"3"で割れる数をリストから削除(15,21,27,33・・・)

④これを"10"まで調べて、リストに残った数が素数

 

エラトステネスの篩が速い理由

 ここまで通常のプログラムとエラトステネスの篩のプログラムの違いが分かったと思います。

 

なぜエラトステネスの篩が速いのか?

 

それはチェックする数です。

 

通常のプログラムは2〜100まで88回チェックしなければいけませんが、エラトステネスの篩は2〜10まで8回チェックすればOKです。

 

計算量が全然違うのでエラトステネスの篩が速いというわけです。

 

次にプログラムをみてみます。

 

エラトステネスの篩のプログラム

ポイントは5行目で平方根を求め、11行目のforループは平方根の値までしかループしません。 

gist3ed2096a8508c50067cedb3bab9042d4

 

普通のプログラム

gista8cd5ec2418d7d89fd3764b6efe39bff 

 

処理時間を計測

 さて、本当にエラトステネスの篩が速いのかプログラムを動かし処理時間を計測しました。

 

プログラムは下記です。(Go言語)

gist05a83ff5a238e13a3cc3717a82206e4e

 

実行結果はこんな感じ

f:id:ksakae1216:20180712105424p:plain

 

素数を求める数は2〜10万まで。

3回実行して平均は下記の通りでした。

エラトステネスの篩:0.02秒

普通に素数を求める:4.34秒

 

全然違いますね。

 

最後に

 処理数が多い場合、このような効果的なアルゴリズムを知っていて実装すればかなり処理時間が短縮されます。

 

数学(アルゴリズム)の勉強も必要だなと痛感しました。

 

最初はこの辺からかな〜〜

【Go言語】基本文法まとめ3(ゴルーチン、チャネル、select文 、同期)

f:id:ksakae1216:20180704151123j:plain

前回の続きで且つ最終回です。

 

www.ksakae1216.com

 

今回は、ゴルーチン、チャネル、select文、同期について解説します!

 

 

ゴルーチン

gist0a3d7bf520c67d2a5fc642c566b8d0ea

 

関数の前にgoを付けるだけで並列処理を実装できます。
ゴルーチン(並列処理)はとても軽いようです。
mainの処理はゴルーチンの終了を待たない。
ゴルーチンの結果を取得するにはチャネルを使う。(チャネルは次で説明します)

 

【実行結果】

f:id:ksakae1216:20180704145136p:plain

 

チャネル

gistf87619cef1b1e9607da7cac090e1eca6

 

送信専用、受信専用は主に関数の引数として受け取る際に使用する。
使わなくなったチャネルは最後にcloseする。
受信専用チャネルはクローズできない。
クローズ済みのチャネルにデータ送信するとランタイムパニックが発生。

 

【実行結果】 

f:id:ksakae1216:20180704145643p:plain

 

select文

gistb403cc61f37027c64598f3e2438f767b

 

複数のチャネルを待機する場合は、select文を使う。
defaultはどのチャネルも受診しなかった時に呼ばれる。
defaultが無い場合は、受信するまで待機する。

 

【実行結果】

f:id:ksakae1216:20180704150001p:plain

 

同期

gist80435d5c69ddf70b8d092edaabfdb1fe

 

WaitGroupをインクリメントする。
Doneでデクリメントする。
WaitはWaitGroupが0になるまで待つ。
つまり、並列でやりたい処理の数分インクリメントしてそれぞれの処理が終わればデクリメントしてWaitGroupが0になれば全ての並列処理が完了。

 

【実行結果】

f:id:ksakae1216:20180704150619p:plain

 

 Gitに登録しました

前回記事のソースに追加で今回のソースもGitに登録しました。

github.com

 

【関連記事】

このソースを試して見たい方は下記記事で簡単に開発環境を作成できますよ!

www.ksakae1216.com

【Go言語】基本文法まとめ2(interface、スライス、map、エラー処理、panic、recover)

Go言語 基本 文法 まとめ

前回の続きです。

 

www.ksakae1216.com

 

今回は、interface、スライス、map、エラー処理、panic、recoverについて解説します!

 

 

interface

giste1476d1affd6034ebfcc9608ba237a29

 

8~10行目のインターフェースでEat()を実装してるのでCarlingGirlもFoodFighterもHumanとして扱える
正直Java経験者の私にはピンとこない仕様ですが慣れるしかなさそう。。。

 

【実行結果】

f:id:ksakae1216:20180702220343p:plain

 

スライス

gista6f23ce501f560d94d49649526f32c3b

 
配列と似ているが値を参照型で保持している。
スライス式"[:]"を使えばスライスになる。

 

【実行結果】

f:id:ksakae1216:20180702220508p:plain

 

map

gist8bc6953454cbbbb647327e7d6ad22044

 

マップの格納順は補償されない。
存在しないキーを指定してもエラーにならずnilが返る。

 

【実行結果】

f:id:ksakae1216:20180702220555p:plain

 

エラー処理

gist5d34abe64c6a932296cbfe435c7b52f0

 

11行目にコメントしてますが、エラーは2つ目の戻り値で返ってくるそうです。 

 

【実行結果】

f:id:ksakae1216:20180702220632p:plain

 

panic

gistea0ca98a4d1ac0f2f19d12a739223707

 

panicが発生すると以降のコードは実行されません。
但し、deferはpanicが発生しても実行されます。

 

またdeferはそれぞれの関数の最後に実行されます。

なのでdeferにはファイルやDBのクローズ処理を記載するのがいいです。

 

【実行結果】

f:id:ksakae1216:20180702220717p:plain

 

recover

gist55389539e6654d56183c35eafde4c7ce

 

panicが発生した時だけ処理したい場合、recoveryを使います。

 

【実行結果】

f:id:ksakae1216:20180702220804p:plain

 

Gitに登録しました

前回記事のソースに追加で今回のソースもGitに登録しました。

github.com

 

【関連記事】

このソースを試して見たい方は下記記事で簡単に開発環境を作成できますよ!

www.ksakae1216.com

DockerでGo言語(Golang)開発環境を5分で作成

f:id:ksakae1216:20180626183945p:plain

 

前回の記事でGo言語の基本文法をまとめました。

www.ksakae1216.com

 

せっかくだから動かしたいなと思い、Dockerで開発環境を作成しました! 

※「【Go言語 】基本文法まとめ - フリーランス チャレンジ!!」のソースは職場で書いたので自宅PCで開発環境を作成。

 

この記事のコマンドをコピペすれば5分で環境作って実行できるのでぜひお試しください。

※1箇所だけ、.bash_profileをviで修正するところがあります。

 

【目次】

 

5分で作成のステップ1(Dockerコンテナ作成と起動)

最新のCentOSをpullして起動します。

f:id:ksakae1216:20180626165852p:plain

【コマンド】

docker pull centos:latest

 

次にコンテナを起動しつつ接続します。

f:id:ksakae1216:20180626170736p:plain

【コマンド】

docker run -v /Users/sakae/Documents/dockerWork/dockerfile/golang/src:/home/ -it --name golang centos

※最後の"centos"はバージョンしてしないと"latest"と同じ意味になります。

 もしdocker pullコマンドで"docker pull centos:XX.XX"のようにバージョン指定した場合、ここのコマンドでもバージョン指定して下さい。

 

"-v"オプションで永続化します。

"/Users/sakae/Documents/dockerWork/dockerfile/golang/src"はローカルPCのパスとなるので適宜変更してください。

コロンで区切った"/home/"はコンテナ(CentOS)のパス。(そのままでOKです)

つまり、コンテナの"/home/"に置いてあるファイルをローカルPCからも参照できるようになります。

 

この永続化をする事でローカルPCのIDEでソースを見る事ができます。

 

5分で作成のステップ2(Go言語の開発環境作成)

さてコンテナ(CentOS)上に環境を作成します。

やることは下記の通り。

①事前準備

②Go言語インストール

③PATHの修正

④Gitからソースをクローンする

 

下記手順はコンテナ上で実行してください。

 

事前準備

【コマンド】

yum -y update
yum -y install wget
yum -y install git

 

※最新のCentOSですが念の為、yumをupdate。

 その後、wgetとgitをインストール

 

Go言語インストール

【コマンド】

wget -O go.tgz https://golang.org/dl/go1.10.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go.tgz
rm -f go.tgz

 

2018年6月26日時点で最新のgoを取得し"/usr/local"に展開します。

 

PATHの修正

"~/.bash_profile"にGoのパス"/usr/local/go/bin"を追加。

f:id:ksakae1216:20180626180053p:plain

.bash_profileにパスを追加してください。(赤四角で囲ってる部分)

 

Gitからソースをクローンする

【コマンド】 

cd /home

git init
git clone https://github.com/ksakae1216/Golang.git

 

f:id:ksakae1216:20180626180354p:plain

"/home"に移動してもらってgitコマンドを実行。

すると"Golang"というディレクトリが作成されその配下にソースが配置されました。

 

これで無事、開発環境の作成が完了です!!

 

実行する 

【コマンド】

go run main.go

 

f:id:ksakae1216:20180626180825p:plain

 

はい、このように見事に実行されました!!

 

IDEで修正する

ちなみにDockerコンテナ作成時に永続化したおかげでローカルPCのIDEを使用する事ができます。

 

コンテナ上でクローンしたソースですがローカルPCの"/Users/sakae/Documents/dockerWork/dockerfile/golang/src"配下に"Golang"フォルダが作成されていてその下にソースも格納されているのでIDEで開く時はこのフォルダを指定してください。

 

今回IDEはVisual Studio Code(vscode)を使います。

f:id:ksakae1216:20180626181427p:plain

赤枠部分を修正しました。

 

再度実行しましょう。

f:id:ksakae1216:20180626181841p:plain

ちゃんと修正した通りになってますね。 

 

尚、コンテナを抜ける場合は、"exit"コマンドで抜けれてコンテナも停止します。

 

また、2回目以降コンテナを起動する場合は、下記のようにしてください。

【コマンド】

docker ps --all

上記コマンドでコンテナID(CONTAINER ID)を確認

 

docker start コンテナID

上記でコンテナ起動

 

docker attach コンテナID

上記でコンテナ接続

 

こんなイメージです。

f:id:ksakae1216:20180626182332p:plain

 

 

最後に

やっぱりDocker使うと簡単ですね!!

 

しかも、開発が終わればコンテナもイメージも削除してOK!

 

ソースはGitにあるから、またソース見たい時は今回と同じ手順で開発環境を復旧するだけ! 

【Go言語 】基本文法まとめ(if、switch、for、ポインタ、レシーバー、構造体、関数)

Go言語 基本 文法 まとめ

※1 

来月から始まるリモート案件がGo言語で機能追加なんですが、一度も書いた事ないんですね。

ヽ(´Д`;)ノアゥア...

 

勉強しながらでもOKとの事で、案件始まる前に時間があり早速勉強しました。

 

参考にしたのは下記サイト。

はじめてのGo言語 - はじめてのGo言語

※すごくわかりやすくて良いサイトです!!

 

※1The gopher images are Creative Commons Attributions 3.0 licensed. That means you can play with the images but you must give credit to their creator (Renée French) wherever they are used.

 

 

基本文法をまとめました

実際に手を動かして、基本的なとこのソースを公開します。

 

Go言語やり始めで「あれ?どう書くんだっけ」とか、興味あるけど書いた事ない人にはおススメです。

 

最初の基本(main.go)

まずはコレが無くては始まりません。main.goです。

gist7327f62eae08417e95fd60e5a7a36f1f

 

変数の宣言がちょっと特殊ですね。

型を最後に持ってきてます。

 

【nyuumonFunc実行結果】

コマンド:go run main.go

f:id:ksakae1216:20180626074609p:plain

 

※ここ以降に関しては、main.goの12~18行目をそれぞれコメントアウトして実行して下さい。

 

if文

次はif文です。

gist8214b2b3bcb0d5ba74eb7cc00cd5ff3a

 

ifの後のかっこ"()"は不要。

6行目ですが他のファイルから呼ぶ場合は、先頭を大文字にします。(ifFuncはダメ)

 

【IfFunc実行結果】 

f:id:ksakae1216:20180626074902p:plain

 

switch文

gistd362df23d9f3cb44fe0138e4fa18a170

 

break不要です。
17行目のようにfallthrough書くと次の処理も実行。

(引数が"Ruby"の場合、"Rails"も処理します)

 

【SwitchFunc実行結果】

f:id:ksakae1216:20180626075027p:plain

 

for文

gist448ff228cfb40752a985d8aeea0623b8

 

Go言語にwhile文は無いのでwhileループもforで対応します。

普通のfor文は11行目から13行目。

while文は17行目から24行目。

foreach文は29行目から31行目。(ループ内でindex値を使わないので"_"にしてる)

 

【ForFunc実行結果】

f:id:ksakae1216:20180626075200p:plain

 

ポインタ

gist048e8f8b404408fcde32fe22334f7248

 

ここで大事な事が2つあります。

値渡しポインタ(参照渡し)です。

 

値渡しは関数内で更新しても変わらない。
ポインタ(参照渡し)は値が更新される。

 

【PointerFunc実行結果】

f:id:ksakae1216:20180626075355p:plain

 

レシーバー

gistd5ffdae2b8ec956c5ee91bc2146d0e5c

 

型宣言に関数を関連付けることができる。

Javaのメソッドのようなイメージで型宣言はクラスイメージです。

 

【ReceiverFunc実行結果】

f:id:ksakae1216:20180626075447p:plain

 

構造体

gist1d480beb7606b532ae2bf470012f074f

 

構造体名、メンバ変数ともに先頭が大文字だと他ファイルから呼べる、小文字だと呼べない

 

【StructFunc実行結果】

f:id:ksakae1216:20180627223318p:plain

 

関数いろいろ

gista6691a711435ba9e8d0f9abe6915a16a

 

可変長の引数、戻り値を返す、複数の戻り値を返すの3パターンのソースコードです。

 

【AboutFunc実行結果】

f:id:ksakae1216:20180626075605p:plain

 

最後に

ソースをGitに登録しました。

github.com

 

【次の記事】

www.ksakae1216.com

 

【関連記事】

このソースを試して見たい方は下記記事で簡単に開発環境を作成できますよ!

www.ksakae1216.com

ノートPCにおすすめのデュアルディスプレイと置き方はこれだ!!

おすすめ デュアルディスプレイ

早速ですが、この写真は私の作業環境です!

 

来月から自宅で作業することになり作業環境を整えようとディスプレイを買いました。

www.freelance-osusume.work

 

やっぱり、デュアルディスプレイは効率がアップします!

画面が広いからはかどる、はかどる。

 

さて、ディスプレイを買うにあたりたくさん調べました。

・サイズ(解像度)

・値段(できれば3万円以内)

・置き方

 

1つずつご紹介します。

もし、あなたがディスプレイ買おうと思ってたらぜひ参考にしてみてください。

 

 

サイズ(解像度)

私のPCがMacbook Pro 13インチで画面の解像度が2,560 x 1600なのでディスプレイの解像度が最低でもフルHD(1,920 x 1,200)より高い解像度がいいなと思ってます。

(特に根拠はありませんが)

 

ネットで見るとサイズと解像度は大体以下の通りです。

・23インチ 解像度:フルHD(1,920 x 1,200)

・27インチ 解像度:WQHD(2,560 x 1,440)

 

う〜ん、23インチじゃ物足りないな、せっかく買うんだから27インチだな!!

 

値段

サイズは決めたので次は値段です。

価格.comで27インチディスプレイの値段を調べると最安で税込29,000円くらい。

 

ちょっと高いな〜。

 

他にないかなってAmazon見てみると、25インチで21,800円!! 

しかもワイド!!

縦が1080がちょっと物足りないけど2万ちょっとでこの解像度。

これは買いです!! 

 

ディスプレイは何処に置く?

ディスプレイは何処に置こうかな?

 

ネットで調べるとデュアルディスプレイやってる人って大体下記の2パターン。

①ノートPCの横に置く

②ノートPCの後ろに置く

 

そして調べていくと、「②のノートPCの後ろに置く」パターンの人の意見で共通してるのが

・ノートPCの横にディスプレイがあり長時間作業すると首を左右に降る回数が多くなるのでツライ

・ノートPCの後ろにディスプレイがあると視線がまっすぐで疲れにくい

 

 

うん。なるほど!!

確かにそうかも!!

 

なのでディスプレイの置く場所はノートPCの後ろで決まり!!

 

ケーブルも買う

残念ながらMacbook ProはUSB-CしかないのでディスプレイのHDMIとMacのUSB-Cをつなぐケーブルも買います。

値段は1,699円。

 

ブロックも買う

Macbookの後ろにディスプレイ置く場合、ディスプレイの位置を高くするためブロックも買いました。 

下記リンクは880円もしますが、これと同じ物が100均で売ってます。

これを2つ買ってディスプレイの台とします。

 

デュアルディスプレイの置き方

はい、と言う事でデュアルディスプレイ環境の作成です。

 

まずはディスプレイ

f:id:ksakae1216:20180623145137j:plain

 

 次はデイスプレイとノートPC

f:id:ksakae1216:20180623152307j:plain

 ディスプレイとノートPCがかぶってます。。。

 

そこで100均で買ったブロック

f:id:ksakae1216:20180623151657j:plain

 

ディスプレイ乗せます。

f:id:ksakae1216:20180623151838j:plain

 

もう一度ノートPCつなぎます。

f:id:ksakae1216:20180623152325j:plain

 

ちょうどいい高さ!!

 

まだこの作業環境でガッツリ仕事したのは3日間くらいですが、非常に快適です。

 

ちょっとしたプログラム書くときは、Macでプログラムしてディスプレイにブラウザ開いて調べながらプログラミング、確認ももう1つブラウザ開いてそこで確認できるので全てを同時に見ながらプログラムできます。

 

またブログ書くのもブラウザを複数ウィンドウ立ち上げて作業できるのでカ・イ・テ・キです!!

 

やっぱ、デュアルディスプレイ最高だわ〜〜!!

住宅ローンを変動から全期間固定金利に変更した(毎月7千円支払いUP)

住宅ローン 変動 固定金利
あなたの人生にズッシリとのしかかる住宅ローン。

 

私にもズッシリとのしかかってて、今41歳で70歳まで29年。。。
長いな〜〜 。゚(゚´Д`゚)゚。

 

そんな住宅ローンには変動金利固定金利があり、恐らく多くの人は変動金利を選択しているのではないでしょうか?

 

もちろん私も変動金利です・・・が!
全期間固定金利に変更しました!!

 

理由としては、将来金利が上がった時に「払えないリスク」を負いたくないから!

 

ということでローンを組んでる銀行に相談。

 

すると全期間固定にしても月々の支払が7,000円多くなるとの事だったので思い切って全期間固定金利に変更しました。

 

そこで、
・なぜ固定金利にしようと思ったか?
・銀行に相談したこと
・全期間固定に決めたポイント
・この先も金利は上がらなさそうなデータ
・でもやっぱり全期間固定
についてご紹介します。

 

「俺は変動金利でいこうと思っているから関係ないや」って思う方もちょっと待って!
変動金利って下がっても銀行は教えてくれませんが銀行に相談すると

 

変動金利下げられますよ

 
って言われるかもしれませんのでぜひ参考にしてください。

 

 

なぜ固定金利にしようと思ったか?

f:id:ksakae1216:20170521092637j:plain

ず~~っと勘違いしてたんだけど、変動金利にしたら、どんなに金利が上がっても返済額の1.25倍までしか払わなくていいと思ってました。

 

でも最近ちゃんと調べたら「5年ルール」、「1.25倍ルール」というのがあることが分かった。

 

簡単に説明すると
・5年ルール
5年間はどんなに金利が上がっても月々の返済額は変わらない
但し、返済の内訳(元本と利息の比率)が変わります。

 

・1.25倍ルール
5年に1回の見直しでどんなに金利が上がっても元の支払いの1.25倍までしか返済額は上がらないです。

 

1つずつ詳しく見てみましょう。
・5年ルール
どんなに金利が上がっても返済額は変わりません。
た・だ・し、返済額の内訳が変わります。下記の図のように金利が上がると利息が上がるんです。

f:id:ksakae1216:20180619095939j:plain

 

ここで恐ろしいのは払えなかった元本未払いです。

毎月、5千円、1万円と未払いが溜まっていくんです。
 
この元本未払い分はお金を貯めといて、どこかで個別に払うか、最後に払えなかった分をまとめて払わなければいけません。

 

現実的に考えると無理ですね。

 

・1.25倍ルール
金利が上がっても元の支払の1.25倍までしか返済額は上がりません。
たとえば月々の返済額が90,000円の場合、最大112,500円までしか上がりません。

※返済額が上がるのは5年に1回。


でも毎月の支払いが225,00円上がるとチョーきびしいですね?

 

当然1.25倍上がるということは返済額の内訳も変わるので元本が減らず最後にまとめて払う分がものすごい金額になります・・・

 

ということで
・最初の返済額の1.25倍までしか上がらないという事が大きな勘違いだった
・金利が上がった場合の恐怖が分かった

 

変動金利超おそろしい〜と思ったので固定金利にしても毎月払えるなら固定金利にしようと思い銀行に相談に行くことに。

 

銀行に相談したこと

f:id:ksakae1216:20180619145243j:plain


私はちばぎん(千葉銀行)でローンを組んでるのでまずはちばぎんに電話。

 

 

そちらで住宅ローンを払ってて、変動金利から固定金利に変えようと考えてるのでちょっと話がしたいです。

 

 

 

はい、わかりました。それでは当行にお越しいただけますか?

 
 

はい、XX日に仕事休んで行きま~す

 

 

 

そして銀行に行った当日・・・

 

 

このまま変動金利(0.875%)で、将来金利が上がったら怖いので固定金利にしたいです。


ただ固定金利が高いなら変わらず変動のままにするかもしれないです。

 

 

 

承知しました。


まず変動金利ですがコウタロウ様の場合、もう少し下げて0.7%にできますよ。


あと固定金利は10年、20年等の期間と全期間固定の種類があります。


また、変動のままで追加で元本分を支払う返済額指定方式がありますよ。

 

 

 

 

えっ?! 変動金利下がるんですか?(ラッキー)

 

まずここで驚いたのが変動金利が下がるということ!

最悪、固定金利をあきらめても変動金利の利率を下げてもらうだけでも相談した価値あり!!

 

ということでちばぎんさんに全プランの詳細を出してもらいました。

①現状変動金利0.875%

②下げてもらった変動金利0.7%

③20年固定

④全期間固定

⑤変動金利のまま追加で元本分を支払う

 

全期間固定に決めたポイント

f:id:ksakae1216:20180619150007j:plain

 私が全期間固定に決めたポイントは以下の通りです。
・全期間固定にしても毎月の支払額が7,000円アップで収まった
・変動金利を0.7%に下げても月2,000円しか下がらない
・20年固定じゃ、残り9年が不安
・変動金利のまま追加で元本分を支払うのはやはり途中で金利が上がるという恐怖を解消できない

 

つまり、全期間固定でも支払いの許容範囲だったことが大きなポイントです。

 

この先も金利は上がらなさそうなデータ

f:id:ksakae1216:20170914140917j:plain

さて、全期間固定に気持ちを固めましたが、「もしかして奇跡的にあと30年くらい低金利が続くのでは?」という疑問が残ります。

 

そこで将来の事は誰にもわかりませんが、ちょっとデータを集めてみました。

 

住宅金融支援機構が公表している金利を見ると長年低金利

なんと住宅金融公庫が昭和50年からの金利を公表してます。
https://www.jhf.go.jp/faq/kijunkinri.html

f:id:ksakae1216:20180619143114p:plain

はい、和暦を西暦に直してざっくりとグラフにしました。

1975年(昭和50年)は5.5%だった金利が1991年から下がり始め、1999年では2.4%。

そこから再び上昇し、2010年に3.58%になりますが以降は低下し始め2018年は1.25%となってます。

 

他にも、ちばぎんで見せてもらった資料も、ここ20年くらいずっと低金利でした。

 

つまり2000年以降、ここ20年弱は低金利であると言えるでしょう。

 

先進国は低金利

他にもネットで調べると、どうやら先進国は低金利のようです。

※当然例外もありますが。

 

新興国は成長するために、道路作ったり、ビル建てたり、商売始めたりとお金が必要です。

みんな足りないお金を銀行から借りるので、銀行も金利を高く設定して儲けます。

 

逆に先進国はインフラも整い、成長する伸び代が無く、お金は必要ありません。
だから銀行は金利を低くしお金を貸したいです。

 

ということで日本は長年低金利で、且つ先進国なので今後もこの低金利状態が続くんじゃないか? とデータを集めて思いました。

 

でもやっぱり全期間固定

f:id:ksakae1216:20180619150628j:plain

でもね、しつこいようだけどやっぱり将来はわからない。

 

ローンの残りが10年以下と短い人は変動でもいいかもしれないけど、私みたいにローンの残りが20年以上ある人は固定金利を考えてみてもいいかもよ?

 

なのでデータを集めてみても、やっぱり全期間固定にすることにしました。

 

これで安心(?)して70歳まで働けます!

努力の結果が出ない? 客観的に見ると理由がわかるよ!!

努力 結果 理由

努力してるけど結果が出ない、努力の仕方合ってるのかな?って人!!

 

結果が出ない原因は

・そもそも努力の量が足りない

・努力の仕方が間違ってる

のどちらか、もしくは両方です!

 

という事でこの記事では、

・努力量が足りない事

・努力の仕方が間違ってる

とはどうゆう事か?

またチェックの仕方を紹介します。

 

この記事を読んで、あなたの努力が報われるような変化が起これば嬉しいです!

 

正しい努力をして幸せな人生を!!

 

 

努力してるけど結果が出ない原因

冒頭でも書いたけど、努力してるのに結果が出ない原因は下記の2つ!!

 

・そもそも努力の量が足りない

・努力の仕方が間違ってる

 

1つずつ説明します。

 

そもそも努力の量が足りない

努力しても効果が出ない人の多くはそもそも努力量が少ない。

 

自分ではこれ以上ないくらい努力してるつもりでも実はまだまだなんだよね。

 

例えば、分かりやすいのは筋トレ。

 

腕を太くしたいと思ってメチャクチャ腕立て伏せします。

 

次の日、筋肉痛になれば努力量は十分です。(年とってるから2日後に筋肉痛になるパターンもOK!!)

 

でも次の日に筋肉痛にならなかったらそれは努力量が足りない!

 

腕を太くしたいのに筋肉痛にならない程度の腕立て伏せを毎日やっても腕は太くならないのです。

 

ただ筋肉痛みたいに分かりやすいチェック方法があればいいですが、大抵努力の量が足りてるかわかんないですよね!

 

 

努力の仕方が間違ってる

このパターンもありますね。

 

またまた筋トレの例ですが、腕を太くしたいのに、スクワットしちゃう人。

 

「そんなバカな人いないでしょう」

って思うでしょ。

 

これが・・・意外といるんですよ。

そして気づかないんだ。

 

今までの経験とネットとかで調べた結果でその努力してるんだろうけど違うんですよね~。

 

正しい努力の仕方って意外と難しい!!

 

 

ということで「努力の量が足りない」、「努力の仕方が間違ってる」について説明しました。

 

納得できたかな?

 

次からは「努力の量」、「努力の仕方」をチェックする方法について説明します!!

 

努力量のチェック方法

努力量のチェックは

「そりゃ~成功するよね」と他人に思われる程、努力してるか?です。

 

例えば私の例ですが、最近夕方になると疲れやすく、仕事に集中できなくなってきたという事で悩んでました。

 

そこで平日夜の飲酒を辞め、毎朝5時30分に起きて30分のランニングをする事にしました。

 

もうじきランニングを始めて3週間になりますが最近は夕方になっても疲れにくく集中力も途切れなくなったんです!

 

この話を常駐先の方にしたんですね。

 

 

最近、平日飲まないで毎朝5時30分に起きて30分のランニングをしてるんですけど集中力増すし、夕方になっても疲れないんですよ。

 

 

 

えっ毎朝5時30分に起きて走ってるの?

そりゃ~、体力も付くから疲れにくくなるよね。

 

 

こうゆう事です。

 

努力量のチェック方法は

他の人にその努力量を伝えた時、「そこまでやれば成功するよね」と思われるほど努力したか

です。

 

あなたの今の努力量を人に伝えた時、「そこまでやれば成功するよね」と言われますか?

 

もし、言われなさそうであれば努力量を見直してください!

 

努力の仕方のチェック方法

もし努力量が十分なのに結果が出ないのであれば、努力の仕方が間違ってます。

 

腕を太くしたいのに筋トレでスクワットをしちゃうような。

 

努力の仕方のチェックは「定期的な見直し」です。

 

私はPDCAでチェックしてるんですけど目標に向かってどのように努力するかをシートに記載して毎日振り返ってます。

 

例えば、ブログの収益を上げる目標を設定してて下記のプランを立ててます。

 

・月~火はこのサイトの新記事執筆

・水~木は別サイト(リンクにする)の新記事執筆

・土~日は過去記事リライト

 

毎日の見直しは数分程度、普段はその日のプランが実行できたか?できなかったか?をチェックするだけなんだけど、たまにあれ?って思うんですよ。

「そもそもこのプランでいいのか?」

「このプランで目標を達成できるのか?」

 

定期的にプラン(努力の仕方)を見直す事によって本当にその努力の仕方で間違ってないかをチェック出来ます。

 

努力の仕方が合ってればそのまま続けていけばいいし、間違ってれば修正すればいい。

 

PDCAでなくてもいいので定期的にチェックする仕組みさえあればせっかくの努力を無駄にする事はありません!!

 

って事で何でもいいので

定期的に努力の仕方をチェックする仕組みを作る

事で間違った努力をしない!!

 

※ちなみにPDCAだったら下記の本がおススメです。

書評もあるのでこちらも参考にして下さい。

www.ksakae1216.com

 

 

まとめ

最後にまとめます。

 

努力の結果が出ない原因は

・そもそも努力の量が足りない

・努力の仕方が間違ってる

のどちらか、もしくは両方です!

 

そして努力の量、努力の仕方のチェック方法は下記の通りです。

・努力の量

  →「そりゃ~成功するよね」と他人に思われる程、努力してるか?

 

・努力の仕方

  →定期的に努力の仕方を見直す

     (定期的に見直す仕組みを作る)

 

改めて見ても当たり前の事ですね。

この記事を参考にしてあなたの努力が実れば嬉しいです!!

家族4人で住宅ローンもあるのに39歳で仕事を辞めたその後

f:id:ksakae1216:20180416224740j:plain

自分で言うのも何だけど衝撃的なタイトルですよね!

 

家族4人で住宅ローンもあるのに仕事辞めるって。

しかも39歳だなんて。。。 

 

さて、仕事辞めた後、どうなったのでしょう・・・

 

 

仕事やめた後、2ヶ月後にフリーランスになった

仕事辞めた原因は、人間関係で悩みうつ病になったから。

 

その辺の話と仕事辞めて1ヶ月後については下記記事を参照下さい。 

www.ksakae1216.com

 

仕事辞めたのは計画的じゃなく、どうしても耐えられなくなったので次の転職先を探す間も無く辞めました。

 

幸い妻が正社員で働いてたのと辞める最後の4ヶ月くらいは平日遅くまで残業し土日出勤も結構やってたので金銭的に何とかなったわけです。

 

 とはいえ無職でも容赦なく税金を取られます。(当たり前か)

www.ksakae1216.com


ただ私の場合1ヶ月で7万円ちょっと税金で持ってかれました。

 

収入無いのに7万円持ってくってヒドイよね。

  • (;´д`)トホホ…

 

そんなわけで税金取られすぎでこのままだと生活できないため、1ヶ月のんびりして2ヶ月目から仕事を探し始めることにしました。(気持ちも大分落ち着いてきたしね)

 

そして私が選択したのは転職(会社員)ではなく、フリーランス!!

www.ksakae1216.com

 

理由はまた人間関係で悩んでうつ病になりたくなかったから。

 

合わない人がいたら、さっさと辞めて次の現場行けばいいし。

 

もうじき会社を辞めて2年

振り返ってみると2年はあっという間でした。

 

案件にも恵まれ2年間で3つの現場に常駐したけど人間関係も非常に良好です。

※いつでも辞めれる状況になると逆にイヤな人に巡り合わないという謎の法則

 

フリーランスなんで給料もいいんですよ。(当人のスキルによりますが会社勤めより下がる事はまずありません)

 

人間関係が良好で給料もいいのでストレスはほとんど無く仕事しています。

 

無理に会社員を続けることはないんじゃないかな?

という事で私が思うに

 

 

無理に会社員を続けなくていいんじゃない? 

 

 

もしかしたら、辛くても続けてその後、いい事があるかもしれないけど、病気になって体壊すまで働いたり、自殺まで追い込まれるまでして会社員でいる事は絶対にない!!

 

だから辛くてそこに居続けるより転職したりフリーランスになる等の選択をする事を考えてみて。

 

フリーランスもおすすめ

アナタの周りの人に相談したら「フリーランスなんてやめとけ」って言われるかもしれないけど、その相談した相手はフリーランスの経験あるの?

 

 

会社員もフリーランスも両方経験して「やめろ」って言うならわかるけど、ほとんどの人がそうじゃない。

 

 

経験無くて知らないけど何となく不安定そうだから反対してんだよ。

 

 

ちなみに私だったら、「一度の人生なんだから前のめりでガンガンいこうぜ!!」って言います!!

 

 

それにね、フリーランスやってみて、やっぱり会社員がいいなと思ったら転職活動してまた会社員になればいい!!

 

 

私もフリーランスやってるけど、転職サイトに登録していていいオファーがあれば転職する事も考えています。

 

 

フリーランスになったら、「もう会社員にならない」なんて固い考え方せずに柔軟に考えればいいと思うよ。

 

 

別でフリーランス応援サイトも運営してるのでフリーランスやってみようかな〜って方は検討して下さい。

www.freelance-osusume.work

 

※ただしフリーランスも年齢高いと仕事を探すのが難しいようです。

私は41歳で仕事探しに苦労する事無いですが50歳過ぎると難しくなると仕事紹介エージェントが言ってました。

 

しかしこの先人手不足はますます進んでいくはずなので10年後はどうなることやら。

 

会社勤めしてたってリストラがあるかもしれない?

アメリカでは当たり前のレイオフがあるかもしれない?

www.ksakae1216.com 

 

でも私は思います。

 

 

一度の人生なんだから前のめりでガンガンいこうぜ!!

 

 

ってね。

(心からそう思ってるので2回言いました)

 

嫌な人と仕事するより、定年までの約束が無くても楽しく仕事する方が幸せだと思います!!

仕事はどうすれば終わる? 答えは与えられた全ての仕事をしない

 

f:id:ksakae1216:20180411225239j:plain

仕事が終わらなくて残業ばかりの毎日を過ごしていませんか?

 

そこで私が実際に実践して毎日定時で帰る秘訣を教えます。

それは・・・

 

与えられた全ての仕事をしない!!

 

です。

 

 

なぜ仕事が終わらないのか?

 

なぜ与えられた全ての仕事をしないのか?

 

1つずつ解説していきます!!

 

 

なぜ仕事が終わらないのか?

「それは時間に対しての量が多すぎる」

もしくは

「あなたのスキルと仕事の質がミスマッチを起こしてる」のどちらか両方です。

 

「じゃあ、終わらなくてもしょうがないね。お終い」

とは残念ながらなりません。。。

 

仕事なのでどうにか工夫して終わらせなければいけないのでどうにか工夫して終わらせましょう。

 

そこで工夫の1つとして「与えられた全ての仕事をしない」について次で説明します。

 

与えられた仕事は全部やる必要がない

そもそも上司から与えられた仕事は全て必要であることは以外と少ない。

 

与えられた仕事が100だった場合、いざやってみると80くらいですむ場合が結構ある。

 

当然仕事の大きさによるが、1週間かかるような仕事をやってみると、実は不要な作業が結構あったりする。

 

仕事を振る上司も忙しいし、そもそも依頼する仕事の全ての作業を把握、想定する事が困難なのだ。

 

不要な作業や重要でない事は後回し

目的を見失わず、ゴールを意識すれば、おのずと不要な作業、重要でない作業がわかってくる。

 

例えば、競合10社の製品の

「値段」

「機能数」

を調査してくれと上司から頼まれたとしよう。

 

この仕事の目的は、競合他社の製品がどのくらいの価格帯でどのくらいの機能数があるのかを調べ自社製品と比較し差別化を検討すること。

 

1社ずつ調べていったが4社目の機能が複雑で数を数えるのが大変だったとする。

 

この時、目的を理解しておらず仕事を全て完成させようと思う人ほど、4社目の機能を意地でも数えようと時間をかけてしまい、10社全部調べる事が出来ないまま締め切りをむかえる事になってしまう。

 

逆に目的を理解していれば1つや2つ漏れても10社分調査する方が目的の達成度が高いと考え、調査に時間がかかる会社は後回しにして、締め切り前に10社分調査を終え残りの期間で時間のかかる会社を調査する。

 

どちらにしても仕事は終わってないが

前者:10社中、3社完了(4社目の機能数で終了 )

後者:10社中、8社完了

となり、どちらが評価が高いかは一目瞭然だ。

 

最近は働き方改革で残業できない会社も増えているだろうけど、前者のような仕事をしてたら上司も流石に残業を命じるだろう。

 

しかし後者であればここまで終われば目的もほぼ達成できてるので残業を命令することもないでしょう。

 

このように目的をしっかり把握し、ゴールを明確にイメージする事で不要な作業ややるべき作業が明確にな流ので、不要、重要度が低い作業はやらない or 後回しする事で仕事を終わらせることができる!

 

尚、少し古い記事ですが私はさらに100%全力投球で仕事せず70%の力で仕事してさらに生産性を高めています。

www.ksakae1216.com