【ここをクリック】←左のリンクのページに入り、画面の説明に従って、データを入力してください。今回の復習課題に使います(間違った形式で入力すると、処理が複雑になりますよ)。入力が同じ時間に集中すると「更新の衝突」がおきます。「コメントの挿入」ボタンをクリックする直前に、一度、ページをリロード(再読込)しておいてください。
これまでは主にExcel, Word, Power Pointなど、お金を出して買わなければならないソフトウェアの使い方を勉強してきました。でも、これらを個人で購入しようとすると、アカデミックパッケージを買っても数万円します。自分でパソコンを買った人にとって、こういうソフトを揃えるだけでもけっこう大変なことでしょう。
一方、講義で使ったK2EditorやWinShotはフリーソフトです。こういうソフトウェアは、作者が趣味で作ったり、自分のために作ったものを、無料で公開してくれている場合が多いです。作者の努力と親切さに感謝の心を持って、有りがたく使わせていただきましょう。
そして、近年のインターネットが発達に伴って爆発的に広まってきた物が、オープンソースというものです。ここでいう「ソース」というのは、もともとはプログラムの核となる「ソースコード」(文字で書かれた大元のプログラムリストと考えていい)のことを言っています。「オープンソース」では、大元の「ソース」が無料で公開されているので、それを見て、改良点を思いついた人が、自由に改良することができます。あるいは、そういうプロジェクトを立ち上げれば、不特定多数の人が意見を交換し、協同作業で改良を加えることで、どんどん素晴らしいものができあがります。
「無料だったら、大したものは無いんじゃない?」などという声が聞こえてきそうですが、そんなことは無いです。コンピュータを動かす核であるOSの一つ、Linux (この教育用計算機システムでも利用可能だし、授業のウェブサーバーでもOSとして使っている)は、オープンソースで大成功を収めた例です。
今後の講義では、オープンソースで配布されているいくつかのソフトウェアを用いて、統計、プログラミング、データベース等を学んでゆきます。それぞれのテーマについてはもちろん商用のソフトウェアもありますが、次のような理由でオープンソースのソフトウェアを選びました
デメリットとしては、
でも、デメリットよりもメリットの方がずーっと大きいので、皆さんもオープンソースソフトウェアに慣れ親しんでください。
日本語で描かれた情報が載っているページへのリンクのみ示した。本家はほとんど英語。
前回のアンケートの結果分かったのは、多くの人が統計解析というものが何をするのか、今ひとつイメージがつかめていない(あるいは、イメージは出来ていても、言葉にできない)ようでした。基礎からやって欲しいという意見もあったけれど、それには、時間が無さ過ぎます。そこで、この授業は、Rを使ってできる実践的な統計解析をやって見ましょう。生物学を学ぶ限り、統計解析は必ず使うことになりますから(もう、土谷先生や仲岡先生の授業では使ったでしょ?)。難しい理論は十分には理解できていなくても、「・・・・という解析をして得られた__という結果から、####と判断しました」と、自分の判断の客観性を、Rを使った解析で主張する方法を習得します。こうやって、まず、データとその扱いに慣れることで、統計解析に親しんでゆきましょう。
この授業では統計解析を、次の2つの目的のために使います。
1. ある対象(集団)から得られた部分的な数値データから、その対象の持っている性質や特徴を知ること
2. ある対象や実験で得られた数値データを用いて、その対象についてどういう判断を下せば良いかを論じること
まず、デスクトップに保存したRのフォルダで、Rのアイコンをダブルクリックする。
そうすると、画面が切り替わり、小さいウィンドウの中にいくつかのメッセージと、一番最後に、
>
が表示される。この">"をプロンプトと言う。プロンプトの右側には通常、カーソルがあり、「このマークの後に何かコマンド(命令)を打ち込んでくださいよ」とあなたに促している。
では、プロンプトのご要望に添って、何かコマンドを入力してみよう。とりあえず、"data1=c(1,2,3,4,5,6,7)"と入力する。
>data1=c(1,2,3,4,5,6,7) >
何もおこらない?いえいえ。エラーメッセージが何も表示されず、新しいプロンプトが表示されたら大成功。上のようにならなかった人は、半角・全角の文字の違いとコンマやカッコに注意してもう一度やってみよう。
上で行った操作は、"data1"という変数名に"(1 2 3 4 5 6 7)"というベクトルを代入せよという命令。では、プロンプトの後に"data1"と入力して、結果を見てみよう。
>data1 [1] 1 2 3 4 5 6 7
data1の内容が正しく表示されただろうか?
じゃあ、次に、今入力したベクトルの要素の平均をとってみよう。コマンドは今後、囲みの中のプロンプトの後に書かれている通りに入力してくださいね。
>mean(data1) [1] 4
平均値"4"が表示されれば大成功。これで、あなたがRを使って行う、初めての統計解析は、無事に成功しました。
では、数値をもう少し変えて、自分の好きな値で計算してみよう。。。といっても、「"data1=c(1,2,3,4,5,6,7)"なんてもう一度タイピングするのは面倒だなー」と思うでしょ?
安心してください。キーボードの"↑"記号を何回か押してみると、
> data1=c(1,2,3,4,5,6,7)
ほら、さっき入力したコマンドが表示された。そしたら"←"と"Back space"などを使って、数値を好きに変更して、最後に"Enter"キーを押そう。
> data1=c(1232,223.33,3 ,4 , 5666)
半角文字であるかぎり、別にスペースがいくつ入っていても大丈夫。入力したら、上と同じことをしてみると、
> data1 [1] 1232.00 223.33 3.00 4.00 5666.00 > mean(data1) [1] 1425.666
はい。これで、自分の好きな値を入力して、平均を計算することができました。
では、統計解析におけるRの使い方をもう少し詳しく見てゆきましょう。
統計とは、一部をもって全体を知る作業です。【ここをクリック】←ここに、産業技術総合研究所 デジタルヒューマン研究センターから提供して頂いた、1997年の男子大学生110人の身長、体重のデータがあります。このデータを使って、1997年当時の大学生の身長と体重の一般的傾向について議論してみましょう。
> h=scan() 1:画面に表示された 1: の後に、上のページから身長データをコピー・ペーストして、最後にenter キーを押します。次のように表示されるはずです。
1: 1775 1710 .. ..<省略>.. 111:同様にして、体重データも w というオブジェクトにを入れてください。次のように表示されるはずです。
1: 79.8 58.0 .. ..<省略>.. 111:確認のために
> h > wと入力してみましょう。データが一覧表示できます。
> summary(h) Min. 1st Qu. Median Mean 3rd Qu. Max. 1578 1671 1700 1706 1734 1839これで、1997年当時の調査した大学生110人の身長は、平均170.0cm(最大:183.9cm, 最小: 157.8cm)ということが分かりました。1st Qu.と3rd Qu.というのは、全体の4分の1の人数がどの高さまでの間に含まれているかということを表しています。つまり、167.1cm以下の人が25%、173.4cm以上の人が25%、その間の人が全体の50%ということです。体重も同様に解析してみましょう。
> summary(w) Min. 1st Qu. Median Mean 3rd Qu. Max. 44.20 55.10 59.40 59.53 64.40 82.20
#ref(): File not found: "hist.gif" at page "授業/H19/情報処理/09"
> hist(h)キーボードからたった7文字打ち込むだけで、 身長の度数分布がグラフで表示されました。同じことを体重についてもやってみましょう。
#ref(): File not found: "plot.gif" at page "授業/H19/情報処理/09"
> plot(h,w)身長と体重の関係は右上がりの直線関係にありそうですよね。110人分のデータを使って、1997年当時の大学生男子の身長と体重について、いろんなことが推定できそうです。Rを使った統計解析の基本(データの図示、代表値の計算、データ間の相関)などについてはここでは説明しきれないので、興味のある人は、下のリンクにある中澤さんによる解説などを読んで、勉強してみて下さい。
皆さんはこれから、自然界の集団を対象にして、いろんなデータを集めるだろうと思います。例えば、千葉大キャンパス内に生息するゴキブリの体長かもしれないし、雄と雌の比率かもしれません。そういうデータに共通して言えることは、全ての個体を観察・計測することは無理だということです。そこで、私たちは千葉大の全ての集団(これを母集団と呼びます)から、偏り無く一部を取り出して(これを任意抽出とかランダムサンプリングと呼びます)、母集団の性質を推測します。「一部を使って全体を知る」というのが統計の基本であると言って良いでしょう。
#ref(): File not found: "kasupin.gif" at page "授業/H19/情報処理/09"
ところで、生態学などのマクロ系の生物学では、データ解析に統計学が必要になることが、非常に沢山あります。この授業では、統計学全般について語っている時間は無いので、ほんのさわりしか扱いません。下に示す参考書などを読んで、勉強しておいてください。受験で培った数学力が落ちておらず、学問に対する情熱が非常に高い、1年生の今が統計学修得のチャンスですぞ!
さて、前回の課題アンケートでは、A君とB君のジャンケンの勝ち負けの数20回分のデータから、2人のジャンケンの強さに違いがあるかどうかという質問をしました。ほとんどの人が、「20回では何も分からない。1000回ぐらいやれば、たぶん、半々になる」とA君寄りの回答でした(→アンケート結果)。 「たかがジャンケンだから...」という声が聞こえてきそうですが、こういう状況だったら答えはどうでしょうか?
あなたは生物学科の4年生です。卒業研究テーマは「ヨコヅナサシガメの性表現について」というものです。 ヨコヅナサシガメは外来種として問題視されています。通常、集団内の雌雄の比率は1:1ですが、千葉県のある 地域の集団では、どうも、雄の方が多そうだということに気づきました。この雌雄の差が生じた原因をつきとめ れば、ヨコヅナサシガメの防除にも使えるかもしれません。予備実験でその地域の調査に行き、あちこちで採集 したところ、20個体採集することができました。性比を調べたところ、15匹が雄、5匹が雌でした。 今後、もっと大規模な調査を計画するためにも、今回の調査結果が、単なる偶然か、それとも、その地域の集団の 性比に偏りがあるせいなのかを知りたいと思います。どうすれば良いでしょうか?
卒業がかかっているのですから、「1000個体ぐらい見ないとわからない」とか、「雄・雌は偶然に決まるに違いない」などとは言ってられなさそうです。
そこで、統計的検定の出番です。今、「採集したうち20匹中15匹が雄という状況は、性比が1:1の生物で、単なる偶然で起こるようなことか、あるいは、偶然では滅多に起こらないことか」ということです。このように、得られたデータが単なる偶然で生じることからどれだけかけ離れているかを知るには、統計的検定という作業が必要になります。
統計的検定では、次のような論証を行います。
母集団の性比は1:1であるこの仮説のことを 帰無仮説と言います。(統計の教科書を見ると、帰無仮説には「違いがない」とか「差がない」という仮説を使うと書かれています。「違いがある」とか「差がある」という仮説はつかえません。今回の場合「『母集団の性比は1:1である』というだけで「差が無い」とか「違いが無い」とかは言って無いじゃないか?」と思う人がいるかもしれません。でも、「性比が1:1である」ということは「雄と雌の出現確率には違いが無い」ということを意味しています。字面だけで判断するとこんがらがる場合があるので、注意してください。)
母集団の性比は1:1では無いということです。対立仮説は帰無仮説を否定したものになっています。
20匹中15匹が雄だったというのは、サンプリングの際の偶然のバラツキによる可能性が考えられます。つまり、「母集団の性比は1:1」であったとしても、偶然のバラツキによって、20匹中雄が15匹得られる確率を計算して、その確率をもとに、それがどれだけ起こりにくいことかを判断しようとしています。この確率の事をp値(Rではp-valueと表示される)と呼びます。
p値の計算をするときに、20匹中雄が15匹の場合だけを計算してはいけない 20匹中雄が15匹以上(15, 16, 17, 18, 19, 20)の場合の確率を計算しなくてはならないということです。この後の議論に出てくるように、起きた事象がどれだけ珍しいことかを判断して、それが滅多におこらないようなことなら、帰無仮説を棄却します。16匹以上が雄というそれぞれの事象は15匹が雄という事象よりも起こりにくいことですから、そう言う場合にも、帰無仮説は棄却されることになります。そのため、p値の計算は「15匹以上」の場合の確率が必要になるのです。この確率のことを累積確率と呼びます。
「母集団の性比は1:1である」(帰無仮説)(つまり、データの偏りは単なる偶然)が棄却されたのですから、
「母集団の性比は1:1では無い。」(対立仮説)(つまり、データの偏りは、単なる偶然では無い)
「母集団の性比は1:1である」(帰無仮説)が正しいという仮定の下で、「20匹中15匹が雄」という状況が生じる確率(p値)が、「希さ」の基準(有意水準)よりも大きいわけです。言い換えると、「母集団の性比が1:1であるときに、20匹中15匹が雄になるという状況は、別に不思議ではない」ということになります。つまり
「母集団の性比は1:1である」(帰無仮説)という仮説は 棄却 されないということです。得られたデータからは帰無仮説を否定できなかったので、この場合、得られたデータ(この場合、は20匹中の雄・雌の数)には、...%(...にはp値と比較した値が入る)の有意水準で、有意差が無いと言います。ここで注意しなければならないのは、「有意差が無い」からといって、「母集団の性比は1:1である」と結論づけてはいけないことです。「有意産が無い」のは、「母集団の性比は1:1であってもおかしくは無い」ということを意味しているだけで、単なる偶然の結果かもしれないし、データ数が少ないせいかもしれないし、いろんな場合があり得ます。
では、実際に先ほどの例を解析してみましょう。この検定は二項検定と呼ばれています。まず、帰無仮説は
母集団の性比は1:1である
ということです。この帰無仮説が正しいと仮定すると、 得られたデータの偏りは、サンプリングの際の偶然の偏りであると考えられます。確率50%で生じる事象が、20回中15回得られたわけですよね。検定の際には、これより希な条件も全て含めて確率を計算します。つまり、20回虫、15回以上その事象が生じる確率を計算します。 手で計算してもいいのですが、今回はすぐにRを使ってみましょう。上の検定を行うにはprop.test()関数を使います。
prop.test(x,n)
と入力するだけで、実際のx個のサンプルの中で、データ値がn回実現したという状況で、そのデータ値は(もう一つの対になるデータ値に対して)母集団中で1:1で出現するという帰無仮説をテストできます。
このテストの説明はそんなに難しくないです。20回中、雄が15回以上生じる確率を計算してみてください。詳しい解説は、上記、粕谷さんのピンク本に載っています。
上の例だと、20サンプル中15サンプルが雄で、帰無仮説は「母集団の性比は1:1」だということでしたから、
> prop.test(15,20) 1-sample proportions test with continuity correction data: 15 out of 20, null probability 0.5 X-squared = 4.05, df = 1, p-value = 0.04417 alternative hypothesis: true p is not equal to 0.5 95 percent confidence interval: 0.5058845 0.9040674 sample estimates: p 0.75 ※二項検定はRのコマンドに入っていました。 > binom.test(15,20) でテストできます。
p値の値は0.044なので、有意水準が5%の場合は、有意水準よりも小さい値だということです。なので、帰無仮説「母集団の性比は1:1である」は棄却されます。(もちろん、有意水準を0.001にすると棄却されません)
つまり、調査した地域のヨコヅナサシガメの母集団には、有意水準5%では、雄と雌の性比に偏りがあったということができます。
(有意水準0.1%の場合は、「性比に偏りがあるかどうか分からなかった」)
どうやらその地域のヨコヅナサシガメの母集団には性比に偏りがありそうなので、卒業研究の調査をすすめても良さそうですね。
先ほど1997年の男子大学生110の身長データをhというオブジェクトに入れました。【このページ】のもう少し下の方には、1998年当時60歳以上の男性51人の身長のデータものっています。大学生(平均20.52歳)と60以上(平均68.61歳)では、48歳ほどの差があります。同じ成人男性といったって、40年も違う時代に成長期を迎えたわけですから、身長には違いがあってもおかしく無いような気がします。この2つのデータをみて、2つのサンプルの母集団(ランダムサンプリングが行われたとして、1997年当時の男子大学生全てと1998年当時の60歳以上の男性全て)の間で身長には差があると言っても良いでしょうか?
60歳以上の男性の身長データをオブジェクトに格納します。scan()関数を使って
> h2=scan() 1: 1547 1689 .. ..<省略>.. 52:
hとh2のそれぞれの平均値やヒストグラムを比べてみてください。
> summary(h) > summary(h2) > hist(h) > hist(h2)
平均値やヒストグラムを見た限りでは、けっこう違いがありそうです。
#ref(): File not found: "boxplot.gif" at page "授業/H19/情報処理/09"
もう一つグラフを作ってみましょう。2集団のデータを簡単に比較するときに便利な関数が、boxplot()です。
> boxplot(h,h2)
さて、いよいいよ検定です。検定の考え方は上で示したのと全く同じです。ただし、データの持っている性質が違うので、p値の計算方法は異なってきます。このような2集団の違いの検定には、Wilcoxonの順位和検定という方法を使います。検定の説明はブラックボックスになりがちですが、上で紹介した粕谷さんのピンク本や、中澤さんのRの使い方pdfには、詳しい考え方の説明がかかれていますから、読んでおいて下さい。今回はRを使った統計的検定がいかに楽かということを示すのが目的なので、詳しくは触れません。
まず、ヨコヅナサシガメの例で見たように、帰無仮説と対立仮説を決めます。
帰無仮説: 2つのサンプルの母集団に差が無い 対立仮説: 2つのサンプルの母集団に差がある
2つの母集団に違いがなければ、hとh2という集団のデータは、母集団から抽出したときに、たまたま偶然で偏ってしまったものだろう。そういう偶然の偏りでこれだけの違いが生じるのは、どのくらいの確率(p値)で生じるのかを計算します。Rではwilcox.test()という関数を使います。
> wilcox.test(h,h2) Wilcoxon rank sum test with continuity correction data: h and h2 W = 4957, p-value = 5.329e-15 alternative hypothesis: true mu is not equal to 0
p値の値は 5.329e-15 で、これは 5.329x10^(-15) を示しています。つまり、0.0000000000000005329です。これは有意水準の0.01%よりもずーっと小さい値なので、2つの身長データの違いが同一母集団から偶然のサンプリングのバラツキでで生まれたということはほとんど無い、ということを示しています。統計学っぽく表現すると、「2集団の差をWilcoxonテストで検定した結果、0.01%の有意水準で有意な差があった」と書きます。
どうやら、40年も年齢の異なる2つの母集団の身長には差があると言って良さそうです。やっぱり、成長期に摂取できた栄養の影響などが、きっと大きいのでしょう。
さて、いつもじゃんけんに負けてしまうB君。お父さんや母さんに聞いても、「そのうちきっと続けて勝つよ」と、取り合ってくれません。どーしても、納得行かないので、隣町に住む、いとこのあなた(理学部生物学科の学生)に相談に来ました。「僕にとってはしかつ問題なんだかね」と言うB君。"むつかしい"言葉を使うのが好きなおませさんです。
そこで、あなたは、なんとかB君にも分かるように説明してみました。
「B君は、A君がなにかずるをしていると思ってるんだよね?だって20回じゃんけんをして、15回もA君が勝っちゃうんだからおかしいよね。でもA君は、じゃんけんは偶然で決まるんだから、1000回もやればそのうち勝率は半々になるって言うんでしょ?じゃんけん1000回かー。そのくらいやれば、2人とも大人になっちゃうね。
まあ、ともかく、仮にA君が言うように、じゃんけんはでどちらが勝つかはホントに半々で決まるとしてみようよ。
20回のうち10回勝つことは、ありそうだよね。
20回のうち11回勝つことも、ありそうだよね。
12回勝つことは、まあ、ありそうかな。
13回や14回だと、ちょっと微妙?
それで15回だと、。。。ありそうにないって感じるわけでしょ?
いいかい?今、「じゃんけんでどちらが勝つかはホントに半々で決まる」と仮に考えているよね?そのとき、
A君は、「半々で決まるのだから、20回中15回勝つことはそんなに珍しいことじゃない」
B君は、「半々で決まるんだったら、20回中15回勝つなんて珍しいことが起こるのはおかしい」
2人の主張が食い違ってるわけだ。だったらさ、「勝敗が50%の確率で決まるとき、20回中15回勝つこと」が、どれだけ珍しいことか、測ってみればいいんじゃない?こういうのって、確率で測れそうだよね。
じゃあ、「勝敗が50%の確率で決まるときに、20回中15回勝つ」確率を計算してみよう。
その確率がそんなに小さく無いのなら、「勝敗が50%の確率で決まるときに、20回中15回勝つ」ことは、別にあっても不思議じゃ無いっていうことでしょ?
逆に、その確率がとーっても小さいなら、「勝敗が50%の確率で決まるときに、20回中15回勝つ」ことは滅多に起きないということなので、きっと「勝敗が50%の確率で決まる」っていう前提が間違ってるよね?
(なんと、B君は、この難しい説明を理解したようです。)
どうやってその確率を計算するかって言うと....うーん、一つ一つ説明するのは大変だから、ここはパソコンにやらせよう。ほら、このRというソフトを使うと、
binom.test(15,20) Exact binomial test data: 15 and 20 number of successes = 15, number of trials = 20, p-value = 0.04139 alternative hypothesis: true probability of success is not equal to 0.5
こうなって、p-valueっていうのが、「勝敗が50%の確率で決まるときに、20回中15回(以上)勝つ」確率なんだよ(注:話しが難しくなりそうなので、累積確率の説明は端折ったようです)。そうすると、0.041っていうことは、4%ぐらいの確率だよね。どう?「勝敗が50%の確率で決まるときに、20回中15回(以上)勝つ」のは、100回中4回しか起きないっていうことなんだよ。やっぱり低いって思う?
今やったような計算を統計的検定って言うんだけど、問題にしていることがどれだけ起こりにくいかを議論するときには、5%とか、0.1%とか、0.01%っていう基準を使うんだ。まあ、よく使われる、「珍しさ・起こらなさ」を示す基準のうち一番大きいのが5%だね。B君のジャンケンの例だと、「勝敗が50%の確率で決まるときに、20回中15回(以上)勝つ」確率が4.1%だったでしょ?5%っていう基準よりも小さいので、「滅多に起きない」って言っていいわけ。つまり、「勝敗が50%の確率で決まる」っていう前提が間違いだと考えられるので、きっとA君が、何かずるをしている可能性が高いだろうと考えられるんだよ。でも、珍しさの程度はあくまでも、4%、つまり、100回中4回ぐらいは起きても構わないってことだからね。A君が言うように「勝敗が50%の確率で決まる」ってことは絶対無いなんて言える訳じゃないからね。
さすがのB君も、確率とか統計とかが出てくるとこんがらがってきたようです。
ともかく、A君がずるをしているのかも知れないという可能性を、何だか難しい話しで説明してもらったB君、少しは納得できたようです。ついでに、どうすればずるをされなくなるか、聞いてみました。何回か一緒にジャンケンをしてみたところ、手や体の動きに癖は無さそうです。そうすると、きっと、出し方のパターンを覚えられてるのだろうという事になり、乱数表をおみやげに貰いました。ジャンケンをする前に、この表をこっそり見て、何を出すかを決めるそうです。。。。
php-4.4.2-Win32 xitami-25
php xitami
*第9回授業アンケート **氏名: **課題への回答 -今日(6月15日)の授業の進み方は?(はやい、丁度いい、おそい) --回答: -今日の授業の難しさはどう感じましたか(簡単すぎ 簡単 丁度いい 難しい 難しすぎ): --回答: -難しいと答えた人は、特にどの点が難しかったですか?: --回答: -今日の授業は(よく分かった 分かった 分からなかった): --回答: -分からないと答えた人は、特にどの点が分からなかったですか?: --回答: -今日の講義で理解できなかった用語があったら挙げてください: --回答: -この授業では大量のデータをいかに効率良く処理するかということに注目しています。 そこで、次の質問に答えてください。 -これまでの人生で、自分が扱った最も大きなデータの規模を答えてください。例えば、 名簿の場合人数と項目、実験データの場合、何件のデータとか。 --回答: -今後の大学生活で、自分がどのくらいの大きなデータを扱うことになるか、データの種類と規模を 想像で答えてください。 --回答:
問1:身長のsummary()の結果をペーストしなさい: 問2:体重のsummary()の結果をペーストしなさい: 1997年男子大学生110人と、生物学科男子学生身長のデータは、それぞれが、当時の大学生の集団から、 任意にサンプリングされたものだと仮定します。このとき、両者の母集団の身長に差があるかどうかを 検定します。 (2006年6月22日に問題文を書き替えました) 問3:帰無仮説は何ですか?: 問4:対立仮説は何ですか?: 問5:検定に用いたRの計算式と結果をコピー・ペーストしてください (以上、全て、回答を書くときは、1行ずつ、行頭に半角スペースを入れること) 問6:検定の結果からどのようなことが議論できますか?:
for($i=0; $i<10; $i++) { //繰り返しの開始:この行の { から、対応する一番最後の行の } までの間を10回繰り返す。 //10回という数値は、$iという変数の初期値は0で、1回の繰り返しごとに1ずつ増やされ // 9 (つまり<10)になるまで10回分繰り返されるということ $amari = fmod($i, 2); // $iを2で割ったときの余りを$amariという変数に入れる。1周目だと$iは0なので$amariは0 if($amari==0){ //条件文の開始:もし$amariが0ならば echo "偶数 "; //「偶数 」と表示する(改行は無い) } else { //もし$amariが0で無いならば echo "奇数 "; //「奇数 」と表示する(改行は無い) } //条件文の終了 } //繰り返しの終了
問1: 上のプログラムの実行結果を、下の3つから選んで、数字で答えなさい。 1. 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 2. 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 奇数 偶数 3. 偶数 偶数 偶数 偶数 偶数 奇数 奇数 奇数 奇数 奇数 答え: 問2: 繰り返しの数を20回にするには、上のどこをどのように変更すれば良いか? 答え:
第9回授業の課題 [#ic6d1e37]
./09
良くある間違い: joho19/07s9999/06 というページを作るべきなのに joho19/07s9999/05/06 としてしまったとか
*第9回授業アンケート **氏名: -この授業では大量のデータをいかに効率良く処理するかということに注目しています。 そこで、次の質問に答えてください。 -これまでの人生で、自分が扱った最も大きなデータの規模を答えてください。例えば、 名簿の場合人数と項目、実験データの場合、何件のデータとか。 --回答: -今後の大学生活で、自分がどのくらいの大きなデータを扱うことになるか、データの種類と規模を 想像で答えてください。 --回答: