Hatena::ブログ(Diary)

おぼえがき このページをアンテナに追加

2017-12-27

paizaの懸賞問題解答(期限切れ)(正答かは知らない)

paizaの懸賞問題の提出が間に合わず、提出し損ねたのでここに保存する。

しりとりをして最後に残った人数と人の番号を出力する問題。python3で解答。

ppl,wordNum,remarkNum=map(int,input().split())
wordList=[]
for _ in range(wordNum):
    word=input()
    if word[-1]!='z':
        wordList.append(word)
humanList=[i for i in range(1,ppl+1)]
#「newGameかつwordが前回の語尾と異なる始まり」、もしくは語尾がz、もしくはwordListに含まれていないときは脱落
newGame=True
nowIndex=0
for _ in range(1,remarkNum+1):
    word=input()
    if (not newGame and lastWord[-1]!=word[0])\
        or word[-1]=='z' or (word not in wordList):
        humanList.pop(nowIndex)
        newGame=True
        nowIndex=nowIndex % len(humanList)
    else:
        wordList.remove(word)
        lastWord=word
        newGame=False
        nowIndex=(nowIndex+1) % len(humanList)
    #print(humanList)

print(len(humanList))
for i in range(len(humanList)):
    print(humanList[i])

2017-06-16

ブラウザ版輪廻シミュレーション

おみくじアプリをいじってブラウザ版輪廻ゲームを書いたけど、走らせ方がわからない - おぼえがきの続き。

ちゃんと動いたけど、ワンクリックでページを表示できるような公開の仕方がわからない。

ので、ソースコードを張って置く。


index.html

<!DOCTYPE html>
<html lang="ja">
<head> 
  <meta charset="UTF-8">
  <link rel="stylesheet" href="main.css">
  <title>輪廻シミュレーション</title>
</head>
<body>
  <div id="rinne">
    <h1>輪廻</h1>
    <p id="output">あなたの来世…?</p>
    <button id="btn"></button>
    <script src="main.js"></script>
  </div>
</body>
</html>

main.css

#rinne > #output > h2 {
  font-size: 30px;
  font-family: serif;
  margin: 0;
  text-shadow: 0 -1px 0 #222;
}

  #rinne {
    text-align: center;
    width: 500px;
    background-color: #EDA;
    border: 3px double #990;
  }

  #rinne > h1 {
    color: #630;
    font-family: serif;

    font-size: 15px;
    font-family: serif;
    margin: 0;
  }

  #rinne > #output {
    background-color: #04A6EB;
    color: #FFF;
    margin: 10px auto;
    padding: 5px;
  }

  #rinne > #btn {
    background: #740;
    border: 0;
    color: #FFF;
    cursor: pointer;
    font-size: 20px;
    font-family: serif;
    margin: 10px auto 20px auto;
    padding: 5px 20px;

  }

  #rinne > #btn:hover {
    background: #960;
  }

  #rinne > #btn:active {
    background: #630;
  }

main.js

(function () {
  'use-strict';
  const spieces = ['ヒト', 'ヒグマ', 'センチニクバエ', 'ヒトスジシマカ', 'アカウシアブ', 'チャバネゴキブリ', 'チンパンジー', 'イエネコ', 'オオバコ', 'AI'];
  var message = '';
  var random_spieces = '';
  var key = 0;
  const btn = document.getElementById('btn');
  const output = document.getElementById('output');
  var deg = 0;

  btn.onclick = () => {
    if (key == 0 && Math.random() < (1 / 3)) {
      message = '<h2>解脱</h2>';
      output.innerHTML = message;
      btn.remove();
      return;
    }
    key = Math.floor(Math.random() * spieces.length);
    random_spieces = spieces[key];
    message = '<h2>' + random_spieces + 'として生まれる</h2>';
    output.innerHTML = message;
  }

  const rinne = document.getElementById('rinne');

  function rotateGedats() {
    if (message == '<h2>解脱</h2>') {      
      rinne.style.transform = 'rotateZ(' + deg + 'deg)';
      deg = deg + 6;
    }
  }

  setInterval(rotateGedats, 20);

})();

2017-01-06

CodinGameのMars Lander 1の模範解答への蛇足コメント

http://ethiery.vvv.enseirb-matmeca.fr/CGsolo/mars-lander-1.html

このサイトに載っているコードの一部にコメントを追加します。

      /* もし今スラスターを吹かしてなくて、今からスラスターを吹かし始めて、
   スラスターが最大に吹かされた時の垂直速度と高度を求める*/
   
        double vdY = (double)dY;
        double vY = (double)Y;
        for (double i = 0.0; i <= 4; i++) {
            vdY += i - 3.711;
            vY += vdY;
        }

   /*その時、着地していなくて、落下中である限り、一秒後の高度と落下速度を求める。
   最後に求められる高度と落下速度は、着地した時、または上昇し始めた時の、高度と落下速度。*/
        while (vY > groundY && vdY < 0) {
            vdY += 0.289; // 4-3.711;
            vY += vdY;
        }

      //その時落下速度が-40以上なら、今スラスターを吹かさない、-40以下なら、今吹かす。
        printf((vdY > -40.0) ? "0 0\n" : "0 4\n");

   /*もし今スラスターを吹かしているとしたら、「以降スラスターを全開に吹かしていい」という計算結果を
   すでに出しているはずで、さらに、今スラスターを吹かしていないと仮定した場合の着地時の落下速度は
   実際の着地時の落下速度よりも小さくなり、「スラスターを全開に吹かす」という出力を出すので、問題ない*/

2016-12-13

27の最も奇妙な医学ケース

https://t.co/qJDxEJnG6z

これを日本語で要約しました


  1. 生食による寄生虫感染
  2. 寄生虫と痛みを伴う排尿
  3. 魚の群れと衝突して魚の骨が瞼に刺さった状態
  4. 数独発作(数独をしてると発作が起きる)
  5. ピラティスによる脳液漏れによる頭痛
  6. 脳内乳歯
  7. エナジードリンクの飲み過ぎによる心臓発作
  8. 吸入器でイヤリングを吸い込んだ
  9. 怪しいお茶の飲み過ぎによる急性肝炎
  10. 妊娠中の重曹の食べ過ぎによる筋肉の弱化
  11. ポルノを見ると起きる頭痛
  12. 醤油の過剰摂取
  13. 食道捻転
  14. 白内障による瞳の中の星
  15. 眼球の上の良性腫瘍に髪が生えた
  16. タトゥーを入れられた陰茎の半永久的な半勃起
  17. 炭酸飲料の過剰摂取によるカリウム欠乏
  18. 爪楊枝を飲み込んだことによる数か月の嘔吐と低血圧
  19. 眼疾患による幻覚
  20. 子猫に引き起こされた壊疽性潰瘍
  21. 病理学的寛大さ(脳卒中後に過度に他人に施すようになった)
  22. 非常な共感(扁桃体を切除した後に、怒りや悲しみに消化器の不快感が伴うようになった)
  23. 虫垂に溜まった鉛ペレット(鉛玉で仕留められた獲物を食べたことによる)
  24. 感染した脇の下の毛
  25. サーファーの目の表面に繊維組織が成長する
  26. 脳内にカルシウムが蓄積され石になった
  27. グルテン妄想(グルテンを摂取すると起きる妄想)

2016-09-27

おみくじアプリをいじってブラウザ版輪廻ゲームを書いたけど、走らせ方がわからない

CODEPREPのを盗用した。htmlブラウザで表示させるのはできるんだけど、それ以外と組み合わせられない。ツールとかインストールしないといけないのだろうか。

index.html

<!DOCTYPE html>
<html lang="ja">
  <head> 
  <meta charset="UTF-8">
    <title>HTML+CSS</title>
    <link rel="stylesheet" type="text/css" href="main.css">
    <script src="main.js"></script>
  </head>
  <body>
    <div id="rinne">
      <h1>輪廻</h1>
      <p id="output">あなたの来世…?</p>
      <input type="button" id="btn" value="死">
    </div>
  </body>
</html>

main.css

#rinne > #output > h2 {
  font-size: 70px;
  font-family: serif;
  margin: 0;
  text-shadow: 0 -1px 0 #222;
}

#rinne > #output > p {
@charset "UTF-8";

#rinne {
  text-align: center;
  width: 294px;
  background-color: #EDA;
  border: 3px double #990;
}

#rinne > h1 {
  color: #630;
  font-family: serif;

  font-size: 15px;
  font-family: serif;
  margin: 0;
}

#rinne > #output {
  background-color: #C00;
  color: #FFF;
  margin: 10px auto;
  padding: 5px;
}

#rinne > #btn {
  background: #740;
  border: 0;
  color: #FFF;
  cursor: pointer;
  font-size: 20px;
  font-family: serif;
  margin: 10px auto 20px auto;
  padding: 5px 20px;

}

#rinne > #btn:hover {
  background: #960;
}

#rinne > #btn:active {
  background: #630;
}

main.js

window.onload = function(){
var spieces = ["ヒト","ヒグマ","センチニクバエ","ヒトスジシマカ","アカウシアブ", "チャバネゴキブリ", "チンパンジー","イエネコ","オオバコ","AI"];
var message, random_spieces;
var btn = document.getElementById("btn");
var output = document.getElementById("output");
}

btn.onclick = function(){
  random_spieces = spieces[ Math.floor( Math.random() * spieces.length ) ];
    if(random_spieces=="ヒト"){
	if(Math.random()<0.33){
	  message="<h2>解脱</h2>";
	  output.innerHTML = message;
	  btn.remove();
	}
    }else{
      message = "<h2>" + random_spieces + "として生まれる</h2>";
      output.innerHTML = message;
    }
}