一、以多元思考法提高思考能力
所谓“多元思考法”,就是每件事情不要期待只有一种答案,而应多方面思考,创造复数的解决可能性。习惯多元思考法的人,不论面对任何问题都能从不同角度与观点分析,则即使再大的难题,也能找出解决办法。
那么,该如何培养多元思考能力?以下是三个不错的办法。
●提醒自己不可变成“被煮熟的青蛙”
有个童话故事,主角是一只青蛙。这只青蛙不小心掉进火炉上的锅子中,因为水温20度,青蛙觉得很舒服。但慢慢的水温提高,30度、40度渐渐升上去。然而,因为水温变化缓慢,虽然觉得愈来愈热,已经习惯了的青蛙却懒得跳出来。结果,这只青蛙最后被煮熟了。
我们的工作与生活,其实也有类似状况。一旦适应了,即使环境恶化,也会认为“只要忍一忍就好”。久而久之感觉麻痹,等到问题严重到不可收拾的程度,就已回天乏术。
所以,工作出现警讯时,你必须严格提醒自己,绝对不可变成“被煮熟的青蛙”。
●从不同立场进行思考
一般人其实都有相当固定的思考模式。但事情一固定,就会顾此失彼,失去多元创意的d性。
想要锻炼多元思考能力的,抛弃过去习惯、换个角度重新思考,是最根本步骤。
●养成边写边思考的习惯
有好想法、好点子时随时记录下来,也是培养多元思考能力的有效方法。
只在脑袋中想像,思考容易偏差、窄化。写下来则可让自己更容易掌握整体图象,发现缺点与不足之处。
2提高逻辑思考能力
所谓“思考论理能力”,简单讲就是面对问题时不可一相情愿地埋头苦干。
至于具体的论理思考训练法,则有三种——“由宏观到微观”、“MECE”、“逻辑树状图”。
●“由宏观到微观”思考法
所谓“瞎子摸象”,指没办法整体掌握事情轮廓,只好以偏盖全地错误想像。
●MECE思考法
养成“由宏观到微观”的思考习惯之后,不妨进一步学习“MECE”思考模式。简单讲,所谓“MECE”就是,处理事情能够毫无遗漏、毫无重复。有“遗漏”就会错失机会;“重复”则白白浪费力气。
●使用逻辑树状图
“逻辑树状图”可说是逻辑思考方法的集大成。其特点主要是能有效处理事情的“大小关系”、“因果关系”与“阶层关系”。
3提高创造思考能力
点子不多、思考能力不强的人在企业界很容易被淘汰。如何提升自己的创造与思考能力呢?以下是三种不错的做法。
●经常脑力激荡
一般人之所以点子不够多,主要是受“常识”与“成见”不当影响。而破除的方法很简单,就是活用“脑力激荡”。
许多企业喜欢用脑力激荡方式,推出新的工作方案,规划未来发展方向。
进行脑力激荡时必须:一、就让各种点子尽量跑出来,二、模仿“接龙”方式,局部改良别人点子,形成新的创意。比如,讨论“空罐子的使用方式”这个课题时,有人说用来“装水”、当作茶杯。此时就可从“装”这个字延伸想到不只“装水”,也可“装土”,也就是当作盆栽。然后同样的道理,也能用来装烟灰,变成“烟灰缸”……可能性其实是无限的。
●点子一出来,就加以整理
根据研究,思考新点子,可让右脑活性化;整理点子的过程属于论理,则能促进左脑活泼。因此,想出点子之后加以整理,即可同时训练左脑与右脑。
更何况,点子必须经过评量以及其他人的考验。如果没有记录、整理,便会失去接受考验的机会。这样的点子通常用处不高。
●进行“重点化”与“分类”
活用点子,一定要经过“重点化”与“分类化”过程。
“重点化”方面,首先应区别“有用的点子”和“没用的点子”,并且将各种点子排定优先顺位,最有用的先挑出来。
其次,“分类”必须把性质类似的点子放在一起,如此才能清楚呈现点子的特色。
脑力激荡是否一定要聚集许多人在一起才能 *** 作?其实不然,即使一个人也能达成脑力激荡的效果。
当然,一个人进行脑力激荡,难度较高。所以必须养成习惯,比如,不妨每天用5分钟练习脑力激荡思考法,针对一个主题,3分钟之内想出20个解决办法,5分钟之内想出30个解决途径等等。总而言之,养成脑力激荡的习惯,思考与创造能力自然一级棒补充:怎样才能学好数学
★怎样才能学好数学?
要回答这个似乎非常简单:把定理、公式都记住,勤思好问,多做几道题,不就行了。
事实上并非如此,比如:有的同学把书上的黑体字都能一字不落地背下来,可就是不会用;有的同学不重视知识、方法的产生过程,死记结论,生搬硬套;有的同学眼高手低,“想”和“说”都没问题,一到“写”和“算”,就漏洞百出,错误连篇;有的同学懒得做题,觉得做题太辛苦,太枯燥,负担太重;也有的同学题做了不少,辅导书也看了不少,成绩就是上不去,还有的同学复习不得力,学一段、丢一段。
究其原因有两个:一是学习态度问题:有的同学在学习上态度暧昧,说不清楚是进取还是退缩,是坚持还是放弃,是维持还是改进,他们勤奋学习的决心经常动摇,投入学习的精力也非常有限,思维通常也是被动的、浅层的和粗放的,学习成绩也总是徘徊不前。反之,有的同学学习目的明确,学习动力强劲,他们拥有坚韧不拔的意志、刻苦钻研的精神和自主学习的意识,他们总是想方设法解决学习中遇到的困难,主动向同学、老师求教,具有良好的自我认识能力和创造学习条件的能力。二是学习方法问题:有的同学根本就不琢磨学习方法,被动地跟着老师走,上课记笔记,下课写作业,机械应付,效果平平;有的同学今天试这种方法、明天试那种方法,“病急乱投医”,从不认真领会学习方法的实质,更不会将多种学习方法融入自己的日常学习环节,养成良好的学习习惯;更多的同学对学习方法存在片面的、甚至是错误的理解,比如,什么叫“会了”?是“听懂了”还是“能写了”,或者是“会讲了”?这种带有评价性的体验,对不同的学生来说,差异是非常大的,这种差异影响着学生的学习行为及其效果。
由此可见,正确的学习态度和科学的学习方法是学好数学的两大基石。这两大基石的形成又离不开平时的数学学习实践,下面就几个数学学习实践中的具体问题谈一谈如何学好数学。
一、数学运算
运算是学好数学的基本功。初中阶段是培养数学运算能力的黄金时期,初中代数的主要内容都和运算有关,如有理数的运算、整式的运算、因式分解、分式的运算、根式的运算和解方程。初中运算能力不过关,会直接影响高中数学的学习:从目前的数学评价来说,运算准确还是一个很重要的方面,运算屡屡出错会打击学生学习数学的信心,从个性品质上说,运算能力差的同学往往粗枝大叶、不求甚解、眼高手低,从而阻碍了数学思维的进一步发展。从学生试卷的自我分析上看,会做而做错的题不在少数,且出错之处大部分是运算错误,并且是一些极其简单的小运算,如71-19=68,(3+3)2=81等,错误虽小,但决不可等闲视之,决不能让一句“马虎”掩盖了其背后的真正原因。帮助学生认真分析运算出错的具体原因,是提高学生运算能力的有效手段之一。在面对复杂运算的时候,常常要注意以下两点:
①情绪稳定,算理明确,过程合理,速度均匀,结果准确;
②要自信,争取一次做对;慢一点,想清楚再写;少心算,少跳步,草稿纸上也要写清楚。
二、数学基础知识
理解和记忆数学基础知识是学好数学的前提。
★什么是理解?
按照建构主义的观点,理解就是用自己的话去解释事物的意义,同一个数学概念,在不同学生的头脑中存在的形态是不一样的。所以理解是个体对外部或内部信息进行主动的再加工过程,是一种创造性的“劳动”。
理解的标准是“准确”、“简单”和“全面”。“准确”就是要抓住事物的本质;“简单”就是深入浅出、言简意赅;“全面”则是“既见树木,又见森林”,不重不漏。对数学基础知识的理解可以分为两个层面:一是知识的形成过程和表述;二是知识的引申及其蕴涵的数学思想方法和数学思维方法。
★什么是记忆?
一般地说,记忆是个体对其经验的识记、保持和再现,是信息的输入、编码、储存和提取。借助关键词或提示语尝试回忆的方法是一种比较有效的记忆方法,比如,看到“抛物线”三个字,你就会想到:抛物线的定义是什么?标准方程是什么?抛物线有几个方面的性质?关于抛物线有哪些典型的数学问题?不妨先写下所想到的内容,再去查找、对照,这样印象就会更加深刻。另外,在数学学习中,要把记忆和推理紧密结合起来,比如在三角函数一章中,所有的公式都是以三角函数定义和加法定理为基础的,如果能在记忆公式的同时,掌握推导公式的方法,就能有效地防止遗忘。
总之,分阶段地整理数学基础知识,并能在理解的基础上进行记忆,可以极大地促进数学的学习。
三、数学解题
学数学没有捷径可走,保证做题的数量和质量是学好数学的必由之路。
1、如何保证数量?
① 选准一本与教材同步的辅导书或练习册。
② 做完一节的全部练习后,对照答案进行批改。千万别做一道对一道的答案,因为这样会造成思维中断和对答案的依赖心理;先易后难,遇到不会的题一定要先跳过去,以平稳的速度过一遍所有题目,先彻底解决会做的题;不会的题过多时,千万别急躁、泄气,其实你认为困难的题,对其他人来讲也是如此,只不过需要点时间和耐心;对于例题,有两种处理方式:“先做后看”与“先看后测”。
③选择有思考价值的题,与同学、老师交流,并把心得记在自习本上。
④每天保证1小时左右的练习时间。
2、如何保证质量?
①题不在多,而在于精,学会“解剖麻雀”。充分理解题意,注意对整个问题的转译,深化对题中某个条件的认识;看看与哪些数学基础知识相联系,有没有出现一些新的功能或用途?再现思维活动经过,分析想法的产生及错因的由来,要求用口语化的语言真实地叙述自己的做题经过和感想,想到什么就写什么,以便挖掘出一般的数学思想方法和数学思维方法;一题多解,一题多变,多元归一。
②落实:不仅要落实思维过程,而且要落实解答过程。
③复习:“温故而知新”,把一些比较“经典”的题重做几遍,把做错的题当作一面“镜子”进行自我反思,也是一种高效率的、针对性较强的学习方法。
四、数学思维
数学思维与哲学思想的融合是学好数学的高层次要求。比如,数学思维方法都不是单独存在的,都有其对立面,并且两者能够在解决问题的过程中相互转换、相互补充,如直觉与逻辑,发散与定向、宏观与微观、顺向与逆向等等,如果我们能够在一种方法受阻的情况下自觉地转向与其对立的另一种方法,或许就会有“山重水复疑无路,柳暗花明又一村”的感觉。比如,在一些数列问题中,求通项公式和前n项和公式的方法,除了演绎推理外,还可用归纳推理。应该说,领悟数学思维中的哲学思想和在哲学思想的指导下进行数学思维,是提高学生数学素养、培养学生数学能力的重要方法。
总而言之,只要我们重视运算能力的培养,扎扎实实地掌握数学基础知识,学会聪明地做题,并且能够站到哲学的高度去反思自己的数学思维活动,我们就一定能早日进入数学学习的自由王国。
很多人在考试时总考不出自己的实际水平,拿不到理想的分数,究其原因,就是心理素质不过硬,考试时过于紧张的缘故,还有就是把考试的分数看得太重,所以才会导致考试失利,你要学会换一种方式来考虑问题,你要学会调整自己的心态,人们常说,考试考得三分是水平,七分是心理,过于地追求往往就会失去,就是这个缘故;不要把分数看得太重,即把考试当成一般的作业,理清自己的思路,认真对付每一道题,你就一定会考出好成绩的;你要学会超越自我,这句话的意思就是,心里不要总想着分数、总想着名次;只要我这次考试的成绩比我上一次考试的成绩有所提高,哪怕是只高一分,那我也是超越了自我;这也就是说,不与别人比成绩,就与自己比,这样你的心态就会平和许多,就会感到没有那么大的压力,学习与考试时就会感到轻松自如的;你试着按照这种方式来调整自己,你就会发现,在不经意中,你的成绩就会提高许多!
楼主您好:
第一题
785+234-085+466
=(785-085)+(234+466)
=7+7
=14
凑整思想。看每个数的结尾。每个数相加或相减可以得到末位是0的数(或整数)。就先算那两个数。 这样就可以达到简算的目的。
第二题
527+268-066+163
=(527+163)+(268-066)
=69+202
=892
个人认为这道题出的有问题。。。一般的简算题得数都是整数。那个527变成537或163变成173。268变成266或066变成068。 不过还是一题目为准。
方法同第一题。
总之,简算就是简便运算。凑整思想是很有用的。
乘法分配律,乘法结合律,乘法交换律。也要看题来判断用哪种方法。
祝楼主学习进步
IT系统为三相三线制带电导体系统,由于IT系统的某相对地短路后另外两相对地电压会升高到接近线电压,若人体触及另外的任意两条相线后,触电电流将流经人体和大地再经接地相线返回电网,此电流很大足以致命,为此IT系统的现场设备必须配备剩余电流动作保护装置RCD。IT接地系统的应用特性如下:
1)能提供较好的供电连续性;
2)IT接地系统可以省略中性线的敷设,减少投资费用;
3)当出现第一次接地故障时发出报警信息, *** 作人员可对系统实施必要的故障定位和故障排除,从而有效地防止了供电中断;
4)当发生第二次异相接地故障时能起动过电流保护装置或RCD剩余电流保护装置切断用电设备的电源。
IT系统若为低压网络较小的系统,只要经常保持绝缘良好,线路对地电容电流也很小,一旦发生接地故障,在故障点处的接地电容电流非常小,这样小的接地故障电流不会造成火灾危险,在接地极上的压降也不会大于50V,处于对人身安全的电压范围内,而且三相的对称性也没有破坏,因此,当发生第一次接地故障后可继续供电。而低压IT系统,一旦一相接地,继续运行的时间没有限制,但必须有接地报警装置,提醒维修人员及时检修,以免发生异相二次接地后,形成与TT系统接地故障同样的结果(两异相接地点的接地极分别独立)或与TN系统接地故障相同的结果(两异相接地点为同一接地极),这样IT系统连续供电的优点就不复存在了。
IT系统应用中要注意之处是,当保护开关断开时,较好连同中性线一同断开,否则庞大的中性线网络对其绝缘不易监控。另外,对于中性点直接接地还是经高阻抗接地这一问题,中性点经高阻抗接地后有其固有优点,例如一旦变压器绝缘损坏,高压窜入低压侧,经接地电阻接地,其危害性减轻。另外,经高电阻接地后,对稳定低压电位也有益,但经过高电阻接地会增加投资,还要专用接地电阻器,不但增加安装的麻烦,还要占据安装空间。
// ---------------- ---------------------
// ----------------------------------------------------------------
// 假期无聊,实现的矩阵类,模板哦!哈哈。。。
/// ------------- ---------------
/// ---------------------------------------------------
#include <iostream>
#include <vector>
#include <cassert>
using namespace std;
template < class T >
class CMatrix
{
public: //------------------ 构造部 -------------------------
CMatrix( void );
CMatrix( unsigned h, unsigned w );
CMatrix( const CMatrix& m );
CMatrix( const vector<T>& vec );
CMatrix( const vector<T>& vec,unsigned h,unsigned w );
~CMatrix(void);
private: //------------------- 数据部 ---------------------------
vector<T> m_vec_data;
unsigned m_u_width;
unsigned m_u_height;
public: // ------------------- 重载运算符 -------------------------
/// --- 以下均要求T具有如下运算能力:+ - += 等用到的。。。。
//取值运算
T& operator() ( unsigned row, unsigned col );
T operator() ( unsigned row, unsigned col ) const;
//赋值运算
CMatrix& operator = ( const CMatrix& );
CMatrix& operator += ( const CMatrix& );
CMatrix& operator -= ( const CMatrix& );
CMatrix& operator = ( T );
CMatrix& operator /= ( T );
//二元运算符
CMatrix operator + ( const CMatrix& ) const;
CMatrix operator - ( const CMatrix& ) const;
CMatrix operator ( const CMatrix& ) const;
CMatrix operator ( T ) const;
CMatrix operator / ( T ) const;
bool operator == ( const CMatrix& ) const;
bool operator != ( const CMatrix& ) const;
public: // -------------------- *** 作函数部 -------------------------
void transpose();
inline bool empty();
inline long size();
inline unsigned height();
inline unsigned width();
public: // ------------------ 输入输出 ----------------------
// 注意:矩阵元素必须支持输入输出,否则程序会错误!!
/friend ostream& operator << ( ostream& os,const CMatrix& ma );/
template < typename T > friend ostream& operator << ( ostream& os,const CMatrix<T>& ma );
//friend istream& operator >> ( istream& is,CMatrix& ma );
template < class T > friend istream& operator >> ( istream& is,CMatrix<T>& ma );
};
/-----------------------------------------------------------------------------
输出
------------------------------------------------------------------------------
/
template < class T >
ostream& operator << ( ostream& os,const CMatrix<T>& ma )
{
if(!mam_u_height || !mam_u_width)
{
os<<"这是一个空矩阵!\n";
return os;
}
for(unsigned i=0;i<mam_u_height;i++)
{
for(unsigned j=0;j<mam_u_width;j++)
{
os<<mam_vec_data[imam_u_width + j]<<"\t";
}
os<<endl<<endl;
}
return os;
}
/-----------------------------------------------------------------------------
输入
------------------------------------------------------------------------------
/
template < class T >
istream& operator >> ( istream& is,CMatrix<T>& ma )
{
if( !mam_u_height && !mam_u_width )
{
cerr<<"空矩阵!\n";
return is;
}
cout<<"请依次输入各个共"<<mam_u_heightmam_u_width<<"个成员:\n";
for( unsigned i=0;i<mam_u_height;i++ )
{
for( unsigned j=0;j<mam_u_width;j++ )
{
cout<<"["<<i<<"]["<<j<<"]=";
is>>mam_vec_data[imam_u_width + j];
}
}
return is;
}
/-----------------------------------------------------------------------------
普通构造
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>::CMatrix(void):m_u_width(0),m_u_height(0)
{
}
/-----------------------------------------------------------------------------
构造指定大小的全0矩阵
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>::CMatrix( unsigned h,unsigned w ):m_u_width(w),m_u_height(h)
{
//unsigned size = wh;
//while(size--)
//{
// m_vec_datapush_back(0);
//}
vector<T> temp(wh,T());
m_vec_data = temp;
}
/-----------------------------------------------------------------------------
拷贝构造函数
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>::CMatrix( const CMatrix& m ):m_vec_data(mm_vec_data),m_u_width(mm_u_width),m_u_height(mm_u_height)
{
//m_vec_data = mm_vec_data;
//m_u_width = mm_u_width;
//m_u_height = mm_u_height;
}
/-----------------------------------------------------------------------------
以向量构造
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>::CMatrix(const vector<T>& vec):m_u_width(static_cast<unsigned>(vecsize())),m_u_height(1),m_vec_data(vec)
{
//m_u_width = static_cast<unsigned>(vecsize());
//m_u_height = 1;
//m_vec_data = vec;
}
/-----------------------------------------------------------------------------
以向量+大小构造
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>::CMatrix(const vector<T>& vec, unsigned int h, unsigned int w):m_u_height(h),m_u_width(w)
{
// --- 10 版 -----
//unsigned input_capability = h w;
//unsigned fact_capability = static_cast<unsigned>(vecsize());
//if( input_capability == fact_capability )
//{
// m_vec_data = vec;
//}
//else if( input_capability < fact_capability )
//{
// unsigned gap = fact_capability - input_capability;
// vector<T> temp = vec;
// while( gap-- )
// {
// temppop_back();
// }
// m_vec_data = vec;
//}
//else
//{
// unsigned gap = input_capability - fact_capability;
// vector<T> temp = vec;
// while( gap-- )
// {
// temppush_back(0);
// }
// m_vec_data = vec;
//}
// --- 20 版 ------
int gap = hw - static_cast<unsigned>(vecsize());
if( !gap )
{
m_vec_data = vec;
}
else if( gap < 0 )
{
m_vec_data = vec;
m_vec_dataerase( m_vec_dataend() + gap,m_vec_dataend() ); //注意:此时gap为负数,故为+
}
else
{
//注意,此时使用了类型T的默认构造函数
m_vec_data = vec;
m_vec_datainsert(m_vec_dataend(),gap,T());
}
}
/-----------------------------------------------------------------------------
析构函数
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>::~CMatrix(void)
{
m_u_width = 0;
m_u_height = 0;
m_vec_dataclear();
}
/-----------------------------------------------------------------------------
取值
------------------------------------------------------------------------------
/
template < class T >
T& CMatrix<T>::operator ()(unsigned int row, unsigned int col)
{
assert( row < m_u_height&&col < m_u_width ); //必须在范围内
return m_vec_data[rowm_u_width + col];
}
/-----------------------------------------------------------------------------
const取值
------------------------------------------------------------------------------
/
template < class T >
T CMatrix<T>::operator ()(unsigned int row, unsigned int col) const
{
assert( row < m_u_height&&col < m_u_width ); //在范围内
return m_vec_data[rowm_u_width + col];
}
/-----------------------------------------------------------------------------
矩阵=
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>& CMatrix<T>::operator = ( const CMatrix& ma )
{
m_u_width = mam_u_width;
m_u_height = mam_u_height;
m_vec_data = mam_vec_data;
return this;
}
/-----------------------------------------------------------------------------
矩阵+=
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>& CMatrix<T>::operator += ( const CMatrix& ma )
{
assert( (m_u_height == mam_u_height) && (m_u_width == mam_u_width) ); //行、列相同
for(unsigned i=0;i<m_vec_datasize();i++)
{
m_vec_data[i] += mam_vec_data[i];
}
return this;
}
/-----------------------------------------------------------------------------
矩阵-=
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>& CMatrix<T>::operator -= ( const CMatrix& ma )
{
assert( (m_u_height == mam_u_height) && (m_u_width == mam_u_width) ); //行、列相同
for(unsigned i=0;i<m_vec_datasize();i++)
{
m_vec_data[i] -= mam_vec_data[i];
}
return this;
}
/-----------------------------------------------------------------------------
矩阵=T
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>& CMatrix<T>::operator = ( T n )
{
for(vector<T>::iterator it = m_vec_databegin();it!=m_vec_dataend();it++)
{
it = n;
}
return this;
}
/-----------------------------------------------------------------------------
矩阵/=T
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T>& CMatrix<T>::operator /= ( T n )
{
assert(n); //非零
for(vector<T>::iterator it = m_vec_databegin();it!=m_vec_dataend();it++)
{
it /= n;
}
return this;
}
/-----------------------------------------------------------------------------
矩阵+
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T> CMatrix<T>::operator + ( const CMatrix& ma ) const
{
assert( (m_u_width == mam_u_width)&&(m_u_height == mam_u_height) );
vector<T> temp( m_u_width m_u_height );
for(unsigned i=0;i<m_vec_datasize();i++)
{
temp[i] = m_vec_data[i] + mam_vec_data[i];
}
return CMatrix(temp,m_u_height,m_u_width);
}
/-----------------------------------------------------------------------------
矩阵-
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T> CMatrix<T>::operator - ( const CMatrix& ma ) const
{
assert( (m_u_width == mam_u_width)&&(m_u_height == mam_u_height) );
vector<T> temp( m_u_width m_u_height );
for(unsigned i=0;i<m_vec_datasize();i++)
{
temp[i] = m_vec_data[i] - mam_vec_data[i];
}
return CMatrix(temp,m_u_height,m_u_width);
}
/-----------------------------------------------------------------------------
矩阵 --==>>>算法待优化 时间复杂度 n^3
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T> CMatrix<T>::operator ( const CMatrix& ma ) const
{
assert( m_u_width == mam_u_height );
CMatrix temp( m_u_height, mam_u_width );
for(unsigned i=0; i<m_u_height; i++)
{
for(unsigned j=0;j<mam_u_width;j++)
{
for( unsigned m=0;m<mam_u_width;m++ )
temp(i,j) += m_vec_data[im_u_width + m] ma(m,j);
}
}
return temp;
}
/-----------------------------------------------------------------------------
矩阵T
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T> CMatrix<T>::operator ( T n ) const
{
vector<T> temp(m_vec_data);
for(vector<T>::iterator it=tempbegin();it!=tempend();it++)
{
it = n;
}
return CMatrix(temp,m_u_height,m_u_width);
}
/-----------------------------------------------------------------------------
矩阵/T
------------------------------------------------------------------------------
/
template < class T >
CMatrix<T> CMatrix<T>::operator / ( T n ) const
{
assert(n);
vector<T> temp(m_vec_data);
for(vector<T>::iterator it=tempbegin();it!=tempend();it++)
{
it /= n;
}
return CMatrix(temp,m_u_height,m_u_width);
}
/-----------------------------------------------------------------------------
矩阵 ==
------------------------------------------------------------------------------
/
template < class T >
bool CMatrix<T>::operator == ( const CMatrix& ma ) const
{
if( m_u_height != mam_u_height || m_u_width != mam_u_width )
return false;
for(unsigned i=0;i<m_vec_datasize();i++)
{
if( m_vec_data[i] != mam_vec_data[i] )
return false;
}
return true;
}
/-----------------------------------------------------------------------------
矩阵 !=
------------------------------------------------------------------------------
/
template < class T >
bool CMatrix<T>::operator !=(const CMatrix& ma) const
{
if(m_u_height != mam_u_height || m_u_width != mam_u_width)
return false;
for(unsigned i=0;i<m_vec_datasize();i++)
{
if( m_vec_data[i] != mam_vec_data[i] )
return true;
}
return false;
}
/-----------------------------------------------------------------------------
矩阵转置
------------------------------------------------------------------------------
/
template < class T >
void CMatrix<T>::transpose()
{
vector<T> temp(m_u_widthm_u_height);
for(unsigned i=0;i < m_u_height;i++)
{
for(unsigned j=0;j<m_u_width;j++)
{
temp[ jm_u_height + i ] = m_vec_data[ im_u_width + j ];
}
}
swap(m_u_width,m_u_height);
m_vec_data = temp;
}
/-----------------------------------------------------------------------------
判空
------------------------------------------------------------------------------
/
template < class T >
inline bool CMatrix<T>::empty()
{
return m_vec_dataempty();
}
/-----------------------------------------------------------------------------
大小
------------------------------------------------------------------------------
/
template < class T >
inline long CMatrix<T>::size()
{
return static_cast<long>(m_vec_datasize());
}
/-----------------------------------------------------------------------------
高度
------------------------------------------------------------------------------
/
template < class T >
inline unsigned CMatrix<T>::height()
{
return m_u_height;
}
/-----------------------------------------------------------------------------
宽度
------------------------------------------------------------------------------
/
template < class T >
inline unsigned CMatrix<T>::width()
{
return m_u_width;
}
int main()
{
CMatrix<int> mat0(6,8);
cout<<mat0<<endl;
for(int i=0;i<6;i++)
{
for(int j=0;j<8;j++)
mat0(i,j) = i+j;
}
cout<<mat0<<endl;
vector<int> vec( 23,2 );
CMatrix<int> mat1(vec,5,5);
cout<<mat1<<endl;
vector<int> vec1( 40,5);
CMatrix<int> mat2(vec1,6,6);
cout<<mat2<<endl;
CMatrix<int> mat3(6,6);
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
mat3(i,j) = ij;
}
cout<<mat3<<endl;
cout<<mat3 + mat2<<endl;
mat3 += mat2;
mat3 = mat3 + mat2;
cout<<mat3<<endl;
return 0;
}
void chu(char a[],char b[])
{
cout<<"两数想除的结果为:";
cout<<double(atof(a))/double(atof(b))<<endl;
}
他根本就没实现大数除法, 哪有什么思想
大数算法是挺麻烦的一件事情, 不是因为编程难, 而是因为选择太多, 数据怎么存储跟你打算怎么用这些东西有很大的关系。 初学的就先别考虑这个了, 找一些比较固定有效的算法学学就行了, 等到有了一定水平自然就知道这个怎么算了, 算法上没难度
以上回答你满意么?
以上就是关于我已经有两年没接触数学了,想学IT,如何提升自己的逻辑思维全部的内容,包括:我已经有两年没接触数学了,想学IT,如何提升自己的逻辑思维、求简便运算方法、it系统对地电压怎么计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)