未分類

アルゴリズム

投稿日:

ビンゴカードのプログラムが完成できたのでそのアウトプットをしていきます。

リーチとビンゴの数を出力

ビンゴボールクラスとカウントビンゴクラス、ビンゴカードクラスで分けて作成し、ビンゴカードクラスにビンゴボールクラスとカウントビンゴクラスを継承させ、それらのメソッドをビンゴカードクラス内でも扱えるようにしました。ビンゴカウントクラスでリーチ数とビンゴ数をカウントするのですが、このクラス内でビンゴ列の縦に穴が開いている数、横に穴が空いている数、斜めに空いている数をカウントするクラス変数を定義しビンゴカードクラス内でビンゴボールで穴が空いた数にテェックを入れる処理のところで場合わけをして先のクラス変数の値を変化させました。最後にカウントビンゴクラス内でcount_reachメソッドとcount_bingoメソッドで先のクラス変数の値が4の時にリーチ数を+1、5の時にビンゴ数を+1をカウントしてそれを出力する記述をすれば完成です。

アルゴリズムとは

アルゴリズムとは問題を解く際の方法や手順のことです。まず線形探索法と二分探索法を学びました。例えばある人がいてこの人の年齢は20歳以上36歳未満でyesかnoを答えることができて、四回の質問で答えを出すという問題があるとします。この時に20歳ですか?21歳ですか?とかたっぱしから質問をして確実に解を導こうとするものが線形探索法で、今回の場合では最高16回質問をしないといけないのでアルゴリズムとして適正ではありません。そこで20~35の半分の値のところ、28歳未満ですか?と質問をしてその次の質問でも同じように半分のところで質問を繰り返しどの年齢の場合でも4回で解を導き出すことができます。このようにアルゴリズムは問題によって変更し、より効率的に解を求めるように改善するのです。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

カレンダーアプリ

カレンダーのコンポーネント まず最初にAppコンポーネントにCalendarMenuコンポーネントとCalendarContentコンポーネントに分けました。この二つのコンポーネントには日付のデータを …

no image

Swift3

 今日は構造体とクラスの概念から学びはじめました。Swiftでは構造体とクラスで処理に名前をつけることでこの名前のものにこの処理をしているというのがわかるようにコードを書きます。これをオブジェクト指向 …

no image

kuukyo

 今日は面接が二つありました。一つ目は第一志望の企業さんで他に3人一緒に面接を受けました。みんなそれぞれ違う職種で違う人生を歩んできているので面白いという風に感じました。みんなで飲みにいきたいとも思い …

no image

php

 今日からPHPの学習をはじめました。PHPはwebアプリケーションを作るのに必要なプログラミング言語でrubyと同じくらい使われています。基本的にはjavaと同じように使うことができるみたいで、新し …

no image

javascript色々

letで変数宣言をした値は再代入する事が可能なので値を後から書き換える事ができます。再代入する際には違う型の値を入れる事ができるので型名も自動で変更してくれるのですが、その影響で予期しない型名が代入さ …