这个问题的代码怎么写

问题描述

一个商店有100件衣服每件衣服上面都标有1到12的号码每次最多取4件衣服且取的号码不能重复多少次能够取完写出这个代码

解决方案

解决方案二:
你这个问题就有bug吧?1-12的号码是随机的?如果是随机的怎么可能保证每次都能取完?比如现在运气很糟糕100件的随机号码都是12号每次又不能取重复的你一次都取不了
解决方案三:
引用1楼crystal_lz的回复:

你这个问题就有bug吧?1-12的号码是随机的?如果是随机的怎么可能保证每次都能取完?比如现在运气很糟糕100件的随机号码都是12号每次又不能取重复的你一次都取不了

哦哦看错看成了每次取4件
解决方案四:
我的思路吧就是先把有重复的赛选出来比如1号*47号*99号*65号*24。。。然后竖着轮询的取这样次数就限制在最少了
解决方案五:
每次取4件,共25次取完12取4的组合共495种,如果还不能满足需要,则无解可以先数学推导一下
解决方案六:
最好的情况是100/4,要用25次,最坏的情况是这100件衣服都是同一个号码,要用100次,具体说来就是,把相同的号码排成组,比如5#:23个,7#20个,9#18个,等等,每次从相同的号码里各取一个,优先取个数最多的,优先级递减,直到有一个号码的所有相同的都被取完了,再换一个有相同号的来取,这样看来有两种情况:一是相同号码有最多的不大于25个,那么每次都从这个号码里选一个,当这个号码在第25次被选完时,其他号码也一定被选完了,所以这种情况一共要25次。二是相同的号码最多的大于25个,那么所需次数就是这个号码的个数了。也就是所需次数完全取决于相同号码数目最多的一个号。不知道我说的对不对,清不清楚,对你有没有帮助。
解决方案七:
3,5楼思路一样。+1谁来写代码?
解决方案八:
且取的号码不能重复是指一次取出中的号码不重复,还是每次取出的号码不重复?
解决方案九:
写了下,不知道对不对,没时间验证了。publicclassGroup{publicstringCardKey;//号码publicintCardCount;//该号码对应的数量}publicstringCreateStr(intMinIndex,intMaxIndex,intCardCount,intMax_Once){//模拟100个号牌List<int>OriginalCard=newList<int>();//存放返回的字符串,以|分隔开StringBuildermySB=newStringBuilder();//保证至少有一个MinIndex到MaxIndex的值for(inti=MinIndex;i<=MaxIndex;i++){OriginalCard.Add(i);}RandomtheRan=newRandom();for(inti=1;i<=CardCount-(MaxIndex-MinIndex+1);i++)//MaxIndex-MinIndex+1是上面已经加入的数目{OriginalCard.Add(theRan.Next(MinIndex,MaxIndex));}OriginalCard.Sort();//升序排序//建立各分组,号码以及对应的数量List<Group>theGroup=newList<Group>();for(inti=MinIndex;i<=MaxIndex;i++){GrouptempGroup=newGroup();tempGroup.CardKey=i.ToString();tempGroup.CardCount=OriginalCard.LastIndexOf(i)-OriginalCard.IndexOf(i)+1;theGroup.Add(tempGroup);}//开始取号intStart_Of_theGroup;while(theGroup.Count>0){Start_Of_theGroup=0;//从theGroup第一元素开始取for(inti=0;i<((Max_Once<=theGroup.Count)?Max_Once:theGroup.Count);i++){if(i==0)//一次取出的号码间用","分开{mySB.Append(theGroup[Start_Of_theGroup].CardKey);}else{mySB.Append(","+theGroup[Start_Of_theGroup].CardKey);}if(--theGroup[Start_Of_theGroup].CardCount==0)//该组完了,就从list里删除{theGroup.RemoveAt(Start_Of_theGroup);Start_Of_theGroup--;}Start_Of_theGroup++;}mySB.Append("|");}returnmySB.ToString();}

调用string[]str=CreateStr(1,12,100,4).Split('|');foreach(stringsinstr){richTextBox1.Text+=s+"rn";}

解决方案十:
大致思路:随机产生100个号码,放到OriginalCard,并升序排序分组,一个组放到Group的一个实例里,一个字段放号码,一个放数量;所有分组都放到theGroup这个list里在theGroup里取号,当发现theGroup里的元素数量为0,也就是CardCount==0时,删除这个元素,以减小链表长度;另一种方式是不删除元素,用游标指示取号起始位置,不知道哪种效率更高,还请大牛们分析下,改进下希望满足楼主需求
解决方案十一:
12个里面取4个,并4个不相同,应该是12*11*10*9=11880组合呀。25次是定死了。只能说每次的组合可能是什么。。。

时间: 2024-09-30 03:17:59

这个问题的代码怎么写的相关文章

sql-ASP读取SQL数据表 生成多记录JSON 具体代码如何写 求教大神

问题描述 ASP读取SQL数据表 生成多记录JSON 具体代码如何写 求教大神 数据表是user 主键是m_Name <%response.ContentType=""text/json"" response.write request(""jsoncallback"")%>([{""m_Name"":""*依旧""n_Name&quo

java ee-请问javaee语言中如何用eclipse判断读取的邮箱的有效性?代码怎么写?

问题描述 请问javaee语言中如何用eclipse判断读取的邮箱的有效性?代码怎么写? 请问javaee语言中如何用eclipse判断读取的邮箱的有效性?代码怎么写? 解决方案 http://blog.sina.com.cn/s/blog_4b5bc011010156bm.html 解决方案二: 直接用正则表达式,,判定是否符合格式要求就行了 解决方案三: 具体怎么做?有没有案列 解决方案四: 不是自己写个正则表达式?

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个(关于这点稍后会进行展开)文件构建全部UI.应该使用哪种方式来制作UI已经是iOS开发中

新人的编程习惯与原则:代码是写给人看的

编程规范的目的是让代码更容易阅读,更容易维护,"代码是写给人看的"这个观点应该是写代码的基本原则. 1.命名规则:最好变量命名长度为6-15个字母之间,明确地表达出每个变量的意思,不要使用歧义单词或者生僻单词,方法命名遵循同样的规则,最好用动词表示,譬如Set开头表示设置.Match表示匹配等 2.方法长度:尽量使用短的方法体,一个方法体里面的代码行最好不要超过80行,超过就应该考虑把里面独立的内容提取放到另一个方法里面(也就是所谓的重构) 3.参数个数:参数个数不要太多,如果超过7个

JAVA 中一个字符串s ,有36位取前24位,代码怎么写?

问题描述 JAVA 中一个字符串s ,有36位取前24位,代码怎么写? 求解..JAVA 中 一个字符串s ,有36位取前24位,代码怎么写? 解决方案 s.substring(0 24) 解决方案二: s = s.subString(s 24); 解决方案三: s.substring(024); substring()方法包头不包尾索引从0开始 解决方案四: s = s.subString(024); substring()方法包头不包尾索引从0开始 解决方案五: s = s.subStrin

这个json安卓上传数据代码怎么写?

问题描述 这个json安卓上传数据代码怎么写? public static void chuanzhi(){Http c = new Http();String params = ""{'name':'test1''pwd':'123''ruid':'test2'}"";Eryptogram eryptogram = new Eryptogram();params = eryptogram.encryptData(params);String d = url + &

vc-VC关于捕获其他程序异常的代码怎么写

问题描述 VC关于捕获其他程序异常的代码怎么写 已有程序A.exe,现在想写B.exe用于捕获A.exe产生的异常 解决方案 相当于实现一个调试器.http://www.cnblogs.com/zplutor/archive/2011/03/04/1971279.html 解决方案二: http://download.csdn.net/download/zhyhchg/8798931 解决方案三: http://blog.csdn.net/z6470975/article/details/722

C语言判断临界矩阵表示的图是否存在回路?请问代码怎么写,是数据结构里面的?

问题描述 C语言判断临界矩阵表示的图是否存在回路?请问代码怎么写,是数据结构里面的? C语言判断临界矩阵表示的图是否存在回路?请问代码怎么写,是数据结构里面的? 解决方案 递归遍历,把找到的节点标记出来,如果遇到遍历的节点已经被标记,就说明有回路.

table-这种表格套这表格的代码怎么写呀 各位大神帮帮忙

问题描述 这种表格套这表格的代码怎么写呀 各位大神帮帮忙 <table > <tr> <td > <input type=""radio"" name=""interface"" value=""<fmt:message key=""commonApprovalFlowExaminationandapProvalInterface.agre

java 中用户名密码验证的代码怎么写?急!!在线等

问题描述 java 中用户名密码验证的代码怎么写?急!!在线等 import java.awt.GridLayout; import java.awt.event.*; import javax.swing.*; import com.sdu.wh.bll.UserQueryBll; import com.sdu.wh.dao.*; import com.sdu.wh.sql.*; public class LoginFrame extends JDialog implements Action