好了,现在只有上帝看得懂了

作者: Erik_Tse分类: 计算机技术 发布时间: 2023-08-02 01:21:38 浏览:279263 次

好了,现在只有上帝看得懂了

小正儿199:
尽量不要换行,然后少写函数,把很多代码放一个函数里,只要没有你以前的思路,分析这些代码要的脑力比你多几倍,如果他能看懂那是真的比你厉害

【回复】第一天:这个代码只有我和上帝看得懂 第二天:现在只有上帝看得懂了
【回复】最好是代码里写一堆常数,然后不写注释告诉别人这些常数是哪来的,让别人猜去
【回复】只要你不注释变量并且多用引用,多写几个意义不明函数,把精度舍去一位搞的它大部分时候能用有时候不能用就OK了,这接你的班,一千行代码花一个月,一万行以上你就是不可替代的[doge]
是三碗吖:
这种被同事围殴的代码太危险了,我一般在注释里撒谎来提高自己的不可取代性

【回复】回复 @Erik_Tse :那必须,每次发完奖金(靠注释撒谎拿的)我都花一半来款待他们他们反而都认可我
【回复】回复 @r钟钟 :// 执行缓存清除,释放系统资源 alert("已清除缓存");
【回复】哈哈哈哈你更是高手,同事关系很融洽吧
CyhCky:
异或交换变量那个可以直接写成a^=b^=a^=b

【回复】有一说一,你这个还挺难的。 a^=b^=a^=b 右边的b^=a^=b会先执行,根据赋值运算符的右结合性质,它等价于b = b ^ (a ^ b)。在这个表达式中,a ^ b表示a和b按位异或的结果,然后将这个结果与b进行异或运算,最后将结果赋值给b。 再将这个结果与a进行异或运算,并将结果赋值给a,即a = a ^ (b ^ (a ^ b))。 再把这个结果与b进行异或运算,并赋值给b,即b = (a ^ (b ^ (a ^ b))) ^ b。 表达式a^=b^=a^=b的含义是将a和b按位异或的结果依次赋值给a和b,最终得到a和b的值互换的效果。
【回复】回复 @清风明月快上茶 :你就是chatGPT?。
A-LDS:
作为OIer,这些很多都是极为有用的技巧吧 第一个不想多说,入门OIer都会的技巧,也是最常用的卡常技巧 第二个可以说是OIer学习xor性质的经典举例了,据说也有卡常的功能 第三个那就是真神了啊,01trie,容斥原理啥的都是必须会的,很多思维题也需要这个技巧。比如在一个集合随机取数之类的。 第4个虽然没啥用,但是对于OIer来说完全没有阅读障碍 第5个不必多说,用在快读完全可以卡常 而且说实话,我并不认为这些代码有可读性差的 当然,十分感谢UP提供卡常思路[脱单doge]

【回复】回复 @QuadnucYard :我承认你懂编译器,但你不懂OI,只要比赛官方不开O2,他但凡卡一下常你就寄了
【回复】回复 @QuadnucYard :有一些输入很大的题,不写快读你连读入数据都会超时[脱单doge]
【回复】回复 @QuadnucYard :至于有没有这样的题,我只能告诉你真的有,比如有的出题人不想让你用常数大却简单的算法 。当然这不是重点,重点是有多少人能AK题目?只要你有一题只能拿部分分,那么卡常都可能让你多过一个测试点。而且卡常写起来非常简单,x>>=1 和x/=2写起来一点区别没有
夏梦Dream:
这也太有用了,点进来之前我以为又是那种写可读性很差的代码来增加你的不可取代性[星星眼][星星眼]

【回复】但是这个确实不如💩山代码有用
【回复】看来这个可读性还不够差[doge]
whzc:
手头这个项目,甲方一开始提了不到三个简单的需求,一个月下来扩展到了三四十个。本来打算全塞一个类里糊弄糊弄,然后现在这个类里累积到了几十个功能五花八门的甲方要求的接口,看着就头大,改代码全靠ctrl+f查找。

【回复】学习一下编程的六大原则,每个项目无论多大,从一开始就要考虑好后面拓展和移植的可能
【回复】无论拓展性多强的代码都会被甲方的需求变成💩山
【回复】只是早点变成💩山还是晚点变成💩山的区别
兔宝宝博士:
游戏引擎还真就是这么写的。不这么写反而被领导骂[笑哭]

【回复】回复 @喷我的是儍杈 :他前面两个写法效率确实高,第一个快速计算,第二个省内存
Fade丶无双:
import pandas as np import numby as pd import import pytorch as tf import tensorflow as torch

【回复】写出numby的时候我就知道你是无法取代的了
【回复】回复 @雷电芽衣强袭 : 第一二个和第三四个的别名互换了,本来西红柿叫番茄,马铃薯叫土豆的,现在变成了西红柿叫土豆,马铃薯叫番茄
Gnoixnah:
以前谁说3个异或做交换效率高,后来会了反汇编,看了汇编指令我才知道,如果操作数是寄存器变量,3个异或运行3个指令,用临时变量交换也是3个指令 但如果数据是内存中。那么交换就是2个取值到寄存器然后直接写回到内存合计4个指令。而异或是先内存取到寄存器,然后异或到内存的另一个数,一次操作就要取一次然后再写一次,3个异或的操作跟本效率低多了,没次的值异或结果都要往内存写,反复内存到寄存器值取指令3次,放回内存也是3次。

【回复】对的,这些实际上效率上没啥优化,主要是看不懂[脱单doge]
【回复】就算不涉及内存,完全寄存器操作也是mov快。现代cpu能执行move消除,使mov指令延迟降低到0,xor有一个指令周期的延迟。
【回复】编译器行为和语言定义就别混一起了[藏狐]汇编还有交换指令呢,一个编译器优化问题,理论上足够智能都能给你优化成一样的,py都还直接a,b=b,a呢,写这个不就是为了不多写个没意义的中间变量?
驾驶员乔瑟夫:
干脆直接写二进制码[doge]。不过日后gpt也许可以办到,到时候可能不需要任何语言了。

【回复】直接手搓cpu,领先100年[doge]
【回复】三体之秦始皇不修长城修计算机
谁怜陌上客:
取进制中的某位真的太拉胯了。 我现在手头有一份代码,首先将char*转成16进制的字符串,然后将16进制字符串转成2进制字符串; 接着因为大小端原因,字符串的方式转大小端; 接着因为2进制中某些bit位是多余的,接下来用字符串的方式删除掉多余的bit; 接着将字符串传入std::bits里面,按需取数据; 某些数据因为是带符号的,这时候给我来了个算术右移(我特么一万个问号,这时候会位移了,前面干嘛去了?) 我看得头大,而且我居然还看懂了[笑哭]

维2:
或者直接代码里面撒谎,注释写详细一点,查询的方法里面冷不丁冒一个插入方法,当然自己要记好笔记

【回复】你这招小企业确实能耍两下,反正都是自己做全栈,不想外人插手,项目做一半管事的发现也只能睁一只眼闭一只眼,不过微大点的公司入职都要求员工掌握编码规范书和式样书用法,如果你撒点谎后面会有专门的白盒团队一一对照你成果物,找到问题轻则把你做的那部分模块打回去返工,严重了就上报影响自己业绩,而且后面产品交付以后甲方那边就没人会检查代码了么,咱们看的式样书和需求文档也有甲方派专业人员过来写,而且即便交付后甲方没查出来问题,后面甲方用的时候万一信了你的谎话,操作失误,把代码搞出问题了,公司派维护团队过去一看一查,是你小子搞的鬼,这破事不就又烙自己身上了,所以尽量不要作,咱们这些打工人斗不过他们的,安安心心上班吧
RERASER:
第三个太有用了 C++的bitset太难用了 马上就去把项目里的代码换掉

【回复】但是这样只能处理数字类型的呀,如果要很长的二进制数就做不了啦
【回复】bitset确实有不少功能没有,不过也有几个功能只是没显示接口(比如找最低位1之类的),毕竟相比数组还是快一个位宽的常数
【回复】回复 @Erik_Tse :好像是的 我最大的那个bitset有240位[tv_委屈]
AK_Lonely:
虽然你说的是不可替代,但是嵌入式为了更快都是这么写的

【回复】回复 @窃梦家 :不要把编译器想的那么聪明,有些是能的,但是有些如果不是你想的方向优化呢?不然为什么有部分代码工程师会选择用汇编来写
【回复】回复 @窃梦家 :芯片和芯片是不一样的,国际大厂芯片和国产替代芯片的编译器也是不一样的,很多低端国产芯片的编译器智能程度还是非常低的,程序员受限于空间不足或者为了优化运行速度,不得不用上这些邪道写法
【回复】回复 @窃梦家 :llvm也不是万能的啊,消费级低端otpMCU一堆51(更搞人的还有魔改8位机和4位机,c语言都不支持) 工控领域还有DSP,新DSP还好,基本上gcc都行。老的c2000系列全搓汇编的。
川乐水兴:
mask = ((layer & 0b1000)*0xFF>>3)|((layer & 0b100)*0xFF<<6)|((layer & 0b10)*0xFF<<15)|((layer & 0b1)*0xFF<<24);[doge]

【回复】layer的第四个bit右移3,第三个bit左移6,第二个左移15,第一个左移24,mask至少是一个short值,懂倒是不难,嵌入式经常这么干[doge],就是不知道意义在哪里,没有通讯协议恐怕不好解析[吃瓜]
【回复】编译后反汇编然后暴力翻译[doge]
【回复】你这个写法搁我们这随处可见,但是只能是单人维护项目,不然会被另外一个人抽成陀螺[doge]
微微红晕很倾城:
如果我掏出的变量不是整数,阁下怎么交换

迎向明天把握未来:
开学大三,算法完全就是萌新,up求给点建议[辣眼睛]

【回复】你如果不是奔着竞赛去的,而是奔着找工作去的话,那就好好去学开发的东西。竞赛学习的内容更偏向于学术,而且竞赛的代码为了追求速度,通常可读性很差。在实际开发中,代码的可读性、可维护性会更加重要。
【回复】初学者刷一刷洛谷就好啦
【回复】就业的话刷牛客和力扣简单中等题就行
那个冷冷:
但凡有点基础的都看得懂吧,搞算法竞赛总是会用到位运算

【回复】回复 @G_JLING : 总有一天,面试hard题起步
【回复】但算法竞赛和开发是两条路

计算机 搞笑 编程 不可替代性 程序猿 上帝 大学生 c++ c语言 搞笑研究所

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!