暑假第四周

由于疏忽,本周不得不进行代码的突击,因此本周主要进行了两部分:

首先本周完成了机器学习和神经网络的基本学习,主要包括线性回归和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图像识别代码
原文地址:https://www.cnblogs.com/studya/p/11299338.html