【C++习题笔记】谭浩强C++程序设计(第三版)第五章

2023-11-06

1.用筛法求100之内的素数。

筛法又称为筛选法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。

详细解释见:https://baike.baidu.com/item/%E7%AD%9B%E9%80%89%E6%B3%95/9393288?fr=aladdin

//筛法求素数
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int i,j,a[100];
	for (i=0; i<100; i++)
		a[i] = i+1;
	for (i = 1; i < sqrt(100); i++)
		for (j = i+1; j < 100; j++)
		{
			if (a[i]!=1 && a[j]!=1)
				if(a[j]%a[i]==0)
					a[j]=1;
		}
	for (i = 0; i<100;i++)
	{
		if(a[i]!=1)
			cout <<a[i]<<'\t';
	}
}

这里运用了一个简便算法是,把除数a[i]限定在1到sqrt(100)的范围内,也就是后边的除数其实也是这些数的倍数,因此这样减少运算时间。

2. 用选择法对10个整数排序

简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。

详见:https://baike.baidu.com/item/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F%E6%B3%95/2304587?fr=aladdin

//用选择法对是个整数排序(由小到大)
#include <iostream>
using namespace std;
int main()
{
	int i,j,a[10];
	int k,temp;
	//输入
	for (i=0; i<10; i++)
		cin >> a[i];
	//排序
	for (i=0;i<9;i++)
	{
		k = i;
		for(j=i+1;j<10;j++)
			if(a[j]<a[k]) k=j;//k下标用来储存当前最小值
		temp = a[k];
		a[k] = a[i];
		a[i] = temp;
	}

	//输出
	for (i=0;i<10;i++)
		cout << a[i] <<' ';
		
}

由于要找整个数组的最小值与最前边的元素交换,因此需要随时储存并更新当前的最小值,因此需要引入一个记录当前最小值位置的索引k。

3. 求一个3 x 3整型矩阵主对角线元素之和

此处注意:不能试图通过输入大小来定义数组,数组的大小在定义时必须是确定的

即:

const int n = 5;

int a[n];

是对的,n为不可变的5,数组维度为5

而:

int n;

cin >> n;

int a[n];

是错误的

#include <iostream>
using namespace std;
int main()
{
	int i,j,a[3][3];
	for (i = 0; i < 3; i++)
		for (j = 0; j < 3; j++)
			cin >> a[i][j];
	int s = 0;
	for (i = 0; i < 3; i++)
		s = s + a[i][i];
	cout << s;
}

4. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。

思路:假设原数组由小到大排列的,则当发现插入的数字大于原数组的某个元素时,将原数组从最后一个元素开始,到这个元素为止,依次向后挪一个位置,再将插入的元素放入这个元素的位置即可。

//有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
#include <iostream>
using namespace std;
int main()
{
	int a[11] = {1,4,5,6,9,10,22,34,67,79};
	int num,i,j;
	cin >> num;
	if (num > a[9])
     a[10]=num;
    else
    {for (i=0;i<10;i++)
     {if (a[i]>num)
       {for (j=9;j>=i;j--)
         a[j+1]=a[j];//依次往后挪一个
        a[i]=num;
		break;
       }
      }
     }
	for (i=0;i<11;i++)
		cout<<a[i]<<" ";	

}

5. 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8

思路:对称位置对换即可

//将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8
#include <iostream>
using namespace std;
int main()
{
	const int n = 4;
	int i,t,a[n];
	for(i = 0;i<n;i++)
		cin >> a[i];
	for(i=0;i<n/2;i++)
	{
		t = a[i];
		a[i] = a[n-i-1];
		a[n-i-1] = t;
	}
	for(i=0;i<n;i++)
		cout << a[i] <<' ';
}

6. 打印杨辉三角,10行即可

思路:先把边上的1打出来,然后中间数是其上边和左上角数的加和

 //打印杨辉三角
#include <iostream>
using namespace std;
int main()
{
	const int n =10;
	int i,j,a[n][n];
	for (i=0;i<n;i++)
    {
		a[i][i]=1;
		a[i][0]=1;
    }
    for (i=2;i<n;i++)
	{
		for(j=1;j<=i-1;j++)
			a[i][j]=a[i-1][j-1]+a[i-1][j];
	}

	for (i = 0; i<10;i++)
	{
		for(j=0;j<=i;j++)
			cout << a[i][j] <<' ';
		cout << '\n';
	}
}

7.找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。

思路:大循环找行上的最大值,然后标记该最大值及其列的位置,然后小循环判断该列有没有比最大值小的点,有则不是鞍点,继续寻找,没有则是鞍点,获得鞍点可直接跳出,则直接结束大循环。

//找出二维数组的鞍点
#include <iostream>
using namespace std;
int main()
{
	const int n=4,m=5;
	int i,j,a[n][m];
	bool flag = true;
	//输入
	for (i = 0; i < n; i++)
		for(j = 0; j <m; j++)
			cin >> a[i][j];

	//找行最大值所在的位置
	int max,maxj;
	for (i=0;i<n;i++)         
    {
		max=a[i][0]; 
		maxj=0;    
		for (j=0;j<m;j++)      //找出第i行中的最大数
		if (a[i][j]>max)
		{
			max=a[i][j];      //将本行的最大数存放在max中
			maxj=j;        //将最大数所在的列号存放在maxj中
		}

	//判断行上的最大值是不是列上的最小值
	
	int k;
	for (k = 0; k< n; k++)
	{
		if (max > a[k][maxj])
		{
			flag = false;
			continue;
		}
	}
	if(flag)             //如果flag1为真表示是鞍点
		{
			cout<<"a["<<i<<"]"<<"["<<maxj<<"]="<<max<<endl;
                      //输出鞍点的值和所在行列号
			break; //只找出一个鞍点即可
		 }
	} 
	 if(!flag)           //如果flag为假表示鞍点不存在
		cout<<"It does not exist!"<<endl;

}

8. 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。

//折半法找数
#include <iostream>
using namespace std;
int main()
{
	const int n=15;
	int i, a[n] = {1,2,4,5,6,9,10,15,18,20,21,26,30,40,60};
	int left=0,right=n-1,mid;
	int num;
	cin >> num;
	if(num>a[right] || num < a[left])
		{
			cout << "无此数";
		}
	while(left <= right)
	{
		mid = (left + right)/2;
		if (num == a[mid])
		{
			cout <<"该数所在位置为" << mid+1;
			break;
		}
		else if(num <a[mid]) //左边
		{
			right = mid - 1;
		}
		else if(num >a[mid])
		{
			left = mid + 1;
		}			
	
	}
	if(num != a[mid])
		cout << "无此数";
}

9. 给出年、月、日,计算该日在该年中是第几天。

思路:把月份的天数做成数组,按月把前边的天数相加,闰年加一天即可。

//给出年月日计算是一年的第几天
#include <iostream>
using namespace std;
int main()
{
	int year,month,day,sumday=0;
	int days_sum(int month, int day);
	int leap(int year);

	//输入
	cin >> year >> month >> day;

	//计算天数
	sumday = days_sum(month,day);

    //判断闰年
	if(leap(year) && month >= 3)
		sumday = sumday + 1;
	cout <<"该日期是一年的第:"<<sumday<<" 天";
	return 0;
}


int days_sum(int month,int day)          //计算日期 
{int i; 
   int day_tab[12]={31,28,31,30,31,30,31,31,30,31,30,31};  
   for (i=0;i<month-1;i++)
      day+=day_tab[i];
   return(day);
}    

int leap(int year)                     //判断是否为闰年 
 {int leap;
  leap=year%4==0&&year%100!=0||year%400==0;
  return(leap);
 } 

10.有一篇文章,共有3行文字,每行有个80字符.要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。

//统计大小写字母数
#include <iostream>
using namespace std;
int main()
{
	int i,j,upper,lower,digit,space,other;
	char text[3][80];
	upper=lower=digit=space=other=0;
	for (i=0;i<3;i++)
		{cout<<"please input line "<<i+1<<endl;
		 gets(text[i]);
		for (j=0;j<80 && text[i][j]!='\0';j++)
		{if (text[i][j]>='A'&& text[i][j]<='Z')
			upper++;
		 else if (text[i][j]>='a' && text[i][j]<='z')
			lower++;
		 else if (text[i][j]>='0' && text[i][j]<='9')
			digit++;
		 else if (text[i][j]==' ')
			space++;
		 else
			other++;
     }
   }
   cout<<"upper case:"<<upper<<endl;
   cout<<"lower case:"<<lower<<endl;
   cout<<"digit     :"<<digit<<endl;
   cout<<"space     :"<<space<<endl;
   cout<<"other     :"<<other<<endl;
   return 0;
}

11.打印以下图案

(1)用字符数组法的代码如下:

//用字符串数组打印平行四边形
#include <iostream>
using namespace std;
int main()
{
	char c[5] = {'*','*','*','*','*'};
	int i,j,k;
	for (i = 0; i < 5; i++)
	{
		for (j = 1; j<=i; j++)
			cout <<' ';
		for (k = 0; k < 5;k++)
			cout << c[k];
		cout <<'\n';
	}
}

(2)用string方法的代码如下:

要注意的是,string作为头文件要写出,否则报错。

//用string法打印平行四边形
#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str = "*****";
	int i,j;
	for (i = 0; i<5;i++)
	{
		for(j = 1; j<=i; j++)
			cout << ' ';
		cout << str << endl;   
	}
}

12. 有一行电文,已按下面规律译成密码:
    A->Z     a->z
    B->Y     b->y
    C->X     c->x
     …      …
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,要求编程序将密码译回原文,并打印出密码和原文。

//电文译码
#include <iostream>
using namespace std;
int main()
{
	int j,n;
	char ch[80];
	cout<<"input cipher code:";
	gets(ch);
 
	j=0;
	while (ch[j]!='\0')
	{ 
		if ((ch[j]>='A') && (ch[j]<='Z'))
			ch[j]=155-ch[j];
		else if ((ch[j]>='a') && (ch[j]<='z'))
			ch[j]=219-ch[j];
		else
			ch[j]=ch[j];
		j++;
	 }
	n=j;
	cout<<"original text:";
	for (j=0;j<n;j++)
		putchar(ch[j]);
	cout<<endl;
	return 0;
}

注意:这里的转换相当于原文和密文字母顺序之和永远为26,也就是ACSII码和值固定,若是大写字母,则二者之和为65(A)+90(Z)=150;而小写字母为97(a)+122(z)=219,因此用和值减去密文则得到原文。

13.编写一个程序,将两个字符串连接起来,结果取代第一个字符串。
(1)  用字符数组,不用strcat函数(即自己写一个具有strcat函数功能的函数);

//字符数组连接两个字符
#include <iostream>
using namespace std;
int main()
{
	char str1[80],str2[40];
	int i=0,j=0;
	cout<<"input string1:";
	cin >> str1;
	cout<<"input string2:";
	cin >> str2;

	while(str1[i]!='\0')
		i++;
	while(str2[i]!='\0')
		str1[i++] = str2[j++];
	str1[i] = '\0';

	cout << "The new string is:"<<str1;
}


(2) 用标准库中的strcat函数;

//用strcat函数连接字符串
#include <iostream>
using namespace std;
int main()
{
	char str1[80],str2[40];
	cout<<"input string1:";
	cin >> str1;
	cout<<"input string2:";
	cin >> str2;

	cout << strcat(str1,str2);
}


(3) 用string 方法定义字符串变量。

//用sring连接字符串
#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str1,str2,s;
	cout<<"input string1:";
	cin >> str1;
	cout<<"input string2:";
	cin >> str2;

	s = str1 + str2;
	cout <<s;
}

注意:用string连接两个字符串可以直接相加。

14.输出n个字符串,把它们按照字母由小到大的顺序排列并输出。

思路:冒泡法

//n个字符串排序
#include <iostream>
#include <string>
using namespace std;
int main()
{
	const int n = 5;
	int i,j;
	string str[n],temp;
	for (i = 0; i<n;i++)
		cin >> str[i];

	for (i = 0; i < n-1; i++)//冒泡
		for(j = 0; j < n-i-1;j++)
			if(str[j]>str[j+1])
			{
				temp=str[j];
				str[j]=str[j+1];
				str[j+1]=temp;
			}

	cout<<endl<<"sorted strings:"<<endl;
	for(i=0;i<n;i++)
	cout<<str[i]<<endl;
	return 0;
}

15. 输入n个字符串,把其中以字母A打头的字符串输出。 

//把字符串中A打头的字符串输出
#include <iostream>
#include <string>
using namespace std;
int main()
{
	const int n = 5;
	string str;
	int i;
	for (i = 0; i < n; i++)
	{
		cin >> str;
		if(str[0] == 'A')
			cout << str;
	}

}

16. 输入一个字符串,把其中的字符按逆序输出。如输入LIGHT,输出THGIL.
(1) 用字符数组方法;

//用字符数组逆序输出字符串
#include <iostream>
using namespace std;
int main()
{
	const int n = 5;
	char str[n],temp;
	int i;
	for (i = 0;i<n;i++)
		cin >> str[i];

	for(i = 0;i<n/2;i++)
	{
		temp = str[i];
		str[i] = str[n-i-1];
		str[n-i-1] = temp;
	}

	for(i = 0;i<n;i++)
		cout << str[i];
}


(2)用string 方法

//string方法逆转字符串
#include <iostream>
#include <string>
using namespace std;
int main()
{
	string a;
	int i,n;
	char temp;
	cout<<"please input a string:";
	cin>>a;
	n=a.size();
	for(i=0;i<n/2;i++)
	{
		temp=a[i];
		a[i]=a[n-i-1];
		a[n-i-1]=temp;

	}
	
	cout<<a<<endl;
	return 0;
}

注意:string方法有函数.size可以直接求出字符串长度

17.输入10个学生的姓名,学号和成绩,将其中不及格的姓名、学号和成绩输出。

//输出不及格学生的姓名、学号、成绩
#include <iostream>
#include <string>
using namespace std;
const int n = 10;
string name[n];
int num[n],score[n];
int main()
{
	int i;
	void input_data();
	input_data();
	cout<<endl<<"The list of failed:"<<endl;
	for(i=0;i<n;i++)
		if(score[i]<60)
			cout<<name[i]<<" "<<num[i]<<"  "<<score[i]<<endl;
	return 0;

}

void input_data()
{
	int i;
	for (i=0;i<n;i++)
    {
		cout<<"input name,number and score of student "<<i+1<<":";
		cin>>name[i]>>num[i]>>score[i];
	}
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C++习题笔记】谭浩强C++程序设计(第三版)第五章 的相关文章

  • c++11新特性之独占指针unique_ptr

    独占智能指针unique ptr 独占智能指针不允许其他智能指针共享内部的指针 可以通过它的构造函数初始化一个独占智能指针对象 但是不允许通过赋值将一个unique ptr赋值给另一个unique ptr unique ptr不允许复制 但
  • C#结构体struct和类class的区别与使用场景

    目录 前言 一 结构体的使用 二 结构与类的区别 1 类和结构有以下几个基本的不同点 2 选择使用情况 总结 前言 在我们开发程序中 功能实现可能没有问题 问题是如何将代码变得更优雅 优化程序运行 本文主要区别结构体与类的区别以及什么情况下
  • 【C++】CGAL学习笔记

    一 HELLO WORLD 1 官方文档 CGAL TUTORIALS 2 所有 CGAL 头文件都在子目录中 所有 CGAL 类和函数都在命名空间中 类以大写字母开头 全局函数以小写字母开头 常量全部大写 3 几何图元 如点 线等都定义在
  • do{}while(0)的用法

    这几天在看代码的时候遇到了一个好像很神奇的用法 do while 0 do while 1 我能理解 就是一直循环 然后在循环体内设置跳出条件 或者干脆就不跳出 那do while 0 是干嘛的呢 在内部也改变不了循环条件 然后执行一次就结
  • 【C++学习笔记(五十一)】之Qt中的信号和槽机制

    一 信号和槽机制 信号和槽机制分为信号和槽函数 用于处理事件 当某个事件发生时 比如说某个按钮被点击后 它就会发出一个信号 signal 如果有对象对这个信号感兴趣 那么它就会使用连接 connect 函数 将该信号与自己的一个槽函数 sl
  • C++ vector容器-45-vector互换和节省空间和预留空间

    这篇来学习vector一个互换操作 也就是有两个vector对象 可以通过一个api 把两个对象互换过来 实际上 就是在内存中交换了对象的指针 原来的指针指向新的vector对象 这种交换有时候是很有必要 特别是匿名vector对象进行交换
  • c++ 文件类型判断

    要判断文件类型 即判断文件名是否包含文件的后缀 例如 txt文件的判断 string str abcd txt string str1 txt 当 str find str1 string npos时则说明字符串str中不存在 txt 这个
  • C++继承和多态

    C 继承和多态 继承 继承的本质 代码的复用 在基类中给所有派生类提供统一的虚函数接口 让派生类进行重写 然后就可以使用多态了 类和类的关系 a part of 一部分关系 继承 a kind of 一种的关系 继承引入了一些概念 基类 父
  • 输出指令——Console.WriteLine()

    在Console WriteLine 指令中 用 0 1 来表示需替换的变量位置 例子如下 static void Main string args int myInteger string myString myInteger 17 my
  • C\C++各种变量存放区域(代码、数据、堆、栈)

    C C 各种变量存放区域 代码 数据 堆 栈 文章目录 C C 各种变量存放区域 代码 数据 堆 栈 变量 数据 变量 数据存放区域 练习 请说明下面的指针分别指向什么位置 BSS Block Started by Symbol 区 为什么
  • C++——初始化列表

    初始化列表 在构造函数执行时 先执行初始化列表 实现变量的初始化 然后再执行函数内部的语句 构造函数体赋值 在创建对象时 编译器通过调用构造函数 给对象中各个成员变量一个合适的初始值 class Date public Date int y
  • C++实现MySQL数据库连接池

    C 实现MySQL数据库连接池 涉及技术 MySQL数据库编程 单例模式 STL容器 C 11多线程 线程互斥 线程互斥 线程同步通信和unique lock 智能指针shared ptr lambda表达式 生产者 消费者线程模型 项目背
  • C++绑定器和函数对象

    C 绑定器和函数对象 简介 C STL中的绑定器 bind1st operator 的第一个形参变量绑定一个确定的值 bind2nd operator 的第二个形参变量绑定一个确定的值 C Boost库 C 的Boost库中引入了bind绑
  • C++对象调用优化

    C 对象调用优化 临时对象拷贝构造新对象 临时对象就不会产生 常见的对象调用过程 c 编译器对于对象构造的优化 用临时对象拷贝新对象的时候 临时对象就不产生了 直接构造新对象就可以了 include
  • 【C++习题笔记】谭浩强C++程序设计(第三版)第七章

    本文是谭浩强老师c 程序设计 第三版 第七章的习题总结 主要涉及结构体的内容 1 定义一个结构体变量 包括年 月 日 编写程序 要求输入年月日 程序能够计算并输出改日是本年中的第几天 注意闰年问题 include
  • 【C++】基本数据类型

    C 基本数据类型是程序中最基本的数据类型 它们是构建复杂数据类型的基础 C 中的基本数据类型包括整型 浮点型 字符型和布尔型等 目录 基本数据类型 整型 浮点型 字符型 转义字符 字符串 布尔类型 sizeof 基本数据类型 整型 作用 用
  • 模板特化

    上一篇 模板与重载 里 我遇见了想同时使用模板函数与非模板函数的情况 后来才知道 其实并不需要 当我想对某些特定的类型进行特殊操作时 只需要使用模板特化就可以 所谓特化 就是说对于模板函数 对于某些类型可能需要特殊处理 所以进行特殊化 可以
  • C++Static成员

    Static成员 概念 声明为static的类成员称为类的静态成员 用static修饰的成员变量 称之为静态成员变量 用static修饰的成员函数 称之为静态成员函数 静态成员变量一定要在类外进行初始化 例题 实现一个类 计算程序中创建了多
  • 第七周7.2搜索 课堂学习记录 搜索例子+选择排序+二分搜索《程序设计入门——C语言》第七期 浙江大学 翁恺

    1 搜索例子 include
  • C++学习笔记(十六):对vector进行更多的操作——泛型算法

    先强调一下 这里的泛型算法实际不光光是对vector的操作 对于 顺序容器 均可以 但是什么是顺序容器 我们都知道 容器就是一些特定类型对象的集合 而顺序容器为程序员提供了控制元素存储和访问的能力 这种容器的一个显著的特征 就是容器中元素的

随机推荐

  • 学习Spring

    1 如何学习Spring 你可以通过下列途径学习spring 1 spring下载包中doc目录下的MVC step by step和sample目录下的例子都是比较好的spring开发的例子 2 AppFuse集成了目前最流行的几个开源轻
  • STM32命名规则

    STM32型号命名规则如下 STM32型号的说明 以STM32F103ZET6这个型号的芯片为例 该型号的组成为7个部分 其命名规则如下 1 STM32 STM32代表ARM Cortex M3内核的32位微控制器 2 F F代表芯片子系列
  • Java 基础语法

    使用ide来进行编程 对于java来说 最好的idle 是intellijidea IDEA 通过一个例子练习 idea 一 超市管理系统功能 使用ide来进行编程 java最好的ide 是idea 1 import java util A
  • python--字典概念以及基本使用 -- 小黑学习驿站

    字典应用案例 697条消息 python 商店购物案例 字典篇 小黑学习驿站 小黑日志的博客 CSDN博客 697条消息 python学习 计算学生成绩排名案例 字典篇2 小黑学习驿站 小黑日志的博客 CSDN博客 字典基本概念 映射关系
  • 关于渠道包

    渠道包指的是在各大应用市场 发布的apk包的清单文件中 某个meta data标签下 配置的value不一样 这个标签的作用就是用来区分是哪个市场的 比如你发布到360 这个值就是你就可以配置成360 豌豆荚就可以配置成wandoujia
  • 微信小程序云开发之——网页跳转小程序

    一 微信小程序开通云开发 微信小程序公众平台拿到如下参数 你的小程序信息 小程序 AppID 填入你的小程序 AppID 云开发环境 ID 填入你的开通了静态网站托管的云开发环境 ID 想要拉取的小程序信息 小程序原始账号 ID 填入要跳转
  • 微信小程序授权登录详解

    文章目录 流程 wx login auth code2Session 实战 前端代码 后端代码 流程 说明 调用 wx login 获取 临时登录凭证code 并回传到开发者服务器 调用 auth code2Session 接口 换取 用户
  • 撮合前端平台在低代码平台的落地实践

    在京东技术的发展当下 不同的业务线 不同的区域 甚至于很多触达消费者的端 正在被中台架构能力所支撑 大家都很清楚 中台建设能够带来技术的规模化效应 具有提高业务协同 加速创新和交付速度 提高系统稳定性和可靠性 降低成本和支持业务快速发展等优
  • torch.device函数

    torch device 是 PyTorch 中用于表示计算设备 如CPU或GPU 的类 它允许你在代码中指定你希望在哪个设备上执行张量和模型操作 本文主要介绍了 torch device 函数的用法和功能 本文主要包含以下内容 1 创建设
  • 怎么把一个json文件读取到java中

    要把一个 JSON 文件读取到 Java 中 可以按照以下步骤进行 导入 JSON 库 Java 中常用的 JSON 库有 Jackson Gson Fastjson 等 可以根据个人喜好和项目需求选择相应的库 并导入到项目中 读取 JSO
  • # SSM框架-->Spring

    SSM框架 gt Spring 文章目录 SSM框架 gt Spring 1 1 Spring是什么 简介 1 2 Spring 的发展 1 2 1Spring Framework的特点 1 2 2 Spring的体系结构 1 2 2 1
  • Java深究1

    此篇文章仅代表作者个人所学所悟 并不构成指导指引作用 在这篇博客之前 已经读过相当数量的Java书籍 但一直都没有去总结 如今将自己所学所悟分享出来 Java特种兵 上册 这本书的毕竟是作者的处女座 书中有太多地方感觉很肤浅 也很冗余 内容
  • python实现PCA降维

    概述 本文主要介绍一种降维方法 PCA Principal Component Analysis 主成分分析 降维致力于解决三类问题 1 降维可以缓解维度灾难问题 2 降维可以在压缩数据的同时让信息损失最小化 3 理解几百个维度的数据结构很
  • mybatis-【回顾】

    分页 减少数据得到处理量 limit分页 mybatis实现分页 接口 mapperr xml 测试 RowBounds类实现分页 分页插件PageHelper 复杂查询环境搭建 导入lombok 建实体类 建mapper接口 简历mapp
  • 使用Arduino和TB6612驱动编码电机实现测速功能

    编码电机是一种常见的电机类型 它可以通过内置的编码器精确地测量电机的转速和位置 在本文中 我们将介绍如何使用Arduino和TB6612驱动编码电机 并实现测速功能 TB6612是一种双路直流电机驱动器 适用于控制小型直流电机 我们将使用A
  • 基于MATLAB的视频运动目标检测识别

    一 课题介绍 视频图像处理技术广泛用于工业 安全 医疗 管理等领域 运动目标的检测和跟踪是图像处理技术在视频序列图像处理方面的一个重要应用 在航天 交通 机器人视觉 视频监控 公共场所客流数据监测等场合发挥着重要作用 本文介绍了一种基于MA
  • leetcode分类刷题:矩阵顺时针模拟

    1 这种题目是对代码熟练度考察 模拟顺时针建立或访问矩阵 需要注意矩阵是否为方阵 2 具体思路 以圈数为循环条件 每一圈都坚持左闭右开的区间规则 当小的行列值为奇数 最后一圈为一行或一列或一个数字的不完整圈 3 细节 把 起始圈的上下左右边
  • svn linux客户端使用教程,linux svn 客户端安装配置

    1 首先需要安装SVN Ubuntu下的SVN安装十分简单 sudo apt get install subversion 然后根据提示一步一步 就完成了SVN的安装 sudo apt get install subversion subv
  • C++OpenCV(4):图像截取与掩膜操作

    文章首发于我的个人博客 欢迎大佬们来逛逛 OpenCV项目地址及源代码 点击这里 文章目录 图像截取 图像掩膜操作 图像截取 ROI操作 指的是 region of interest 感兴趣区域 我们可以对一张图片的某个感兴趣的部分进行截取
  • 【C++习题笔记】谭浩强C++程序设计(第三版)第五章

    1 用筛法求100之内的素数 筛法又称为筛选法 具体做法是 先把N个自然数按次序排列起来 1不是质数 也不是合数 要划去 第二个数2是质数留下来 而把2后面所有能被2整除的数都划去 2后面第一个没划去的数是3 把3留下 再把3后面所有能被3