由于疏忽,本周不得不进行代码的突击,因此本周主要进行了两部分:
首先本周完成了机器学习和神经网络的基本学习,主要包括线性回归和logistic回归的正则化,神经网络的认识的基础了解。
下面是这周做的笔记:
在学习过程中遇到的主要问题就是两种回归算法的正则化,理解有些困难,需要大量的演算,十分费神。
其次是代码的练习;
一、表达出一万以内的任意范围的素数
#include"pch.h"
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <vector>
#include <iostream>
using namespace std;
#define range 400000
bool a[range + 5];
int main()
{
memset(a, 1, (range + 5) * sizeof(bool));
int sqr = sqrt(range);
for (int i = 2;i <= sqr;i++)
if (a[i])
for (int j = i * i;j <= range;j += i)
a[j] = 0;
vector<int> pri;
pri.push_back(1);
for (int i = 2;i < range;i++)
if (a[i])
pri.push_back(i);
int M, N;
cin >> M >> N;
for (int i = 0;i < N - M + 1;i++)
{
cout << pri[i + M];
if (i != N - M)
{
if (i % 10 == 9)
cout << endl;
else
cout << ' ';
}
}
return 0;
}
二、部分A+B
#include"pch.h"
#include <cstring>
#include<iostream>
using namespace std;
int main()
{
string a, c, b, d, e, f;
long t1, t2;
t1 = t2 = 0;
int num = 0;
long one = 1, two = 1;
cin >> a >> b >> c >> d >> e >> f;
for (char* s = (char *)a.data(), *tmp = (char *)b.data();s = strstr(s, tmp), s != NULL;s++)
e.insert(e.end(), s, s + strlen(tmp));
for (char* s = (char *)c.data(), *tmp = (char *)d.data(); s = strstr(s, tmp), s != NULL; s++)
f.insert(f.end(), s, s + strlen(tmp));
for (int i = e.size() - 1; i >= 0; i--) {
t1 += (e[i] - '0')*one;
one *= 10;
}
for (int i = f.size() - 1; i >= 0; i--) {
t2 += (f[i] - '0')*two;
two *= 10;
}
num = t1 + t2;
cout << num << endl;
return 0;
}
三、A除以B的计算
#include"pch.h"
#include <cstring>
#include<iostream>
using namespace std;
int main()
{
string a, a1;
string str;
int b, r, q;
cin >> a >> b;
int l = a.size();
int num = a[0] - '0';
if (num >= b)
a1.push_back(num / b + '0');
for (int i = 1;i < l;i++)
{
q = num % b;
num = q * 10 + a[i] - '0';
a1.push_back(num / b + '0');
}
q = num % b;
r = q;
if (l == 1 && a[0] - '0' < b)
cout << "0" << " " << a[0] - '0';
else
cout << a1 << " " << r;
return 0;
}
四、石头剪刀布
#include"pch.h"
#include <iostream>
#include<cstring>
using namespace std;
int main()
{
int n, win = 0, ping = 0, lose = 0;
int first[3] = { 0 }, second[3] = { 0 };
char sign[3] = { 'B','C','J' }, tmp1, tmp2;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> tmp1 >> tmp2;
if (tmp1 == tmp2)
ping++;
else if ((tmp1 == 'B' && tmp2 == 'C') || (tmp1 == 'C' && tmp2 == 'J') || (tmp1 == 'J' && tmp2 == 'B'))
{
win++;
if (tmp1 == 'B')
first[0]++;
else if (tmp1 == 'C')
first[1]++;
else
first[2]++;
}
else
{
lose++;
if (tmp2 == 'B')
second[0]++;
else if (tmp2 == 'C')
second[1]++;
else
second[2]++;
}
}
cout << win << " " << ping << " " << lose << endl;
cout << lose << " " << ping << " " << win << endl;
int num, t1 = 0, t2 = 0, num1;
for (int i = 0; i < 3; i++)
{
if (first[i] > t1)
{
t1 = first[i];
num = i;
}
}
for (int i = 0; i < 3; i++)
{
if (second[i] > t2)
{
t2 = second[i];
num1 = i;
}
}
cout << sign[num] << " " << sign[num1];
return 0;
}
五、统计数字出现次数
#include"pch.h"
#include <iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int main()
{
string s;
getline(cin,s);
int k;
int a[10]={0};
k=s.size();
for (int i = 0;i < k;i++)
{
a[s[i] - '0']++;
}
for (int i = 0;i < 10;i++)
{
if (a[i] != 0)
{
printf("%d:%d
", i, a[i]);
}
}
return 0;
}
六、X进制的加法
#include"pch.h"
#include<iostream>
using namespace std;
int main()
{
int q, a, b, d, end;
int i = 0;
int r[40] = { 0 };
cin >> a >> b >> d;
end = a + b;
q = end / d;
while (q != 0)
{
r[i++] = end % d;
end = q;
q = end / d;
}
r[i++] = end % d;
for (int j = i - 1;j >= 0;j--)
{
cout << r[j];
}
return 0;
}
七、组成最小数
#include"pch.h"
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a[10], i;
for (i = 0;i < 10;i++)
cin >> a[i];
for (i = 1;i < 10;i++)
{
if (a[i] > 0)
{
cout << i;
a[i]--;
break;
}
}
for (i = 0;i < 10;i++) {
while (a[i]--)
{
cout << i;
}
}
return 0;
}
八、时间测试
#include"pch.h"
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int a, b;
int h, m, s;
cin >> a >> b;
float c;
c = (b - a * 1.00) / 100;
h = c / 3600;
m = ((c - h * 3600) / 60);
s = round(c - h * 3600 - m * 60);
if (s == 60)
{
m++;
s = 0;
}
if (m == 60)
{
h++;
m = 0;
}
printf("%02d:%02d:%02d", h, m, s);
return 0;
}
这就是本周的学习内容,因为进度调整,下周将进行基于tensorflow的cnn图像识别代码