| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3562 人关注过本帖
标题:[还是代码游戏]对折纸
只看楼主 加入收藏
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:23 
[还是代码游戏]对折纸
0.1mm一张纸,不断地对折,问对折多少次,可以超过珠穆朗玛峰的高度(8844.43m)

因为题目很简单,所以目标是最优算法.
备注:不挑战最优挑战脑洞最大也好
搜索更多相关主题的帖子: 最大 挑战 代码 游戏 备注 
2020-04-13 20:56
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:5 
<< 左移位    , 计算这张纸的最小边长肯定很有意思。
2020-04-13 21:05
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用fulltimelink在2020-4-13 21:05:07的发言:

<< 左移位    , 计算这张纸的最小边长肯定很有意思。

可以但显然不是最苛刻的做法
穷极一切可能的缩进循环次数

https://zh.
2020-04-13 21:07
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:5 
(int)(log(88484300)/log(2))+1

能编个毛线衣吗?
2020-04-13 21:17
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:0 
回复 3楼 lin5161678
嗯 ,对,再加上分治,应该会好些
2020-04-13 21:17
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用wmf2014在2020-4-13 21:17:37的发言:

(int)(log(88484300)/log(2))+1

估计你的意思其实是 (int)log2(88484300) + 1
是对的 但表达式写得繁琐了点

https://zh.
2020-04-13 21:20
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用fulltimelink在2020-4-13 21:17:56的发言:

嗯 ,对,再加上分治,应该会好些

不是很明白你所说的分治
能详细解说一下吗?

https://zh.
2020-04-13 21:21
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
log2编译不成功。

能编个毛线衣吗?
2020-04-13 21:22
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:0 
回复 7楼 lin5161678
就是桶排序用的那个 分治思想,  折半或者放大
2020-04-13 21:23
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
当然也可以右移到负数,循环5次,结果是32-5即可。
for(i=88484300;i>0;j++,i*=2);
printf("%d\n",32-j);
还有一个快速去2位底的对数函数,这是网上^v的
int FastLog2(int x)
{
    float fx;
    unsigned long ix, exp;

    fx = (float)x;
    ix = *(unsigned long*)&fx;
    exp = (ix >> 23) & 0xFF;

    return exp - 127;
}
收到的鲜花
  • lin51616782020-04-13 21:39 送鲜花  20朵   附言:一百分一百分

能编个毛线衣吗?
2020-04-13 21:27
快速回复:[还是代码游戏]对折纸
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017268 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved