広島大学じゃんけん
サークル

第3回関数じゃんけん大会開催!

とくめい

毎月恒例

とくめいです

最近あっついですね

「外に出たくない」なんて甘いこと言ってる皆さんに朗報!



第3回関数じゃんけん大会を開催します!

これなら家から出ずにできるね!

団体での参加もできます

少しルールに変更点があるので、今まで参加したことある人もみてください

関数じゃんけんのルール

C言語に触れたことない人や自信のない人もどうか目を通してください
わからないとこは飛ばしてください





・C言語を使用

・0から1づつ増える整数n, 現在の勝利数w(どちらもunsigned long int型)を引数に取り、返り値が0, 1, 2のいずれかとなる関数を作成

・0はグー、1はチョキ、2はパーとして扱う

・関数の名前はpとして作成(対戦時はこちら側で別のものに書き換える p内で再帰的に呼び出した関数pも書き換え対象)

・関数の外でなんかするのはだめ
 関数内に収めるように書いてください

・ヘッダファイルはstdio.h, math.hを使用する

・n=0のとき(最初)は0(グー)を返さなければならない(ifなどを使ってもOK)

・勝利数が先に10000に達した方の勝利

・nが1000000に達した時点で勝者が決定していない場合は引き分け
 勝敗を決めなければならない場合は事前に決めておいた手で代理じゃんけんを行う(詳しくは応募方法へ)

・擬似乱数の使用は禁止

・相手の手の情報の使用は禁止

・マシンの破壊、不具合発生を目的としたコードを含んでいると判断された場合は失格

・ログなどのファイルの出力は可能だが、終了時に削除されていなければならない

上記のルールを自分の関数が満たすか軽くでいいのでテストしてから送るようにしてください(一応こちらでチェックします 多少の間違いであれば修正もします)

↓簡単なものではありますが、サンプルです


int p(unsigned long int n, unsigned long int w){
    if(w < 500){
        return (n * (n + 2)) % 3
    }
    else{
        return n % 3;
    }
}
            

上のルールがわからなかった人へ

関数とは要するにf(x)みたいなやつです
今回で言えばp(n)ですね

nは0から始まって1づつ増えていく整数です

p(n)=0でグー、1でチョキ、2がパーを表します

そのp(n)を作って戦わせるのが関数じゃんけんです

p(n)は0,1,2のいずれかでないといけませんが、最終的に3で割った余りを出すようにするので大丈夫です

整数にならなくても小数点以下は切り捨てるので問題ありません

しかし、負の値になってしまうとどうしようもなくなるので注意してください

そしてもう一つ
aのb乗はa^bとしてください

√(ルート)とかは変換で出てきますが、これはどうしようもないので・・・

n+1の3乗とかしたいときは
(n+1)^3
という風にまとまりは()で閉じるようにしてください

例を載せておきます

例1.p(n)=2n+5
例2.p(n)=(5n+2)^(n+1)
例3.p(n)=√((n+3)×n)+5n

3で割ったあまりを出したりコードに書き換えたりするのはこちらでやります

応募方法

以下のようにメールを送ってください

メールアドレス:jankenhu@gmail.com
件名:第3回関数じゃんけん大会
本文:
(Cのコードを書ける人)
1行目に名前(ニックネーム可)または団体名と読み方、2行目に引き分けになった時用のじゃんけんの手を0,1,2で50個記入し、コードをテキストファイル(.txt, .c)にして添付(名前はなんでもOK)
(数式で参加する人)
1行目に名前(ニックネーム可)または団体名と読み方、2行目には上の例のように数式、3行目には引き分けになった時用のじゃんけんの手を0,1,2で50個記入

返信する場合があるので、jankenhu@gmail.comからのメールが届くようにしておいてください

応募期間は7/23(火)23:59まで

質問などはTwitter問い合わせページにてメッセージを送ってください



第2回のコードをこちらで一部公開してるので参考にしてみてください

参加待ってます



Tweet

次の記事

メンバーが増えました

前の記事

第2回関数じゃんけん大会開催!