ゲーム年間売上ランキング2020
データ元はファミ通です
2020年のゲーム売上が判明し次第更新していきたいと思います。
2019年のゲーム売上ランキングはこちらから
https://koro-game-programming.hatenablog.com/entry/2019/12/14/160934
最新の週間ゲーム売上ランキングはこちらから
https://koro-game-programming.hatenablog.com/entry/2020/01/08/224149
週間ゲーム売上ランキング 先週分(12/23~12/29) トップ10全てスイッチソフト!
2019年最後の週は1~10位全てがスイッチのソフトでした。30位まで見てもスイッチソフトが26個とスイッチの人気がうかがえた週でした。新作でトップ10入りしたのはスイッチの脳トレ。DSでは大ブレークしてミリオン売れていたが、今の時代ではどこまで伸びるのか注目です。1位は相変わらずポケモン!来週には300万本突破しそうです。また2位のルイージマンション3はハーフミリオン突破となりました。3位のリングフィットアドベンチャーも50万本突破は確実となりました。
前週(12/16~12/22)の売上
https://koro-game-programming.hatenablog.com/entry/2019/12/26/214713
2019年ゲーム年間売上(2019/12/31~2019/12/22)
https://koro-game-programming.hatenablog.com/entry/2019/12/14/160934
ハード売上
Switch/14万1227台(累計 1033万8048台)
Switch Lite/93041台(累計 104万5383台)
PS4/59123台(累計 735万3273台)
PS4 Pro/22226台(累計 139万4970台)
Xbox One X/195台(累計 18642台)
Xbox One S/102台(累計 92604台)
New 2DS LL(2DS含む)/2875台(累計 169万122台)
New 3DS LL/170台(累計 588万5915台)
PS Vita/53台(累計 586万3016台)
ソフト売上
順位 |
ゲームタイトル |
今週の売上 |
累計売上 |
機種 |
消化率 |
販売元 |
1位 |
ポケットモンスター ソード・シールド |
243,476本 |
2,988,134本 |
Switch |
80% |
|
2位 |
59,349本 |
505,998本 |
Switch |
60% |
||
3位 |
リングフィット アドベンチャー |
52,521本 |
495,639本 |
Switch |
80% |
|
4位 |
40,905本 |
1,145,939本 |
Switch |
80% |
日本マイクロソフト |
|
5位 |
40,883本 |
2,659,009本 |
Switch |
80% |
||
6位 |
40,866本 |
195,128本 |
Switch |
60% |
||
7位 |
35,385本 |
3,453,052本 |
Switch |
80% |
||
8位 |
東北大学加齢医学研究所 川島隆太教授監修 脳を鍛える大人のNintendo Switchトレーニング |
34,696本 |
34,696本 |
Switch |
20% |
|
9位 |
スーパー マリオパーティ |
34,649本 |
1,263,710本 |
Switch |
80% |
|
10位 |
釣りスピリッツ Nintendo Switchバージョン |
33,623本 |
336,995本 |
Switch |
80% |
|
11位 |
26,402本 |
800,504本 |
Switch |
80% |
||
12位 |
21,094本 |
3,252,760本 |
Switch |
80% |
||
13位 |
ディズニー ツムツム フェスティバル |
17,473本 |
125,498本 |
Switch |
60% |
|
14位 |
妖怪ウォッチ4++(ぷらぷら) |
12,331本 |
46,896本 |
Switch |
60% |
|
15位 |
New スーパーマリオブラザーズ U デラックス |
12,152本 |
747,589本 |
Switch |
80% |
|
16位 |
11,170本 |
1,481,349本 |
Switch |
80% |
||
17位 |
太鼓の達人 Nintendo Switchば〜じょん! |
10,738本 |
420,582本 |
Switch |
80% |
|
18位 |
8,375本 |
210,259本 |
Switch |
80% |
||
19位 |
7,632本 |
2,047,546本 |
Switch |
80% |
||
20位 |
無双OROCHI3 Ultimate |
7,382本 |
25,768本 |
40% |
||
21位 |
7,380本 |
161,288本 |
80% |
|||
22位 |
7,273本 |
463,699本 |
Switch |
80% |
||
23位 |
フォートナイト ダークファイアバンドル |
6,179本 |
41,089本 |
Switch |
80% |
|
24位 |
FIFA 20 Legacy Edition |
5,838本 |
43,956本 |
Switch |
60% |
|
25位 |
星のカービィ スターアライズ |
5,835本 |
783,874本 |
Switch |
80% |
|
26位 |
映画すみっコぐらし とびだす絵本とひみつのコ ゲームであそぼう! 絵本の世界 |
5,697本 |
32,049本 |
Switch |
60% |
|
27位 |
5,670本 |
81,491本 |
Switch |
80% |
||
28位 |
モンスターハンターワールド:アイスボーン マスターエディション |
5,560本 |
417,462本 |
80% |
||
29位 |
DEATH STRANDING(デス・ストランディング) |
5,231本 |
262,827本 |
80% |
||
30位 |
5,208本 |
250,947本 |
Switch |
80% |
環境構築のコツ スムーズに環境構築を行うために
プログラミングの勉強をしようと思って、本を買ってきて環境構築をしようとしたら、本に書いてある通りにやってるのになんかエラーが出てくる。あるいは、ネットで調べた記事通りに環境構築をしていたら、エラーが出てくる。みなさん今までにこんな経験はありませんか?僕は今までこういったことが何回もありました。そして1年くらい前までなんとなく適当にエラー文をgoogleの検索に打ち込んで上から順番に見ていってエラーがなくなるまで調べ続けるということをしていました。おそらくこの方法でもネットに正しい記事があればいずれは解決すると思います。しかしこれってすごく疲れますよね?初心者は訳もわからないエラーと永遠に戦うことになり、時にはそこで諦めてしまうこともあります。今回は少しでも環境構築をスムーズにするためのコツを初めてプログラミングするような人にもわかりやすく書きたいと思います。
・そもそもなぜ環境構築でエラーが出るのか
本やネットに書いてある通りにやっているのにエラーが出る。これは何も本やネットの記事を書いている人がみんなを困らせようと思って、嘘を書いているわけではありません(もしかしたらそういういじわるな人もいるかも)。じゃあなぜエラーが出るのかというと、多くのソフトウェアやライブラリーは少しずつ改良されているからです。この改良というのが厄介で改良されるのは確かにいいことなのですが、古いバージョンにあったよくない仕様等は消されていってしまうことがよくあるんです。その結果古いバージョンでうまく動いていたものでも、新しいソフトウェアやライブラリーでは動かないということが起きます。
・環境構築をスムーズに行うために意識すべきこと
①ソフトウェアやライブラリーのバージョンを意識する
②自分が読んでいる本や記事がいつ書かれたものかを意識する
③すでに自分のパソコン上に作られた環境を意識する
初心者の方々だとそもそも、バージョンがいくつもあることや、バージョンが違うと互換性がないということに気づいていない人が多いかなと思います。僕も独学でやっていたので最初しっかりバージョンというものを意識できておらず、環境構築で戸惑っていました。この二つを意識しておけば闇雲に検索してエラーが出続ける、環境構築の闇にハマることも少なくなると思います。
・ケース別の対処法
①そもそも環境構築でエラーを出さないようにする方法
・ネットの記事を読む場合
この場合、記事が書かれた日付を意識します。そして何かプログラムをパクってくる時はなるべく新しいものからパクってきます。もしくは古いバージョンからパクってくる場合でもしっかり記事にバージョンが書かれているものからパクってくる(ネットの記事って結構適当で動くことを確認した環境をしっかり書いてくれている記事が少ないです)。ちなみにパクってきたプログラムをそのまま使うだけならこれでエラーは出ませんが、多くの人はパクってきたプログラムを自分なりに改良していくと思うので、そういう時エラーが出ないためにも新しめの記事からパクってくる方が、少なくとも初めのうちはおすすめです(自分の環境は新しめのバージョンであることを想定)。
・本を買う場合
本を買う時意識すべきなのは発行年数です。発行年数が新しければ新しいほど、本に書かれた通りやるだけで、うまくいく場合が多いです。初めのうちって本に書いてある結果と自分の結果が少しでも違ったりすると自分のやってることあっているかな?とか不安になるものですし、本と同じ環境でやることは大切だと思います。ただし本の場合、ネットの記事と違ってソフトウェア等のバージョンがしっかり書いてあるので、そのバージョンを指定してやればそんなに困ることはないかもしれません。ただ本も不親切な場合があって、文章ではバージョンを書いてあるのに、コードではバージョンを指定していない(この場合普通は最新バージョンがダウンロードされる)場合があります。ある程度プログラミングをやっている人であれば、自分でバージョン指定しなきゃって意識できますが、初心者の方、ましてや初めてプログラミングする方はそんなこと意識できるはずもありません。そして書かれたコードを打ち込んだら、最新のバージョンがインストールされて、挙動が本と異なることがあります。だから初心者の方でとりあえず本を買うなら新しい本買った方がいいかなと思います。プログラミングは面白いと感じるのに、環境構築でつまらないと感じて諦めてしまったらもったいないです。それに基本的にはバージョンアップは改良なので、どうせなら最新バージョンを学んでおいた方が、本の内容を理解した後自分で何か作る時に、その環境のまま最新のものを動かせて便利だと思います。
②環境構築でエラーが出てきたときの対処法
①では最新のものを見ることでエラーをそもそも出さないようにするといいという説明をしてきましたが、当然記事や本しかない事やあえて古いバージョンのものを動かしたい場合もあると思います。そこで②ではエラーが出てきた時にエラーを解消していくコツを説明したいと思います。まず一番簡単な方法は詳しい人に聞くということです。しかし多くの人は周りにそのような人がおらず、ネットでエラーについて調べると思います。そこで今回はネットでエラーを検索するときのコツを紹介します。
・まずは自分の動かしたいプログラムに必要なバージョンを意識する。
これがわかればそのバージョンをインストールするだけで解決するので早いです。
・記事の書かれた時期を意識する(使うべきバージョンがわからない場合)
使うべきバージョンがわからないなんてことは、記事をあげている人が親切であれば、起きることもないですしあって欲しくはないのですが、こういう場合も多々あると思います。こういう時はまず記事が書かれた時期を意識しましょう。まず絶対に言えることは記事を書かれた時期よりも未来のバージョンに対応しているという保証は絶対にない。ここで保証がないといっているのは、バージョンが違っていてももちろんそのまま動くことはあるので、動かないと決まっているわけではないからです。では実装したいプログラム等が書いてある記事が書かれた時期と同じくらいの時期に書かれた記事を読めばいいのかというとそれも違います。なぜならその記事が書かれた時期にはまだそのエラーで困っている人はいないからです。バージョンが切り替わって今まで使えていたものにエラーが出るようになった時期に初めてそのエラーへの対処法が書かれた記事が書かれます。そこでそのエラーが出るようになったバージョンへ切り替わったタイミングを意識して、それを調べていくようにしましょう。
・正しい対処法が書かれているにもかかわらずうまくいかない場合
これが一番厄介な場合です。こんなことはありえるのかということなんですが、残念ながらあり得ます。どういう時に起きるかというと、例えば間違ったバージョンをインストールした後、アンインストールしたつもりでもパス(どのプログラムを参照したらいいかを指定するよなもの)にその情報が残っている場合などです。こうなってくると非常に厄介で、正しい対処法を実行してもうまくいかなくなることがあります。しかも厄介なのは正しいかどうかというのは環境構築している時にはわからないということです。この場合は意識すべきこと③に書いた「すでに自分のパソコン上に作られた環境を意識する」というのを思い出して、一旦落ち着いて自分の環境にインストールされているもの、設定されているパスの中で関係ありそうなものを、整理しましょう(こんなこと言ってますが、おそらく初心者には無理)。まあこの段階はもう環境構築の闇にハマってしまっているので、頑張るしかないですね。この闇に陥らないための一つの方法として仮想環境というものがあります。仮想の環境を作ることで、その仮想の環境外に影響を与えることなく環境構築を行えます。このあたりは話だしたらキリがないので、ネットで「仮装環境」と検索してみてください(気が向いたらいつか記事書くかも)。
最後に繰り返しとなりますが大切なことは
①ソフトウェアやライブラリーのバージョンを意識する
②自分が読んでいる本や記事がいつ書かれたものかを意識する
③すでに自分のパソコン上に作られた環境を意識する
です。環境構築を突破して楽しくプログラミングしていきましょう。
プログラミング勉強法(独学で初心者から中級者へ)
自分の経験を元にプログラミングを何もできない人が独学である程度プログラミングができるようになるまでの勉強法を説明していきたいと思います。僕のプログラミング経験としてはウェブアプリ制作、画像処理、音声処理、機械学習、ウェブスクレイピング、簡単なゲーム制作などがあります。3日前にはandroid studioでスマホアプリを作ろうと思いandroid studioの勉強を始めました。
ただプログラミング経験は2年ほどですし、プロでもありません。あくまである程度プログラミングができるようになるまでの勉強法と思って読んでください。逆にプログラミング経験がプロのように長くはないので、プログラミング初心者の頃を思い出しやすく書きやすいと思いこのタイミングでこの記事を書くことにしました。ちなみにここでいうプログラミングはHTMLなどのマークアップ言語やLispなどの関数型言語などではなくC言語やPythonのような命令型プログラミング言語で書くプログラミングを想定しています。
・プログラミング学習で大切なポイント(初めて学ぶ時)
①あくまで学習するべきなのは形ではなく考え方
よく知り合いとかでもプログラミングを学んでいてfor文の書き方はみたいなのを暗記するところから学習を始める人がいますが、最初から暗記する必要はありません。というか暗記する必要は基本的にありません。プログラミングにおいて書き方は正直どうでもいいです。for文の使い方さえわかっていれば書き方は調べればわかります。そしてよく使う言語であればそのうち自然に覚えます。逆に滅多に使わない言語で書き方忘れていたら、使う時に調べればいいです。とにかく形では無くこういう時はこういう方法を使うとうまくいくということを学びましょう。
②インプットよりもアウトプット多め
基本が書かれた本の第一章を何周もしたり、ノートに構文をまとめたりしている人もいますが、基本的にこういったことは意味がないです。こんなことをするくらいだったらさっさと本を一周して実践しましょう。ただこれは適当に斜め読みすればいいということではないです。大切なのは読むだけじゃなくて書くことです。全てを理解しなくてもいいのでまずしっかり書いて動きを確かめましょう。ポイントは書き方を覚えるために書くのではなく、動きを理解するために書くということを意識することです。小学生の時にやったような漢字練習帳とは書く目的が違います。そして、ここを変えたらどうなるかな?といった興味を持ちながらコードを少し書き換えたりして動きを確かめるとさらにいいでしょう。こういった勉強をしているうちに、こういうことしたい時にはこの方法を使えばいいといったことがわかるようになります。
③プログラミング習得のゴールは調べながら、色々なものを作れるようになること
ここでいうゴールはあくまである程度プログラミングができるようになるという意味でのゴールです。ただこの段階まで来れば基本的に困ることはないでしょう。多くの人が到達したいレベルであるウェブアプリを作れる人になる、スマホアプリを作れる人になる、サーバー管理をできる人になる、機械学習をとりあえず利用する人になるなどであれば全然困りません。そもそも世の中にプログラミングのための便利な道具(フレームワークや開発環境、ライブラリーなど)は無数に存在していてそれら全部を覚えている人なんていません。必要になった時覚えればいいのです。もちろん世の中にまだ方法がないようなことを生み出したりしたいのであればこの段階では不十分かもですが、その段階まできたらそれはもはや研究レベルの話であって、プログラミング技術の問題ではないことも多いでしょう。とにかくここで大切なのは調べながら実装できればいいということです。
④完璧主義をやめること
これはここまで書いた①〜③のポイントのまとめとなるのですが、プログラミングは完璧を求めていたらキリがありません。完璧主義はやめましょう。完璧主義の人はまず形を覚えなければと思い、調べているようではまだまだだとかんじ、頑張ってインプットしてしまいます。大事なところはそこではないので、完璧主義はやめたほうがいいです。
・プログラミング学習の手順
①まずはプログラミングの基本を学ぶ
この段階でのポイントは5つあります。
その1 本やProgateなど一定のレベルにまとまった教材を使う
いくら独学とは言え何もわからない段階で、ネットに書かれた記事をつまみながら読んで学ぶのは無謀です。素直に本やProgateなどの教材を使って、基本を学びましょう。(個人的にProgateのプログラム書く部分って答えが決まっていて、少し変えたらどうなるかなとかを確かめられないのが好きではないですが(友達がやっているのを見ていてそう思っただけでやったことはないので間違っているかもしれません))
その2 基本とはどのレベルなのか
僕が思う基本というのは、変数に代入した時の挙動や変数の型、if・for・whileなどの基本構文の使い方や使い所、関数やクラスの使い方および使い所などです。大事なのは書き方ではなく使い方や動きを学ぶというところです。
その3 一つの言語を学ぶ
何度も言っているように、プログラミング学習で大切なことはプログラミングの形式(例えばif文の書き方や関数の書き方)ではなく、プログラミングで利用できる考え方や構造を学ぶこと(例えばfor文というループ構造がある。関数やクラスを利用することで効率よくプログラミングできるなど)です。しかしいきなり色々な言語に触れてしまうと、それぞれの言語における書き方の違いに混乱してしまい、肝心のプログラミングの考え方を学ぶことができなくなります。それに焦って色々な言語を同時にやらなくても、一つの言語で書けるようになれば、調べながらではありますが他の言語でも同じことを書けるようになります。
その4 高度なライブラリーやフレームワークを使わない
これは高度なライブラリーやフレームワークは引数を指定したり、パスを設定したりするだけで様々なことができたりしますが、これだと実際プログラムがどのように動いているのかは何もわからないですし、基本を学ぶには向いていないからです。高度なライブラリー等をいきなり使うことで混乱してしまうこともあるでしょう。まずは実際に役立つようなプログラムを作ることを意識するのではなく、基本を理解することを意識しましょう。
その5 インプット:アウトプット = 1:1
最初にアウトプット多目が大切と書きましたが、この段階ではインプットとアウトプットは同じ割合でいいでしょう。基本的に一つのことを学んだら、それを使ったコード(本や教材に書いてあるものでよい)を書くといった感じですね。
学ぶ言語はどれがいいのか?
自分のやりたいことに使う言語から学ぶもしくは簡単めな言語(Python、Ruby、PHPなど)から学ぶのが良いでしょう。
下の記事ではPythonを勧めています。
https://koro-game-programming.hatenablog.com/entry/2019/12/14/182627
では次の段階に進みましょう
②とりあえず簡単なプログラムを自分で考えながらいくつか作る
この段階でのポイントは3つあります。
その1 今まで習ったことを組み合わせたプログラムを書く
おそらく段階1ではほとんど一つのことを理解しているだけで作れるプログラムを書いてきたと思います。例えばif文を使うだけ、関数を一つ作るだけなどのプログラムです。第2段階ではそれらを組み合わせてプログラムを書いていきましょう。本や教材がある場合にはその本や教材に載っている問題をやってみるといいでしょう。そのような物が無くて無料で済ませたい場合には下のURLに書かれた問題のうち上10個位をやってみるといいでしょう。ただしこの問題だけだと問題に偏りがあるので不十分かもしれないです。ここで大切なことはやり方が思い浮かべば、あとは書き方を調べながら実装できればいいということです。実際にスラスラコードを書けなくてもこの段階では当たり前です。安心してください。
http://vipprog.net/wiki/exercise.html
その2 カンニングオッケー
例えばこのプログラムこういう関数をif文とwhile文を組み合わせて作ればいいななどということが思い浮かんだら、ネットをカンニングしながら書けばいいです。プログラミングにおいてカンニングは何年経っても大切なことですし、ここでネットから自分に必要な知識を見つけるスキルを身に付けるといいでしょう。何年経ってもカンニングが大切というのは、どんなすごいプログラマーであっても初めて使うライブラリーの関数の引数に何を入れればいいかなどということはわからないからです(もちろんライブラリーにあるような関数も全て1から作っていけば実装可能だとは思いますが、普通そんなことはしません)。つまりどんなプロも初めて何かを作る時にはまずそれを実装するのに使えそうな便利な道具を調べるのです。
その3 完全なパクリはやめる
上でカンニングオッケーと言ったのにパクリはダメとかなんじゃこりゃと思う人もいると思いますが、上でカンニングオッケーと言ったのはあくまで部品のカンニングはオッケーと言うだけで、ただ全てをコピーしてくるのがオッケーと言うことではありません。ただコピーしてきただけでは当然何も学べません。最初はしりとりのプログラムを参考にしながら頭とりのプログラムを書くとか、フィボナッチ数列のプログラムを参考にしながら、自分が考えた漸化式の問題をとくプログラムを書くなどだいたいパクリだけど完全にパクリではないといった問題から初めてもいいでしょう。
ここまで来たらだいたいのものは作れるようになります
実際に自分の作りたいものを作ってみましょう
③実際に作りたい高度なアプリなどを作る
この段階でのポイントは3つあります。
その1 まずは自分の作りたいものを作るのに役立つライブラリーやフレームワークを書籍やネット等で調べる
ここで初めてライブラリーやフレームワークを調べます。そしてそのライブラリーやフレームワークで利用できる関数やシステムを学んで実際に使っていきます。この段階まで来たら、便利な道具をどんどん使っていきましょう。この段階でimportなどを使うようになると思うので、同時に自分の書いた別のプログラムもimportできることを学ぶといいでしょう。
その2 自分の実装したいものに近いものを見て学ぶ
おそらく高度なアプリを作る時、自分がイメージしているものと全く同じものを作っている人はいませんが、部分ごとでみると似たものを作っている人はいると思います。そういったものを見て自分の作りたいものにどこが利用できるかを考えることは大切です。ブログやgithubなどを覗いてみましょう。段階2でカンニングしっかりカンニングしていた人はこの作業でそんなにつまずかないでしょう。
その3 エラーは出て当たり前
いきなり全てうまくいくことなんて滅多にありません。エラーが出たら直して、例外が出たら直してと言うのを繰り返してプログラムを完成させます。このエラーを直していくと言う作業がプログラミングの肝だと思います。もちろんここでもネットや書籍を参考にしましょう。
プログラミングは独学でも学べるのか?
個人的な意見としては独学でもいいと思います。このように思うのはプログラミングにおいて誰もが知っておかなければいけない基本というのはとても少なく、あとは実際に作りたいものに合わせて、それを作るのに必要な知識を習得していけばいいからです。
そもそもおそらくですが、世の中にある全ての言語の全てのライブラリーの全ての関数の使い方を覚えている人なんていません。なぜなら世の中の便利なライブラリーは無数とありますが、それらを全て使うような開発はないからです。そしてライブラリーやフレームワークなどの使い方はネットや書籍で調べればわかります。
実際プログラミングスクールでどのようなことをやられているのかは残念ながらわかりませんが、プログラミングを書くという観点で見たらプログラミングスクールにわざわざいく必要はないかなと思います。詰まった時にやり方を聞けるような知り合いはいたほうがいいかもしれませんが。僕もプログラミングスクールには通っていませんが、ある程度実力がついてからはプログラミングをするインターンやプログラミングを利用する団体などに入って実際に使えるプログラミングを学びました。
逆にすぐ特定の仕事に直結する知識だけを学びたいという方や案件をすぐに勝ち取りたいという方はプログラミングスクールを利用されるのがいいかもしれません。プログラミングスクールが仕事に結びつくまで面倒を見てくれる場合も多いようです。
以上長々と書いてきましたが、プログラミングは継続さえすれば、少なくとも世の中にすでにある技術を利用してプログラムを書くというレベルには誰でもなれると思います。だってプログラミングって英語に比べて文法は簡単、わからなかったらカンニングすればいい、リスニングもスピーキングもない。こう聞くと誰でもできそうですよね。プログラミングを習い始めたばかりの人、これから習おうという人、頑張ってください!
自作関数シリーズ第1回 ルート関数 (C言語、Java、Python、Ruby)
このシリーズは普段ライブラリを利用して求めているような計算を自作するとしたらどのようなコードになるのかを紹介するシリーズです。といってもOpenCVやBeautiful Soupのような大規模なライブラリの関数を自作するわけではありません。大規模なライブラリは眺めてこんな感じ何だなって理解するに留めて、素直に作ってくれた人に感謝して利用しましょう。さて記念すべき第1回はルートを求める関数を自作したいと思います。ちなみに普通にルートを求めるには
C言語: include<math.h>をしてからsqrt関数を使う
Java: Mathクラスのsqrtメソッドを使う
Python: import mathをしてsqrt関数を使う
Ruby: Math.sqrtを使う
今回ルートを求めるのに使う方法はニュートン法です。
ニュートン法は「f(x) = 0になるような値Xを探す時、ある値Xnにおける接線の切片Xn+1は、元の値Xnより真の値Xに近くなる。」という考え方に基づいています。
この考え方を数式に直すとXn+1とXnの漸化式は
Xn+1 = Xn - f(Xn)/f'(Xn)
となります。
下の図を例に見てみると確かにXn+1はXnよりも真の値Xに近いことがわかります。
ニュートン法の数学的な説明をもっと詳しく知りたい人は
wikipediaなどを参考に読んでみてください。
https://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E6%B3%95
さて今回の本題ルートを上で紹介したニュートン法で求めていきましょう。
x = √a
と置き式変形すると
x^2 - a = 0
ここで左辺をf(x)と置くと
f(x) = x^2 - a
f'(x) = 2x
これを上の
Xn+1 = Xn - f(Xn)/f'(Xn)
に代入すると
Xn+1 = Xn - (Xn~2 - a)/2Xn
= Xn/2 + a/2Xn
これを繰り返していくと近似的にルートを求めることができます。
最後に実際にこの漸化式を10回繰り返し近似的にルートを求めるプログラムを紹介したいと思います。今回は10回漸化式を繰り返す方法をとりましたが、自分で近似の精度を決めたい場合はwhile(True)で回し続けて精度がよくなったらbreakで抜けるという方法を取れば良いでしょう。
C言語版
double my_sqrt(double x){
int i;
double y,z;
if(x==0){
return 0;
}
else{
y = 1;
for(i=0;i<10;i++){
z = x/y;
y = (y+z)/2;
}
return y;
}
}
Java版
public static double my_sqrt(double x){
if(x==0){
return 0;
}
else{
double y = 1;
for(int i=0;i<10;i++){
double z = x/y;
y = (y+z)/2;
}
return y;
}
}
def my_sqrt(x):
if x == 0:
return 0
else:
y = 1
for i in range(10):
z = x/y
y = (y + z)/2
return y
Ruby版
def my_sqrt(x)
if x == 0
return 0
else
y = 1.0
for i in 0..9 do
z = x/y
y = (y+z)/2
end
return y
end
end
ポケモン、孵化あまり交換会2!
第二回孵化あまり交換会を開催したいと思います。
僕が持っている孵化あまりは
夢特性ドヒドイデ、夢ローブシン、夢ドリュウズ、夢イーブイ、夢コイキング、夢サニーゴ、夢アーマーガア、夢カビゴン、夢ヒトカゲ、夢ヌオー、夢モスノウ、夢カモネギ、夢ブリムオン、夢マホイップ、夢イエッサン、アリアラプラス、ミミッキュ、ストリンダー、ジュラルドン、バンギラス、ジャラランガ、ナットレイ、ロトム、サザンドラ、パルシェン、オニシズクモ、ヒヒダルマ、ドラパルト、オーロンゲ、シャンデラ、エースバーン、ウインディ、ゴリランダー、オノノクス、ウィンディ、ギルガルド
(孵化あまり他にもいたらまた追記します、マイナーなポケモンとか抜けているかもしれません)
また孵化あまりじゃなくても良ければソード限定ポケモンも出せます。
孵化余りなので交換するポケモンはなんでも大丈夫です。
一応希望を書いておくと欲しいポケモンはシールド限定ポケモン、メタモン(わんぱく、ようき、いじっぱり)、上記以外の夢特性ポケモン、火炎玉、メッソン、その他上記以外の孵化あまり
交換方法
1.ツイッターをフォローする。(ただし明らかな捨て垢は禁止)
ツイッターアカウントはこちら https://twitter.com/korokoro_9
2.ツイッターの孵化あまり交換会2のツイートをリツイート&いいねする(どちらかでもOK)。
3.孵化あまり交換会2のツイートにリプライで欲しいポケモン(2匹まで)と出せるポケモンを書く(出せるポケモンはいない場合はなしと書いてください)。
締め切りは1/1の12時です。
交換は1/1の22時以降から行います。
そろそろみんな主要ポケモン揃えて、そんなに欲しいポケモンいなくなってるかもしれないですが、万が一交換希望者が多かった場合には、僕が欲しいポケモンを出せると書いてくれた方および、抽選で選ばれた20名とのみ交換を行います。
過去の孵化余り交換会
https://koro-game-programming.hatenablog.com/entry/2019/12/14/220251
2019年ゲーム売り上げランキング
https://koro-game-programming.hatenablog.com/entry/2019/12/14/160934
週間ゲーム売上ランキング 先週分(12/16〜12/22) PS4値下げキャンペーンの効果てきめん
ソフトではポケモンが6週連続で1位!他に有力候補がいないとはいえ、凄まじい強さですね。そのほかのswitchソフトもよく売れ12位までswitchが独占することになりました。新作の中ではPS4とSwitchで発売された、無双OROCHI3 Ultimate が合計28314本売り上げ1位でした。
ハードではSwitchが相変わらず高い水準で売れました。またPS4も12/19より始まった1万円びきキャンペーンの影響で大幅に売り上げを伸ばしました。
先々週(12/9~12/15)のゲーム売り上げ
https://koro-game-programming.hatenablog.com/entry/2019/12/18/221250
データ元はファミ通です。
https://www.famitsu.com/news/201912/25189804.html
Switch/18万9908台(累計 1019万6821台)
Switch Lite/10万1577台(累計 95万2342台)
PS4/74419台(累計 729万4150台)
PS4 Pro/32894台(累計 137万2744台)
Xbox One X/166台(累計 18447台)
Xbox One S/60台(累計 92502台)
New 2DS LL(2DS含む)/3081台(累計 168万7247台)
New 3DS LL/235台(累計 588万5745台)
PS Vita/38台(累計 586万2969台)
順位 |
ゲームタイトル |
今週の売上 |
累計売上 |
機種 |
消化率 |
販売元 |
1位 |
ポケットモンスター ソード・シールド |
288,199本 |
2,744,658本 |
Switch |
80% |
|
2位 |
78,903本 |
446,649本 |
Switch |
80% |
||
3位 |
リングフィット アドベンチャー |
56,861本 |
443,118本 |
Switch |
80% |
|
4位 |
50,405本 |
154,262本 |
Switch |
60% |
||
5位 |
41,907本 |
1,105,034本 |
Switch |
80% |
日本マイクロソフト |
|
6位 |
釣りスピリッツ Nintendo Switchバージョン |
38,527本 |
303,372本 |
Switch |
80% |
|
7位 |
37,835本 |
2,618,126本 |
Switch |
80% |
||
8位 |
34,368本 |
774,102本 |
Switch |
80% |
||
9位 |
34,085本 |
3,417,667本 |
Switch |
80% |
||
10位 |
スーパー マリオパーティ |
32,041本 |
1,229,061本 |
Switch |
80% |
|
11位 |
ディズニー ツムツム フェスティバル |
20,709本 |
108,025本 |
Switch |
60% |
|
12位 |
19,662本 |
3,231,666本 |
Switch |
80% |
||
13位 |
無双OROCHI3 Ultimate |
18,386本 |
18,386本 |
40% |
||
14位 |
妖怪ウォッチ4++(ぷらぷら) |
14,558本 |
34,565本 |
Switch |
60% |
|
15位 |
13,532本 |
153,908本 |
80% |
|||
16位 |
12,113本 |
1,470,179本 |
Switch |
80% |
||
17位 |
New スーパーマリオブラザーズ U デラックス |
11,936本 |
735,437本 |
Switch |
80% |
|
18位 |
太鼓の達人 Nintendo Switchば〜じょん! |
11,602本 |
409,844本 |
Switch |
80% |
|
19位 |
無双OROCHI3 Ultimate |
9,928本 |
9,928本 |
Switch |
40% |
|
20位 |
9,649本 |
201,884本 |
Switch |
80% |
||
21位 |
9,639本 |
2,039,914本 |
Switch |
80% |
||
22位 |
フォートナイト ダークファイアバンドル |
8,464本 |
34,910本 |
Switch |
60% |
|
23位 |
うたの☆プリンスさまっ♪Repeat LOVE for Nintendo Switch |
8,410本 |
8,410本 |
Switch |
60% |
|
24位 |
映画すみっコぐらし とびだす絵本とひみつのコ ゲームであそぼう! 絵本の世界 |
8,394本 |
26,352本 |
Switch |
40% |
|
25位 |
テラリア |
7,516本 |
7,516本 |
Switch |
40% |
|
26位 |
6,951本 |
456,426本 |
Switch |
80% |
||
27位 |
星のカービィ スターアライズ |
6,631本 |
778,039本 |
Switch |
80% |
|
28位 |
モンスターハンターワールド:アイスボーン マスターエディション |
6,312本 |
411,902本 |
80% |
||
29位 |
FIFA 20 Legacy Edition |
6,222本 |
38,118本 |
Switch |
60% |
|
30位 |
6,139本 |
75,821本 |
Switch |
80% |