Office中国论坛/Access中国论坛

标题: “文化休克”——再谈“随机安排”事件 [打印本页]

作者: roych    时间: 2011-10-23 23:16
标题: “文化休克”——再谈“随机安排”事件
本帖最后由 roych 于 2011-10-24 02:09 编辑

       据闻,美国人吃牛排,是切一块吃一块的,而欧洲人则是切完后再吃。于是美国人觉得欧洲人很浪费,“切那么多吃得了吗”?而欧洲人则对美国人的吃法有些鄙夷,“有那么猴急吗,切一块就吃一块”?
       据闻,古希腊人认为,只要不断地往地上挖,挖穿之后就能见到中国人,他们是用头顶走路的。
       据闻,丹麦童话作家安徒生每天早上都在屋后的小溪旁吹笛子,他认为,只要笛声足够动听,中国皇帝就会从溪水中钻出来,然后会和他握手。
       …………
       有人把这称为“文化休克”,意思是说,由于文化差异导致我们对别人的习惯理解不一。正如在牛排的吃法上,美国人无法理解欧洲人,欧洲人同样无法理解欧洲人。

       Access也是这样,从不同的方式上思考,同样会得到不同的算法。
       像“随机安排”事件,我们可以先随机排好顺序,再逐个把数据添加到表中,这是ADO的算法。前面已经写了两个例子了,这里不再解释。也可以先随机排序追加到表中,再删除重复部分,再追加剩余数据,多次执行最后两个步骤,从而达到随机顺序不重复的目的。
       这个例子是基于Jacky_C的求助而作(详细请参考:http://www.office-cn.net/thread-106483-1-1.html),希望他能看到。在这里,我还希望大家能够通过不同的思考方式(或者说算法)来加深对Access的理解。

       ——本来可以用更浅显的宏来执行,只是刚接触Access 2010,部分功能不熟悉,只得写执行操作查询的代码。稍稍解释下代码中的循环为什么是4次的问题。我们知道,按随机抽取的几率来计算,每次都有1/6的几率是重复的。因此每次需要删除的大体的记录条数如下:
       253\6=42;42\6=7;7\6=1;1\6=0
       当然,这只是我的一个猜想。如果有兴趣的话,大家可以多增加一些数据来测试下。
       [attach]47058[/attach]
作者: yanghua1900363    时间: 2011-10-24 08:30
谢谢分享
作者: tmtony    时间: 2011-10-24 08:52
有意思,与老汉比肩了,谢谢分享

作者: yanwei82123300    时间: 2011-10-24 10:47
有意思,与老汉比肩了,谢谢分享

作者: hunrybecky    时间: 2016-1-20 17:29
越来越像todaynew 的风格了
作者: fjh    时间: 2016-1-21 13:55
感谢分享




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3