- 浏览: 444048 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (158)
- J2SE (15)
- c/c++ (17)
- linux & ubuntu (20)
- js (18)
- algorithm (21)
- android (1)
- software (3)
- svn (1)
- db (6)
- other (19)
- css (5)
- go (1)
- html 5 (3)
- computer science (1)
- php (3)
- 创业 (8)
- EJB & jboss (1)
- TDD (1)
- jsp & servlet (2)
- http, tcp & ip (2)
- hibernate (1)
- json (1)
- 乐 (2)
- ps (2)
- netbeans (1)
- extjs (2)
- eclipse (4)
- 项目管理 (1)
- varnish (2)
- study abroad (1)
- python (1)
- erlang (1)
- math (1)
- shell (1)
- assembly (4)
- lucene (1)
- web (1)
- http (1)
- tcp & ip (1)
最新评论
-
yiguxianyun:
...
css li 不换行 -
stdayong:
...
netbeans 中使用 maven -
程序猿_星:
为啥会中文乱码啊
servlet 以 gzip 格式返回数据 -
huanhuan519:
感谢分享~
gdb 调试工具 -
heyl1234:
写过些js,对css还不熟。谢谢~
css li 不换行
random select
problem:
select m number from 0 - (n-1) randomly,
------
solution 1
for each number in 0 - (n-1), in increasing order, generate a random number x, using "(x%remain) < to_select" to decide will the number be choose,
until m number is choosen,
time:
o(n), when n is small, this is quick, but when n is very big, this will be very slow,
------
solution 2
use set to store choosen number, until enough,
time:
o(m*log(m))
space:
o(m)
disadvangate:
when n & m is quite closer, and n is big, this might be slow,
when m is big, will need a lot memory,
------
solution 3
init a n length array in increasing order,
mix the order of first m elements in original array,
then sort the first m elements,
then use the first m elements,
time:
o(n+m*log(m))
space:
o(n)
------
solution 4
base on solution 3,
don't init a n length array, only use a map to store first 5 m elements, and the elements that has been choose for swap with,
time:
o(m*log(m))
space:
o(m)
------
reverse select
if m*2 > n, we can choose to select n-m elements, and exclude them, the remain is m elements,
------
code:
/* @authur kuchaguangjie@gmail.com */ /** * problem: select m number from 0 - (n-1) randomly, */ #include <stdio.h> #include <stdlib.h> /** * solution 1: for each number in 0 - (n-1), in increasing order, generate a random number x, using "(x%remain) < to_select" to decide will the number be choose,until m number is choosen, * time: O(n), when n is small, this is quick, but when n is very big, this will be very slow, */ void random_m_n(const int m, const int n) { int remain = n,to_select = m,i=0; while(to_select>0) { if(rand()%remain<to_select) { printf("%d,",i); to_select--; } remain--; i++; } printf("\n"); } /** * swap 2 int value,by pointer, */ void swap(int *a,int *b) { int c = *a; *a = *b; *b = c; } /** * compare function for int */ int int_cmp(int *a,int *b) { return *a-*b; } /** * solution 2: init a n length array in increasing order, mix the order of first m elements in original array, then sort the first m elements, then use the first m elements, * time: o(n+m*log(m)) * space: o(n) */ void random_m_n_2(const int m, const int n) { int arr[n],i,swp,x; for(i=0;i<n;i++) { arr[i] = i; } for(i=0;i<m;i++) { x = rand()%n; swap(arr+i,arr+x); } qsort(arr,m,4,int_cmp); for(i=0;i<m;i++) { printf("%d,",arr[i]); } printf("\n"); } int main(){ random_m_n(30,2000); random_m_n(0,0); random_m_n(20,20); random_m_n_2(30,2000); random_m_n_2(0,0); random_m_n_2(20,20); }
------
发表评论
-
c - linkedlist
2012-05-10 14:52 1093c - linkedlist store ordere ... -
c - word counter (binary-tree)
2012-05-09 14:17 1731c - word counter (binary-tree) ... -
c - pointer is also pass by value
2012-05-09 14:13 972c - pointer is also pass by ... -
find palindromic-prime in pi
2012-04-26 18:32 1857find palindromic-prime in pi ... -
c #define
2012-04-08 13:29 2110c #define macro substitu ... -
c static
2012-04-04 21:59 1243c static static external ... -
c extern
2012-04-04 21:53 1160c extern extern, used to de ... -
int to string by specified base
2012-04-03 22:15 1087int to string by specified base ... -
sparse data structure - matrix
2011-08-18 20:03 1090sparse data structure sp ... -
max sub_sequence - c
2011-08-10 01:02 1080max sub_sequence - c /* ... -
binary search - c
2011-08-06 12:07 1098binary search - c (simple) ... -
bit_array - simple use
2011-05-28 23:47 1010bit array,use less memory to de ... -
linux c udp
2011-04-01 18:02 2100linux 下可用 c 进行 udp 通信,使用 server ... -
linux c tcp
2011-04-01 18:00 3066linux 下可用 c 进行 tcp 通信,使用 server ... -
gdb 调试工具
2011-02-21 17:20 3324gdb 调试工具 gdb 概 ... -
linkedlist - java 简单实现
2011-02-11 21:29 1603linked list 链表, - ... -
queue (用 java 简单实现)
2011-02-03 01:45 4056queue ------ 结构 线性存 ... -
Medians and Order Statistics (次序统计)
2011-01-03 14:36 2836Medians and Order Statistics - ... -
counting sort
2011-01-02 20:36 1571counting sort ------ counting ... -
quick sort
2011-01-01 20:26 1196quicksort ------ quicksort ove ...
相关推荐
3DMAX随机选择神器RandomSelect插件,一键随机选择,支持对象、子对象(顶点、边、边界、多边形和元素)多种类型的随机选择。
该插件名为"randomSelect",版本号为0.1.0。安装插件后,用户可以在3ds Max的命令面板中找到它。操作步骤如下: 1. **选择对象**:首先,你需要在3ds Max的工作视图中选择一组对象。这可以通过单击、框选或使用其他...
"random_select.rar"是一个专为此目的设计的软件,它利用了Qt5.12框架和Visual Studio 2017(VS17)编译器,提供了简单易用的界面和功能,使得点名过程既高效又有趣。 Qt5是Qt开发框架的一个重要版本,由The Qt ...
<select id="randomSelect"> <option value="option1">Option 1 <option value="option2">Option 2 <option value="option3">Option 3 <!-- 更多选项... --> </select> ``` 接着,我们要实现随机选中项,需要...
在提供的`RandomSelect`项目中,我们可以看到这些优化策略是如何被实现和测试的。`RandomSelect.sln`是Visual Studio解决方案文件,包含了源代码和项目配置。通过打开并运行这个项目,我们可以查看代码实现,学习...
这个类可能包含方法如“随机选择”(RandomSelect),用于生成一个随机索引,对应名单中的一个名字。 接着,数据存储是一个关键问题。点名软件通常需要管理一个姓名列表。在C#中,我们可以使用数组、列表(List)...
其次,"RandomSelect.msi"是Microsoft Installer(MSI)文件,这是Windows平台上的一个标准安装包格式。MSI文件包含有关软件的元数据,如文件、注册表项、依赖关系等,以便系统能够自动化安装过程。"RandomSelect"很...
- 方法:`RandomSelect`: 实现随机选择获胜者的逻辑。 **第三方组件** 描述中提到的“第三方组件”,可能是为了增强用户界面或者提供特定功能。例如,`TOpenDialog`用于打开文件,让用户导入参与者的列表;`...
"randomselect.m"文件可能实现了数据集的随机选取功能,这对于训练和测试过程中的数据划分很重要。随机选择部分样本作为训练集,其余作为测试集,可以避免过拟合,并更准确地评估模型的泛化能力。 "data/lms_samp....
- "reflectance_randomselect.pro"可能是处理反射率数据的脚本,它可能包含了随机选择或采样数据集的逻辑,这对于处理大型遥感图像非常有用。 综上所述,这个程序包提供了从标准日期到DOY的转换工具,以及用于...
这样设置,人物就会被移动到第8格了,很简单吧,对了,如果打上randomselect就有随机选人物的功能了, 加入背景的方法: 把背景的SFF和DEF文件放到stages里 同样打开data里select.def的文件,在 [Extrastages]...
例如,可能有一个startDraw()函数用于启动抽奖,一个stopDraw()函数用于停止并展示结果,以及一个randomSelect()函数用于生成随机中奖号码。 在实际运行中,jQuery的事件监听功能使得用户与页面的交互变得简单。...
SELECT ROUND(DBMS_RANDOM.VALUE(1, 100)) FROM DUAL; ``` 这里的`ROUND`函数用于将浮点数转换为整数。 `DBMS_RANDOM.STRING`函数则用于生成指定长度的随机字符串。它提供了两种模式,'P'(字母数字字符,小写优先...
2. **随机选择**: 实现一个方法,例如`select(int n)`,它接受一个整数参数n,表示要从列表中选择的项目数量。这个方法将返回一个新的列表,其中包含了原始列表中随机选择的n个不重复的元素。 3. **种子设置**: ...
.Select(s => s[random.Next(s.Length)]).ToArray()); } ``` 总的来说,`VS2005`中的C# `Random`类为开发者提供了简单而强大的随机数生成能力。通过理解其工作原理和使用方式,我们可以编写出更加灵活、高效的代码...
[count]返回 count 个范围为 min 到 max-1 的随机整数随机选择工具/t random select 兰州拉面 沙县小吃 黄山菜饭骨头汤...从空格分割的选项中随机选择一个UUID/t random uuid生成一个 v4 uuid/t random uuid 1生成一...
SELECT DBMS_RANDOM.VALUE FROM dual; ``` 这将返回一个随机数。 此外,DUAL虚表还可以用来获取序列号,例如: ```sql SELECT your_sequence.NEXTVAL FROM dual; ``` 这将返回下一个序列号。 在DUAL虚表中,我们还...
随机森林(Random Forest)是一种集成学习方法,常用于分类和回归任务,同时也广泛应用于特征选择。在本场景中,我们探讨的是如何利用Python中的RandomForest实现特征选择的过程。 首先,特征选择是机器学习预处理...
在提供的代码中,实现了一个名为`RandomSelect`的类,该类使用了快速选择算法(Quickselect),这是一种基于快速排序思想的算法,它可以在平均情况下达到线性时间复杂度。快速选择算法的核心在于分治策略,通过一次...