YURU_DB

OracleDB / AOJ(python)

ITP1_4_B: Circle (python3)

円の面積と円周

半径 r の円の面積と円周の長さを求めるプログラムを作成して下さい。

Input

1つの実数 r が与えられます。

Output

面積と円周の長さを1つの空白で区切って1行に出力して下さい。
出力は浮動小数点数とし、0.00001 以下の誤差を含んでもよいものとします。

Constraints

0 < r < 10,000

Sample Input

2

Sample Output

12.566371 12.566371

回答

r = float(input())
pi=math.pi
s = ( r ** 2 ) * pi
l = 2 * r * pi
print s, l

説明

r = float(input())
–> 浮動小数点での出力が求められているので、floatで入力をfloatで。

pi=math.pi
 –> 円周率πを使うために、math.pi をインポートしておく。

s = ( r ** 2 ) * pi
–>円の面積を求める公式: 半径×半径×円周率

l = 2 * r * pi
–>円周の長さを求める公式:直径×円周率=2×半径×円周率

雑感

久々にAOJでpython触ったので、いろいろ忘れてました。(入力方法とか) できるだけ続けよう、、、

JPOUG in 15 minutes #2 に参加してきました(前半)

久しぶりに以下の勉強会に参加してきたのでメモ。
 ※諸事情あって手書きメモしか取れなかったので不完全な内容となってます。

JPOUG in 15 minutes #2
http://www.jpoug.org/2016/09/12/in15m2

ORAエラー総選挙2016

(株式会社アシスト 大野 高志さん)

 サポートセンターにてお問い合わせの多いORAエラーランキング発表。 
  ※15分ほど遅刻したので終盤しか聞けず。
   参加者の反応見るとかなり面白い内容だったようなので無念、、

 ・第3位:ORA-04030
     ORA-04030については以下を参照。(ググったら一番上に出てきた)
     http://www.cosol.jp/tech/detail/ot0039_ora04030.shtml

・第2位:ORA-7445
     ORA-7445については以下を参照
     http://www.cosol.jp/tech/detail/ot0014_ora07445.shtml

・第一位:ORA-600(みんなのアイドル)
     ORA-7445については以下を参照
     http://www.cosol.jp/tech/detail/ot0003_ora00600.shtml
      ORA-600については、どのような影響があるか? の問い合わせ多数

・今後増加するであろう問い合わせ
     ・うるう秒:2017/1/1 8:59:60
     ・OracleDatabase 12cR2アップグレード関連
     ・元号対応(平成 --> ??) 気が早いw

Oracleクラウドだけじゃない! 主要クラウドサービスでのOracle DBの導入を考える。

(小林 栄治さん)

・商用でOracleDatabaseを導入した環境について会場アンケートを取ってました(挙手)  
    ・オンプレ:圧倒的多数  
    ・クラウドのみ:確かゼロ  
    ・両方:1名  
・AWSについて(シェア・注目度No1)  
    ・Oracle社に承認されたクラウドサービス  
    ・OracleDBのソフトウェアライセンスをEC2等に持ち込める  
・Azure  
    ・Microsoft関連サービスが豊富  
・Bluemix  
    ・Oracle社未承認  
    ・物理サーバ使える(trialで試してみよう)  
・まとめ  
  ・AWSがおすすめ  
  ・Microsoft製品が多いならAzure  
  ・Bluemixは物理サーバに限り、OracleDBサポート可能  

おじさん二人が語る、OOW デビューのススメ! – Oracle OpenWorld 2016参加報告

(株式会社コーソル 杉本 篤信さん、河野 敏彦さん)

・OOW:年に一度のオラクル最大のイベント  
・コーソル社では毎年2名がOOWに参加  
・今年はおじさん2人が参加  
・コーソル社は今回会場となったヤフージャパン社から徒歩10分  
・OOW最高!  
・今年はOracleDatabase関連のセッションは例年に比べ少なかった  
・今年の大きな発表   
    ・12cR2のリリース  
    ・ExadtaSL -SparcLinuxの発表  
    ・ExadataExpress  
    ・AWSへの宣戦布告      
・新商品:SL(Sparc on Linux)  
・ラリー・エリソンが笑顔でAWSをdis  
    「AWSはなんでこんなに遅い?」  
    「AWS意外と早くない」  
    「AWS、時代遅れ」  
・OOWセッション  
    ・事前にセッション予約が必要  
    ・キーノートは予約不要、なのでめっちゃ並ぶ  
    ・人気のあるセッションは早く埋まるので早めに予約する必要がある  
        ・PerformanceTuning関連は人気なのでセッション1週間前には埋まる  
    ・大きいセッションは同時通訳がある。  
     Oracleという共通文脈があるので英語できなくてもなんとかなる  

・テクノロジー関連  
    ・OOW参加メリット  
        ・グローバルな3rdパーティ製品の情報を仕入れることができる  
・観光関連  
    ・サンフランシスコは観光名所が多い  
    ・ステーキは食っとけ  

全員で7人の発表があったのですが、長文になるのでここらで分割。
後半はまた次回書きます。

雑感

    ・DBだけでなくクラウドにも強くならないといけないと感じた。    
    ・Oracleの勉強しかしてないので、AWS,AzureやBluemixなどの基本製品知識も仕入れる。    
    ・発表者の方々のレベルが高すぎて、たまに何言ってるかわからなかった。勉強不足。  
    ・手書きだと全然話に集中できなかった、、、  
    ・PCだとメモ速い&不明単語ググりながら聞けるので楽→PC必須             
    ・最初にブログ書く前提で話を聞いてたら、違ったまとめ方ができたかも。  
    (今回は完全にただのメモ)  

Oracle Master Silver 11g に合格しました

#勉強について

基本的に白本、iStudy(有料)を繰り返し演習する事で得点率を上げました。

・iStudyは210問全て正解できる状態にしておきました。

・副読本については「プロとしてのOracleアーキテクチャ入門」を使用しました。

https://www.amazon.co.jp/dp/4797384085

 

 #合格してみて

今回は時間をかけて準備したので特に問題なく合格できました。

出題パターンでいうと、iStudyよりも断然白本からの類似問題が多かったです。

なので白本をきっちりやっておけば合格できると思います。

 

バックアップリカバリやプロセスの動きについては、暗記よりも絵を描くなどして理解しちゃった方が結局点数を取りやすいです。実業務でも役に立ちますし。

 

#次に

年内にはgoldを取得したいので12月半ばに受験予定です。

  ※ちょうど本日gold研修でした。研修って試験前でも受講できるのですね。初めて知りました。

 

#最後に

今回も資格取得によって、自分の知識が整理されていく実感を得る事ができました。

とりあえずgold取ったらLPIC、基本情報を取得。その後platinum11gを取得して12cに移行って予定です。

 ※2年以内にやりたいけど難しいか…

 

 

 

ITP1_3_D: How Many Divisors? (python)

問題

約数の数

3つの整数 a、b、c を読み込み、a から b までの整数の中に、
c の約数がいくつあるかを求めるプログラムを作成してください。

Input

a、b、c が1つの空白区切りで1行に与えられます。

Output

約数の数を1行に出力してください。

Constraints

・1≤a,b,c≤100001≤a,b,c≤10000
・a≤b

回答

a,b,c = map(int,raw_input().split())
cnt = 0

for d in range(a,b+1):
    if c%d==0: cnt+=1
print(cnt)

説明

a,b,c: リストにint型に変換しつつ値を格納。
cnt: 約数カウント用の変数を初期化

d: cを割る値(a〜bの値を入れる)
range(a,b+1): a〜bの値までをリストで返す
        ※range関数ではbと指定すると、a〜(b-1)
         までの値を返すので、b+1としている。
if文: ループ時のdでcが割り切れるなら、約数と判断してcntに+1する。
print: cの約数の数であるcntを表示。

雑感

約数の定義ってなんだっけ、から始まりました、、、
数学勉強し直す意味でもAOJやってて楽しいです。

ITP1_3_C: Swapping Two Numbers (python)

問題

2 つの数の交換

2つの整数 x, y を読み込み、それらを値が小さい順に出力するプログラムを作成して下さい。
ただし、この問題は以下に示すようにいくつかのデータセットが与えられることに注意して下さい。

Input

入力は複数のデータセットから構成されています。
各データセットは空白で区切られた2つの整数 x, y を含む1行から構成されています。
x と y がともに 0 のとき入力の終わりを示し、このデータセットに対する出力を行ってはいけません。

Output

各データセットごとに、x と y を小さい順に並べたものを1行に出力して下さい。
x と y の間には1つの空白を入れて下さい。

Constraints

0 ≤ x, y ≤ 10,000
データセットの数は 3,000 を超えない。

回答

while True:
    x,y = map(int,raw_input().split(" "))
    if (x,y) == (0,0): 
        break
    elif (x < y):
        print x, y
    else :
        print y, x

説明

・x,y 二つの変数にint型を格納。
・if文について:
 x,y両方とも0ならループを抜ける。
 x<yなら x,yの順番で表示。
y<xなら y,xの順番で表示。

雑感

printさせる方法については
sorted関数を使えばもっとスマートにできそうな気がする。

ITP1_3_B: Print Test Cases (python)

問題

テストケースの出力

オンラインジャッジでは、提出されたプログラムが複数の入力データそれぞれに対して正しい出力を行っているかを判定するために、
1つの入力データファイルに複数のデータセットが含まれているものがあります。
この問題は、そのようなデータセットを処理するための練習問題です。
1つの整数 x を読み込み、それをそのまま出力するプログラムを作成して下さい。
ただし、この問題は以下に示すようにいくつかのデータセットが与えられることに注意して下さい。

Input

入力は複数のデータセットから構成されています。各データセットは1つの整数 x を含む1行から構成されています。
x が 0 のとき入力の終わりを示し、このデータセットに対する出力を行ってはいけません。

Output

各データセットごとに、以下の形式で x を出力して下さい:

Case i: x
ここで、i は1から始まるデータセットの番号を示します。
Caseと番号 iの間に1つの空白を入れて下さい。
また、:(コロン)と整数 x の間に1つの空白を入れて下さい。サンプル入出力を参考にして下さい。

Constraints

1 ≤ x ≤ 10,000
データセットの数は 10,000 を超えない。

回答

num = 1
while True:
    x = int(input())
    if x == 0: break
    print ("Case {0}: {1}".format(num,x))
    num += 1

説明

 ・問題から「ある条件下において、処理を続ける」事が必要になるのでWhile文を使う。
 ・caseXXXを出力するための変数numを初期値1で定義。
 ・while文の中身:
  入力値をint型に変換しつつxに格納。
   ※もしx(入力値)が0ならwhileループを抜ける。
  num(caseの番号)と、x(入力値)を表示。
  numに1足す。

雑感

自分だけでは解けなくて、AOJの回答投稿から見ました。
まだまだpython力低い。。

ITP1_3_A: Print Many Hello World (python)

問題

複数の Hello World の出力
1000 個の "Hello World" を出力するプログラムを作成して下さい。

Input

この問題に入力はありません。

Output

各行に "Hello World" と書かれた 1000 行の文字列を出力して下さい。

回答

num = 0

while num < 1000:
    print "Hello World"
    num += 1

説明

カウンタ用変数numを用意
numが1000以下の場合、以下を繰り返し実行
・"Hello World"を出力
・numに+1する
numが1000に達したら終了。ループを抜ける。

雑感

繰り返し処理を理解する事ができた