2020年1月問題を解く会
問題を解くぞ!
言語はまぁ何でも許されるぞ
得意な言語でも
これから勉強したい言語でも
進め方
問題を解く
できる人は勝手にモクモクな感じで、最後にどんな感じで解いたか発表してもらう
初心者に対してはサポートを
Pythonをやりたい初心者は集まって、ヒントを出しながら問題を解いていくのが良いと思うので、テレビの前で小川のモニターを映しながら、みんなで少しずつ問題を解きながら学ぶというのをやってみたい。
ミーティングルームにディスプレイがあるのでそこでやる。6人座れる。
問題を募集中!
難易度 ★☆☆
難易度 ★★☆
問題1 「3と5の倍数」
10未満の自然数のうち, 3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり, これらの合計は 23 になる.
同じようにして, 1000 未満の 3 か 5 の倍数になっている数字の合計を求めよ.
問題2 「偶数のフィボナッチ数」
フィボナッチ数列の項は前の2つの項の和である. 最初の2項を 1, 2 とすれば, 最初の10項は以下の通りである.
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項の値が400万以下の, 偶数値の項の総和を求めよ.
難易度 ★★★
問題1
DNAにコードされる遺伝情報は4つの文字(G,A,T,C)の並びで表されます。
この文字のことを塩基と呼び、DNA文字列のことをDNA塩基配列と呼びます。
塩基配列の長さは塩基数(単位: bp)で表記する習わしです。
メートル単位で、km = 1000 m とする様に、DNAの長さも 1 kbp = 1000 bpと表記します。
DNAの物質としての性質を決める因子としてGC含有率があります。
これは塩基配列内の「C」または「G」が占める割合によって与えられます。
例:「AGCTATAG」のGCコンテンツは37.5%です。
DNA配列をtextファイルに記載して、データベースに収載するときにIDを付ける必要があります。
一般に使用されるID付き書式は、FASTA形式と呼ばれます。
この書式では、1行目に「>」で始まるID文字列、後続の行には、DNA配列自体が含まれます。
DNA配列は改行を含んでも含まなくてもOKです。
例:(" \ " は無視して下さい)
\> NM_6404
CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC
TCCCACTAATAATTCTGAGG
\> NM_6404
CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC
TCCCACTAATAATTCTGAGG
\> NM_5959
CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT
ATATCCATTTGTCAGCAGACACGC
上記の様に、複数の配列を続けて記載した場合を、multi-FASTA形式と呼ぶこともあります。
1)最大10個のG,A,T,Cのランダムな配列を作成し、それをDNA配列とみなして、
適当なID名を付けたmulti-FASTA形式ファイルを作成してください(長さはそれぞれ最大1 kbpとします)。
2)1)のファイルを元に、GC含有率が最も高い塩基配列のIDとその配列のGC含有率、配列の長さを返り値とするコードを書いてください。
問題2 Shift only
【問題概要】
黒板に N 個の正の整数 A1,A2…,,…,AN が書かれています。
すぬけ君は,黒板に書かれている整数がすべて偶数であるとき,次の操作を行うことができます。
黒板に書かれている整数すべてを,2 で割ったものに置き換える。
すぬけ君は最大で何回操作を行うことができるかを求めてください。
【制約】
1≤N≤200
1≤Ai≤10^9
【数値例】
1)
N=3
A=(16,12,24)
答え: 2
1 回操作を行うと (8, 6, 12) になります。2 回操作を行うと (4, 3, 6) になります。2 個目の 3 が奇数なため 3 回目の操作は行えません。