V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  auciou2  ›  全部回复第 5 页 / 共 5 页
回复总数  86
1  2  3  4  5  
2019-03-01 17:17:54 +08:00
回复了 ghostheaven 创建的主题 PHP windows 上的 PHP 开发环境用什么比较好
一直用 XP + MiniApache + php-5.2.8-Win32
至今作为主力开发环境整 10 年。httpd.conf 和 php.ini 备份一下,重装系统后,运行 MiniApache 的 setup.cmd ,约 5 秒钟,一键全自动完成。
让其自动列举出这 66 种组合,存储在数据库里。
60 楼再补充,60 楼的算法,由于只循环了 101*101 次,所以对服务器资源的消耗很小,消耗的时间约为 0.01 秒以内。这样的程序,适合于不太高频访问的程序。

对于高频访问的程序,可以事先建立一个后台页面,让其自动列举出这 66 种组合。
这样,下次在这个页面使用的时候,直接从 66 种组合中随机拿出一组,再将 10 个数随机排列,这样,使用时完全没有了循环程序,程序效率提高了很多。
139 楼再补充,列举出的这 66 种,是设计一段程序,让程序自动列举,每一种的值建立一个数组,再从 1-66 随机拿出一个数组。最后,再将拿到的这 10 个数再随机排列大小。假设这 10 个数不重复,如果考虑排列顺序,这些数的种类非常多,也许是 66 的 9 次方,如果 10 个数可重复,那种种类更多。所以,完全满足了随机的需求。
补充,60 楼的方法,也许不是最简单的,但是能彻底解决楼主的场景需求,不会出现负数,不会出错。
思路是先列举出所有符合条件的 10 个数相加为 100(不考虑排列顺序为 66 种),这时候时候可以不考虑 10 个数的排列顺序,消耗的服务器资源,循环次数仅为 101*101。

最后的 2 步,先随机拿出一个符合条件的 10 个数的组合。再将拿到的组合,再随机排列。这样,就完美解决“随机”数的需求。
如果数字可重复,程序反而复杂一些,但也能实现。
先获得所有的情形:0 ~ 100,共有 101 个数。
假设要求这 10 个数不重复,这 10 个随机数共有:1+2+3+4+5+6+7+8+9+10+11=66 种。(其实不需要统计有多少种)

编写一个循环程序,从 0-100,列举出所有的 10 个不重复的数的组合、与和,循环次数为 101*101。
从这些组合中,让程序自动筛选出所有的和为 100 的(10 个数的)组合。

之后,从这 10 个组合,随机拿出一个组合。
再将这个拿到的组合,再进行随机排列大小。

如果要生成 10 个随机数的和为 200、300,或者 N 个随机数的和为 M,同理。
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6006 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 02:54 · PVG 10:54 · LAX 18:54 · JFK 21:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.