---
title: "統計データ解析I"
subtitle: "第3講 練習問題"
date: "`r Sys.time()`"
format:
    html: 
      toc: true
      html-math-method: katex
      self-contained: true
      grid: 
        margin-width: 350px
execute: 
  echo: true
  warning: false
reference-location: margin
citation-location: margin
tbl-cap-location: margin
fig-cap-location: margin
editor: visual
editor_options: 
  chunk_output_type: console
---

## 関数の使い方

### 問題

以下の問に答えなさい．

-   ヘルプ機能 (Help タブの検索窓, または関数 `help(),?`) を用いて関数 `sample()` を調べなさい．

-   サイコロを $1$ 回振る試行を模擬せよ．

-   サイコロを $10$ 回振る試行を模擬せよ．

    ::: callout-tip
    引数 `replace` を調べなさい．
    :::

-   $1$ が出易いサイコロを作りなさい．

    ::: callout-tip
    引数 `prob` を調べなさい．
    :::

-   $1$ から $6$ をランダムに並べ替えよ．

## 自作関数の定義

### 問題

以下の問に答えなさい．

-   $1$ から整数 $n$ までの和を求める関数を作成せよ．

    ::: callout-tip
    関数 `sum()` を調べなさい． 等差数列の和を利用してもよい．
    :::

-   整数 $n$ の階乗 $n!$ を求める関数を作成せよ

    ::: callout-tip
    関数 `prod()` を調べなさい．
    :::

## 制御構造

### 問題

以下の問に答えなさい．

-   整数 $n$ の Fibonacci 数を求める関数を作成せよ．

    -   Fibonacci 数は以下の漸化式で計算される． $$
        \begin{align}
          F_{0}&=0\\
          F_{1}&=1\\
          F_{n}&=F_{n-1}+F_{n-2}
        \end{align}
        $$

-   行列 $X$ が与えられたとき，各列の平均を計算する関数を作成せよ．

-   前問で $X$ がベクトルの場合にはその平均を計算するように修正せよ．

    ::: callout-tip
    関数 `is.vector()` が利用できる．
    :::
