20150701卒研進捗lt (share)
TRANSCRIPT
タイトルを入力サブタイトルを入力
2
内定者向けの課題が
つらい
3
本日の睡眠時間
90 分
4
オンデマンドスライド※12:43
5
本題
6
近況
7
C# の LINQ を使い始めた
関数型言語っぽくかける
エラトステネスの篩
8
ふるい
100,000 以下の素数
9
C++ C#.NET
10
#include <chrono>#include <cmath>#include <iostream>#include <vector>
using namespace std;
int main(){ const int max = 100000; vector<int> primeArray; int sieveArray[max + 1] = { 0 };
auto startTime = chrono::system_clock::now();
sieveArray[0] = -1; sieveArray[1] = -1;
int stopPos = (int)sqrt(max); int continuePos = stopPos; for (int i = 2; i < stopPos; i++){ primeArray.push_back(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } } }
for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.push_back(i); } }
auto endTime = chrono::system_clock::now(); auto deltaTime = endTime - startTime; cout << chrono::duration_cast<chrono::milliseconds>(deltaTime).count() << " ms" << endl;
cin.get(); return 0;}
using System;using System.Collections.Generic;using System.Linq;
namespace EratosthenesCsharp{ class Program { static int Main() { const int max = 100000; var primeArray = new List<int>(); var sieveArray = (new int[max + 1]).Select(i => 0).ToArray();
var startTime = DateTime.Now;
sieveArray[0] = -1; sieveArray[1] = -1;
int stopPos = (int)Math.Sqrt(max); int continuePos = stopPos; for (int i = 2; i < stopPos; i++){ primeArray.Add(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } } }
for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.Add(i); } }
var endTime = DateTime.Now; var deltaTime = (endTime - startTime).TotalMilliseconds; Console.WriteLine(deltaTime + "ms");
Console.ReadKey(false); return 0; } }}
https://gist.github.com/mohemohe/6a5d9ddc48cd97f707cd
C++ C#.NET
11
sieveArray[0] = -1;sieveArray[1] = -1; int stopPos = (int)Math.Sqrt(max);int continuePos = stopPos;for (int i = 2; i < stopPos; i++){ primeArray.Add(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } }} for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.Add(i); }}
sieveArray[0] = -1;sieveArray[1] = -1; int stopPos = (int)sqrt(max);int continuePos = stopPos;for (int i = 2; i < stopPos; i++){ primeArray.push_back(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } }} for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.push_back(i); }}
https://gist.github.com/mohemohe/6a5d9ddc48cd97f707cd
C++ C#.NET
12
sieveArray[0] = -1;sieveArray[1] = -1; int stopPos = (int)Math.Sqrt(max);int continuePos = stopPos;for (int i = 2; i < stopPos; i++){ primeArray.Add(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } }} for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.Add(i); }}
sieveArray[0] = -1;sieveArray[1] = -1; int stopPos = (int)sqrt(max);int continuePos = stopPos;for (int i = 2; i < stopPos; i++){ primeArray.push_back(i); sieveArray[i] = -1; for (int j = i + 1; j <= max; j++){ if (j % i == 0){ sieveArray[j] = -1; } }} for (int i = continuePos; i <= max; i++){ if (sieveArray[i] != -1){ primeArray.push_back(i); }}
https://gist.github.com/mohemohe/6a5d9ddc48cd97f707cd
95 ms 96.1 ms
13
研究内容
14
興味があるのは画像系
15
決めかねている
16
#1 エッジ検出を応用した画像の高品質拡大
17
初回のスライド参照
18
背景もっと速く綺麗に画像を拡大したい
19
利点
たぶん waifu2x より速い
20
欠点
Red Ocean
21
必要な知識エッジ検出
深層畳み込みニューラルネットワーク
OpenCL ( CUDA )
22
#2 ピクセル変更によるステガノグラフィー
23
前回のスライド参照
24
背景簡単に画像の著作権を主張したい
25
利点現時点でフリー実装がない
26
欠点
たぶん茨の道
27
必要な知識リード・ソロモン符号
+ 大域的な符号化
耐拡大縮小アルゴリズム
28
#1 エッジ検出を応用した画像の高品質拡大
#2 ピクセル変更によるステガノグラフィー