gcd以前为什么叫gf

GCD函数_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
返回两个或多个整数的最大公约数,最大公约数是能分别将各个参数除尽的最大整数。
GCD函数语法
GCD(number1,number2, ...)
Number1, number2, ... 为 1 至 255 个数值,如果参数为非整数,则截尾取整。
GCD函数注解
· 如果参数为非数值型,则函数 GCD 返回 #VALUE!。
· 如果参数小于零,则函数 GCD 返回 #NUM!。
1 可被任何数值除尽。
质数只有它本身和1可以做为除尽它的除数。
GCD函数示例
如果将示例复制到一个空白中,可能会更容易理解该示例。
说明(结果)
6和3的最大公约数(3)
=GCD(34,48)
34和48的最大公约数(2)
9和1的最大公约数(1)
6和0的最大公约数(6)
清除历史记录关闭基于GCD算法的GF(2~m)上高速带模除法--《通信学报》2008年10期
基于GCD算法的GF(2~m)上高速带模除法
【摘要】:对常规GCD算法进行了深入分析,改进了算法的判断标准和体系结构,使得每轮迭代中的比较次数由4次降低为3次,与此同时,迭代次数不再固定为2m,改变成上限为分母的长度与m之和,从根本上加快了GCD算法的效率。在此基础上,根据A.Zadeh的思想,将新算法分别扩展到基4、基8,比较次数分别降低为50%和34%,从而大大缩短了计算时间。通过MATLAB实验验证了算法改进取得了很好的效果。
【作者单位】:
【基金】:
【分类号】:TN918.1
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【相似文献】
中国期刊全文数据库
张惠民;;[J];北京邮电大学学报;1980年02期
管纪文;;[J];计算机研究与发展;1980年06期
王永澄;[J];南京航空航天大学学报;1981年03期
丁石孙;[J];自然杂志;1981年03期
孙裕;[J];计算机学报;1982年06期
J.V.Brawley
,Jack Levine
,龙纹;[J];信息安全与通信保密;1983年02期
卢铁城;[J];通信学报;1984年02期
王泽涵;[J];电子学报;1984年05期
王可,裴定一,成秉章;[J];中国空间科学技术;1984年04期
高为炳;;[J];自动化学报;1984年02期
中国重要会议论文全文数据库
雷咏梅;;[A];西部大开发 科教先行与可持续发展——中国科协2000年学术年会文集[C];2000年
肖金标;孙小菡;张明德;丁东;;[A];全国第十次光纤通信暨第十一届集成光学学术会议(OFCIO’2001)论文集[C];2001年
黄思训;韩威;;[A];第五届全国水动力学学术会议暨第十五届全国水动力学研讨会文集[C];2001年
刘天云;赵瑞光;;[A];第十一届全国结构工程学术会议论文集第Ⅰ卷[C];2002年
李兴德;姚军刚;;[A];第六届全国计算机应用联合学术会议论文集[C];2002年
赵洪;;[A];中国声学学会2003年青年学术会议[CYCA'03]论文集[C];2003年
陈爱群;叶震;高柯俊;郑利平;姚传茂;;[A];全国第十五届计算机科学与技术应用学术会议论文集[C];2003年
郁滨;岳云天;戴紫彬;苏锦海;;[A];全国第16届计算机科学与技术应用(CACIS)学术会议论文集[C];2004年
游余新;王进祥;;[A];中国通信集成电路技术与应用研讨会论文集[C];2004年
张亚娟;祝跃飞;黄秋生;;[A];第九届全国青年通信学术会议论文集[C];2004年
中国重要报纸全文数据库
李杨 邹宏
邹兵;[N];中国妇女报;2008年
黄辛 通讯员
韩璐;[N];科学时报;2009年
中国博士学位论文全文数据库
亢保元;[D];西安电子科技大学;1998年
曾晓洋;[D];中国科学院长春光学精密机械与物理研究所;2001年
张方国;[D];西安电子科技大学;2001年
李志慧;[D];西北工业大学;2002年
滕吉红;[D];中国人民解放军信息工程大学;2003年
孙峻;[D];西北工业大学;2002年
李学俊;[D];西北工业大学;2003年
庞善起;[D];西安电子科技大学;2003年
邓明立;[D];河北师范大学;2004年
张艳芳;[D];河北师范大学;2004年
中国硕士学位论文全文数据库
朱宣勇;[D];解放军信息工程大学;2001年
严春林;[D];电子科技大学;2001年
李培刚;[D];电子科技大学;2001年
王静;[D];解放军信息工程大学;2001年
邹又姣;[D];西安理工大学;2002年
陈兴容;[D];电子科技大学;2002年
高柯俊;[D];合肥工业大学;2002年
林淑芬;[D];厦门大学;2002年
陈文宇 ;[D];中国科学院研究生院(上海微系统与信息技术研究所);2002年
姜昱汐;[D];大连理工大学;2002年
&快捷付款方式
&订购知网充值卡
400-819-9993中国1块钱汽油0.34元的税 官方:发达国家更高
引用66楼 @ 发表的:
我说油费太高,你说瑞典更高。我说瑞典公路不收费,你说日本收费。我说日本工资高,你说俄国也不高。我说俄国全民医保,你说印度没医保。我说印度没强拆,你说伊拉克还挨炸。我说伊拉克有自由,你说朝鲜更惨。我说朝鲜有廉租房,你说阿富汗还住山洞。我说阿富汗人有xuanpiao,你说xuanpiao不能当饭吃;我说xuanpiao跟吃饭一样都是权利,你说你再说我碾死你!
我去,这谁写的???太特么有才了!
发自手机虎扑 m.hupu.com
国情跟接轨是我当的两把利剑
唉,真心无语啊,开个车是越来越难了
现在双重标准已经不行了,
要多重标准
发自手机虎扑 m.hupu.com
真是不要逼脸
引用11楼 @林老大牛爆 发表的:知道GCD以前叫什么吗?
gmd以前也被叫孙文乱D。
您需要登录后才可以回复,请或者
367人参加团购398.00元&799.00元
171人参加团购148.00元&249.00元
186人参加团购398.00元&899.00元
1581人参加团购75.00元&199.00元
282人参加团购185.00元&629.00元
155人参加团购89.00元&219.00元
968人参加团购119.00元&399.00元
1542人参加团购666.00元&1599.00元
125人参加团购109.00元&169.00元
89人参加团购319.00元&639.00元
134人参加团购109.00元&179.00元
293人参加团购119.00元&299.00元GCD的介绍有另外一篇博客专门写了下,需要看的可以点击以下传送门,这里主要记录下基本的API使用以及两种单例的创建方式
1.GCD同步异步并发串行排列组合的集中基本形式
- (void)asynchSerial
dispatch_queue_t queue1 = dispatch_queue_create("COM.MKJ.COM", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue1, ^{
NSLog(@"------1,%@",[NSThread currentThread]);
dispatch_async(queue1, ^{
NSLog(@"------2,%@",[NSThread currentThread]);
dispatch_async(queue1, ^{
NSLog(@"------3,%@",[NSThread currentThread]);
NSLog(@"asynchSerial------end");
- (void)synchSerial
dispatch_queue_t queue1 = dispatch_queue_create("COM.MKJ.COM", DISPATCH_QUEUE_SERIAL);
dispatch_sync(queue1, ^{
NSLog(@"------1,%@",[NSThread currentThread]);
dispatch_sync(queue1, ^{
NSLog(@"------2,%@",[NSThread currentThread]);
dispatch_sync(queue1, ^{
NSLog(@"------3,%@",[NSThread currentThread]);
NSLog(@"synchSerial------end");
- (void)synchConcurrent
dispatch_queue_t queue1 = dispatch_queue_create("COM.MKJ.COM", DISPATCH_QUEUE_CONCURRENT);
dispatch_sync(queue1, ^{
NSLog(@"------1,%@",[NSThread currentThread]);
dispatch_sync(queue1, ^{
NSLog(@"------2,%@",[NSThread currentThread]);
dispatch_sync(queue1, ^{
NSLog(@"------3,%@",[NSThread currentThread]);
NSLog(@"synchConcurrent------end");
- (void)asynchConcurrent
dispatch_queue_t queue1 = dispatch_queue_create("COM.MKJ.COM", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(queue1, ^{
NSLog(@"------1,%@",[NSThread currentThread]);
dispatch_async(queue1, ^{
NSLog(@"------2,%@",[NSThread currentThread]);
dispatch_async(queue1, ^{
NSLog(@"------3,%@",[NSThread currentThread]);
NSLog(@"asynchConcurrent------end");
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125简单概括如下:
同步(sync)
异步(async)
当前线程,顺序执行
另一个线程,顺序执行
当前线程,顺序执行
另一个线程,同时执行
可以看出同步和异步就是开线程的能力,同步执行必然一个个顺序执行在当前线程,而异步执行可以根据队列不同来确定顺序还是同步并发执行
2.最基本的线程间通讯方式
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSURL *url = [NSURL URLWithString:@"https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcRCfHVwGXGvrpCBplQieSKsLgfBULL8ZZXSzosPFdoZsvjDlqnOrKK_w58"];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
NSLog(@"获取资源%@",[NSThread currentThread]);
dispatch_async(dispatch_get_main_queue(), ^{
self.imageView.image =
NSLog(@"加载资源%@",[NSThread currentThread]);
1234567891011121314151612345678910111213141516
3.其他Barrier,apply,after,Group等常用API
dispatch_barrier_async
- (void)barrier
dispatch_queue_t queue = dispatch_queue_create("com.mkj.hehe", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(queue, ^{
NSLog(@"--------1,%@",[NSThread currentThread]);
dispatch_async(queue, ^{
for (NSInteger i = 0; i & 10; i ++)
NSLog(@"--------2%ld,%@",i,[NSThread currentThread]);
dispatch_barrier_async(queue, ^{
NSLog(@"--------3,%@",[NSThread currentThread]);
dispatch_async(queue, ^{
NSLog(@"--------4,%@",[NSThread currentThread]);
dispatch_async(queue, ^{
NSLog(@"--------5,%@",[NSThread currentThread]);
}1234567891011121314151617181920212223242526272829303132333435363738394012345678910111213141516171819202122232425262728293031323334353637383940dispatch_apply
- (void)apply
dispatch_apply(10, dispatch_get_global_queue(0, 0), ^(size_t index) {
NSLog(@"%ld,%@",index,[NSThread currentThread]);
}1234567891011121314151617181912345678910111213141516171819dispatch_after
- (void)delay
NSLog(@"开始了");
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0*NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"我才开始");
[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(run) userInfo:nil repeats:NO];
- (void)run
NSLog(@"run");
}123456789101112131415161718123456789101112131415161718dispatch_group_async
- (void)group
// 并发队列
dispatch_queue_t queue = dispatch_queue_create("com.mkj.hh", DISPATCH_QUEUE_CONCURRENT)
dispatch_group_t group = dispatch_group_create()
// 任务1加入组
dispatch_group_async(group, queue, ^{
NSURL *url = [NSURL URLWithString:@"https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQxex7CvJ0pArQ8NHwXMaZ8fSt3ALAZBlljTQVlDsh6AIegeMjWWMoSVtej"]
NSData *data = [NSData dataWithContentsOfURL:url]
self.image1 = [UIImage imageWithData:data]
// 任务2加入组
dispatch_group_async(group, queue, ^{
// 这里可以一样是耗时的网络请求,暂时处理成本地的
self.image2 = [UIImage imageNamed:@"Play"]
// 任务完成之后统一通知
dispatch_group_notify(group, queue, ^{
// 这里的queue如果是mainQueue的话就可以直接回到主线程操作需要的UI
// 现在还是在并发队列里面
进行图片合成
还是放在子线程
UIGraphicsBeginImageContext(CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.width))
[self.image1 drawInRect:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.width)]
[self.image2 drawInRect:CGRectMake([UIScreen mainScreen].bounds.size.width/2, [UIScreen mainScreen].bounds.size.width/2, 30, 40)]
UIImage *image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
// 回到主线程刷新UI
dispatch_async(dispatch_get_main_queue(), ^{
self.imageView.image = image
}12345678910111213141516171819202122232425262728293031323334353637383940411234567891011121314151617181920212223242526272829303132333435363738394041
4.两种方式实现单例
自己加锁实现static id
+ (instancetype)shareInstance
@synchronized (self) {
if (!obj) {
obj = [[self alloc] init];
+ (instancetype)allocWithZone:(struct _NSZone *)zone
@synchronized (self) {
if (!obj) {
obj = [super allocWithZone:zone];
- (id)copyWithZone:(NSZone *)zone
}123456789101112131415161718192021222324252627123456789101112131415161718192021222324252627GCD实现(直接抽成宏)#define MKJSingletonH + (instancetype)shareM
#define MKJSinletonM \
+ (instancetype)shareManager \
static dispatch_once_t onceT \
dispatch_once(&onceToken, ^{ \
obj = [[self alloc] init]; \
+ (instancetype)allocWithZone:(struct _NSZone *)zone \
static dispatch_once_t onceT \
dispatch_once(&onceToken, ^{ \
obj = [super allocWithZone:zone]; \
- (id)copyWithZone:(NSZone *)zone \
}12345678910111213141516171819202122232425261234567891011121314151617181920212223242526
抽成宏之后可以直接进行调用就OK
@interface ManagerHelper : NSObject
MKJSingletonH
@implementation ManagerHelper
MKJSinletonM
@end12345671234567
注:这里为什么需要用Static进行修饰,static保证只有本文件才能访问,这样就能形成单例,但是如果不用static修饰,外部也一样能访问,这个时候外部如果置为nil之后,这个对象就不存在了,再也不会创建了,dispatch_once只会执行一次,这样肯定不对的
非常简单的介绍,这里有个Demo,需要的朋友可以下载看看基础用法先,文章头部有介绍GCD死锁解锁的案例文章,需要的也可以看看
没有更多推荐了,

我要回帖

 

随机推荐