一个人也能玩别扭的app,推荐这15款!你越擅长独处,就越容易感到充实和满足。这15款适合独处的app,帮助我接纳了自己,让我不再害怕孤独。
学会与自己相处后,我发现我不idon'我似乎不必取悦他人。希望每个女生都能在社交和独处之间找到平衡。
寂寞的时候,可以静静地听一首歌,浏览一篇文章,读一首诗,感受旋律和文字带来的力量,远离纷繁复杂的世界,进入一段惬意的独处时光。
懒饭也要照顾好自己。这个app会每天推送简单易用的美食。可以跟着视频,解锁不同的美食做法。完成后可以上传照片,记录美好的烹饪回忆~
一个人睡着了,就可以打开日常的梦境,跟着音乐,进入奇妙的梦境世界。学习的时候可以开一个情景剧,在沉浸式的asmr里和主播一起进图书馆自习,缓解内心的孤独,不再感到孤独。
doing有番茄钟和正计时模式可供选择。对焦后系统会屏蔽手机的消息通知,避免被外界信息干扰,分散注意力。还会以统计图的形式记录不同阶段的集中状态。
生活在这里汇集了优秀的室内设计师。你可以咨询设计师的设计案例和装修报价,找到理想的设计师,装修你的小屋,并与其他用户分享装修经验,寻找装修灵感。
it去参观一个有趣的关于vart的展览也是一个不错的选择。;一个人的周末~你可以搜索你所在的城市,寻找有趣的艺术展,近距离感受艺术,并记录下你对展览的感受,分享你的经历。
卡片日记是一个简单易用的日记工具。哪怕只是用几句话记录自己的生活,也是很美好的。还可以将每张卡片搭配不同的颜色,打造出一个漂亮独特的日记本。
平行世界和名字一样。这个app就像一个小小的平行世界。你可以在上面记录你的感受,向邮局倾诉你的烦恼,接收别人的回复和回答,感受灵魂的碰撞。
让生活的快乐翱翔。在平凡的生活中也隐藏着许多微小的幸福~这7款应用都能增加生活的幸福感,所以不要犹豫。;不要错过它!
吃相机大概是吃货们吃到好吃的最大幸福吧!这个app是专门拍摄美食的,有30个构图辅助。即使你拍一张小白的照片,你也可以很容易地找到最佳角度,拍出最美味的食物!
kapoo这个app就像一个爱情日记。可以通过拍照、写日记等随时记录和男朋友在一起的快乐。每天完成录制任务后,还会获得一份爱心奖励。可以买道具和男朋友一起装扮一个自己爱的小屋~
luzmo这款相机专注于胶片质感,它具有有了写实的胶片色调,一拍就能拍出像胶片一样漂亮的照片。此外,它还拥有广角镜头、前置镜和其他不同的镜头,可以自由切换,调节想要的感觉。
lazyshare对于喜欢画画的朋友来说,这个app一定不能错过。它拥有数千种优质画笔、字体和色卡,可以满足我们不同类型的绘画需求,也可以直接导入到procr
首先我们定义一个整数的平方根从非负整数映射到非负整数的函数:我们可以用乘法线性搜索或者二分法搜索得到平方不超过的最大根。通过平方数的数列,我们在线性搜索中只能使用加法,因为两个完全平方数之差是一个奇数列:uint32_tisqrt0(uint32_tn){uint32_tdelta3;for(uint32_tsquare1;平方n;△2)方三角;返回delta/2-1;}因为问题是关于大整数的,所以我们要把大整数的位数()考虑进去。线性搜索需要多次迭代,每次迭代的加法都需要时间。然而,最坏情况下的二分搜索法需要多次迭代,并且每次乘法都需要时间。但有些数值方法(如牛顿迭代)只适合计算近似,还涉及除法。让咱们换个思路,参考文章整数平方根。平方根的计算方法类似于长除法。在二进制中,只需要比较和减法。32位无符号整数的c实现如下:uint32_tisqrt1(uint32_tn){uint32_t余数0,根0,除数;for(size_ti0;i16i){根1;保持der2;余数|n30n2;//从n除数(根1)1中提取2msbif(除数余数){余数-除数;根;}}返回root这种方法的迭代次数是次(一个整数有多少位),每次迭代的加、减、移位、比较都是一样的。总时间和时间复杂度低于线性和二分搜索法。由于除数和根的关系是固定的,如果空间是一个考虑因素(考虑大整数或硬件实现),可以把这种形式改为节省除数的存储:uint32_tisqrt2(uint32_tn){uint32_tremainder0,root0;for(size_ti0;i16i){根1;根;余数2;余数|n30n2;//从nif(根余数){余数-根)中提取2msb根;}else-root;}返回根1;}接下来我们用c11泛形式写这个算法,接受任何无符号整数类型:templatetypenamettisqrt(consttn){tremainer{},root{};autobitcountisqrt_traitst::bitcount(n);for(size_tibitcount;i0;){i-2;根1;根;余数2;余数|isqrt_traitst::extractwobitsat(n,i);if(根余数){remainder-root;根;}else-root;}返回根1;}t需要支持、、前缀、前缀-、|uint8_t,还需要提供一个isqrt_traitst来提取两个额外的操作。对于内置的无符号整数类型,它的一般是qrt_trait。s是这样的:templatetypenametstructisqrt_traits{static_ass::is_unsign::value,泛型isqrt只对无符号类型);//两个静态大小的倍数的位数_tbitcount(consttn){ta(n);size_tcount0;while(a0){a2;计数2;}返回计数;}//提取i1,i位静态uint8_textractwobitsat(consttn,size_ti){returnstatic_castuint8_t((ni)3);}};在isqrt2的每次迭代中,我们通过移位得到两个比特,而在isqrt中,我们使用extractwobitsat(n,i)得到第1个和第1个比特。这个变化是因为可以直接从一个大整数中获取一个比特,而不需要复制另一个大整数进行移位运算。这里的bitcount()其实可以简单的返回siz::vectoru.u一般可以设置为uint32_t或者uint64_t.并添加十六进制流输出:templatetypenameuclassbiguint{public:biguint():v{0}{}biguint(std:initializ:v(init){}biguint运算符(siz:v){uoutbitsx(unitbitcount-shift);x(xshift)|inbits;inbitsoutbits}if(inbits)v.push_back(inbits);返回*this}biguint运算符(size_tshift){assert(shiftunitbitcount);uinbits0;for(autoitrv.rbegin();itr!();itr){uoutbits*itr(unitbitcount-shift);*itr(*itrshift)|inbits;inbitsoutbits}if(()0)v.pop_back();返回*this}biguint运算符|(uint8_trhs){v[0]|rhs;返回*this}biguint运算符-(constbiguintrhs){ass:0;u以前的v[i];v[i]-rinborrow;inborrowv[i]上一页1:0;}assert(inborrow0);while(()1()0)v.pop_back();返回*this}biguint运算符(){for(autox:v)if(x!0)返回*this五.push_back(1);返回*this}biguint运算符-(){ass:v)if(x-!0)返回*this返回*this}布尔运算符(常量大uintrhs)const{if(()()){for(autoi();i-0;)if(v[i]rhs.v[i])返回tru:echo23-@.com:echo25-@.comestreamos,constbiguintx){autof(os.flags());os0xstd::hex;for(autoitrx.v.rbegin();itr!();itr)os*itr;os.flags(f);返回os;}friendstructisqrt_traitsbiguint;privat:静态常量size_tunitbitcountsiz::vectoruv;};并为biguintu提供一个isqrt_traits:templatetypenameustrctisqrt_traitsbiguintu{staticsize_tbitcount(constbiguintun)。{r::itbitcount*(()-1)isqrt_traitsu::bitcount(());}staticuint8_textractwobitsat(constbiguintun,size_ti){returnstatic_castuint8_t((n.v[i/biguintu::munitbitcount)(ibiguintu::unitbitcount))3);}};我简单测了一下45765和50!intmain(){//floor(sqrt(45765))213std::coutisqrt1(45765)std::::coutisqrt2(45765)std::::coutisqrtunsign::endl;//50!49eebc961ed279b02b1ef4f28d19a84f5973a1d2c7800000000000//楼层(sqrt(50!))899310e94a8b185249821ebc::coutisqrt(biguintuit32_t{0x00000000,0xd2c78000,0x4f5973a1,0xf28d19a8,0xb02b1ef4,0x961ed279,0x49eebc})std:echo54--}output$g-stdc11-oisqrtisqrt.cpp./isqrt2132132130x899310e94a8b185249821ebce7050!平方根(sqrt(50!))在十六进制匹配(知乎插入的网址有bug)。原代码在大整数平方根github。注意:还没有完全测试过。-更新1:按@计算提示大海无边,时间复杂度的顺序应该是-更新2:isqrt0()之前有错误,感谢@loop反馈。