- 浏览: 124347 次
- 性别:
- 来自: 陕西
文章分类
- 全部博客 (90)
- ASP中错误代码解析 (1)
- Javase (32)
- JavaEE (0)
- Hibernate (10)
- Spring (2)
- Struts (1)
- Oracle (3)
- ASP (2)
- JDBC (0)
- JavaEE+Hibernate+Spring+Struts (1)
- MySql (0)
- SQL (6)
- servlet (0)
- JavaScript (4)
- 软件测试 (0)
- 架构分析 (0)
- 面试 (1)
- Flash (0)
- PhotoShop (0)
- 文章 (2)
- Ajax (1)
- JSP (8)
- C# (1)
- PHP (2)
- ASP.NET (0)
- Dreamwerver (0)
- Linux (0)
- 经验技巧 (5)
- C++ (0)
- 每日一个问题总结 (4)
最新评论
-
bb12152205gg:
jsp与servlet的区别
简单 ...
JSP登录验证功能的实现 -
GoodDemo:
JSP登录验证功能的实现 -
leelj:
看看 这里:http://www.iteye.com/topi ...
JAVA每日一题01 -
lpp333:
华为的兄弟吧~~!!
JAVA每日一题01 -
Hooopo:
<div class="quote_title ...
JAVA每日一题01
还是我来继续jythoner的JAVA每日一题吧!最近比较闲哦!希望jythone不要见怪哦!
真是不好意思啊!早上有点忙!呵呵!
题目:一项抽奖程序要求读者从整数1-49之间选择6个不同的数字。编写一个程序来完成这项工作,并生成5组结果。
package com.tengfei.lesson01;
public class Lottery {
public static void main(String[]args) {
int setCount = 5; // Number of sets of lucky numbers.
int setSize = 6; // Number of lucky numbers in the set.
int range = 49; // Assume selecting integers between 1 and range.
int lucky; // Holds a lucky number candidate.
int luckyCount; // Holds count of lucky numbers in a set.
for(int i = 0; i < setCount; i++) {
int lucky1 = 0; // Lucky numbers for the set of 6.
int lucky2 = 0;
int lucky3 = 0;
int lucky4 = 0;
int lucky5 = 0;
int lucky6 = 0;
luckyCount = 0; // Count of numbers found in the current set
while(luckyCount < setSize) {
// Generate a lucky number between 0 and 48 and add 1:
lucky = (int)(range*Math.random()) + 1;
switch(luckyCount) {
case 0: // It is the first one
lucky1 = lucky; // so just store it
luckyCount++; // and increment the count
break;
case 1: // For the second we must
if(lucky != lucky1) { // check that it is different from the first
lucky2 = lucky; // It is, so store it
luckyCount++; // and increment the count
}
break;
case 2: // For the third we check aginst the previous two
if(lucky != lucky1 && lucky != lucky2) {
lucky3 = lucky;
luckyCount++;
}
break;
case 3: // Check against the previous three...
if(lucky != lucky1 && lucky != lucky2 && lucky != lucky3) {
lucky4 = lucky;
luckyCount++;
}
break;
case 4: // Check against the previous four...
if(lucky != lucky1 && lucky != lucky2 && lucky != lucky3 && lucky != lucky4) {
lucky5 = lucky;
luckyCount++;
}
break;
case 5: // Check against the previous five...
if(lucky != lucky1 && lucky != lucky2 && lucky != lucky3 && lucky != lucky4 && lucky != lucky5) {
lucky6 = lucky;
luckyCount++;
}
break;
}
}
System.out.print("\nSet " + (i + 1) + ":"); // Identify the set
System.out.print(" " + lucky1 + " " + lucky2 + " " + lucky3 + // and output the numbers
" " + lucky4 + " " + lucky5 + " " + lucky6);
// If you want to be sure the numbers line up in columns you could use a
// rather more complicated statement here instead of the above:
/*
System.out.print((lucky1>9 ? " " :" ") + lucky1 +
(lucky2>9 ? " " :" ") + lucky2 +
(lucky3>9 ? " " :" ") + lucky3 +
(lucky4>9 ? " " :" ") + lucky4 +
(lucky5>9 ? " " :" ") + lucky5 +
(lucky6>9 ? " " :" ") + lucky6);
*/
// This makes use of the conditional operator to output an extra space
// when a lucky number is a single digit.
}
}
}
评论
不过 ruby 实现 shuffle 就一句 sort_by{rand}
5.times{ p((1..49).sort_by{rand}[1..7]) }
后知后觉的补充:嗯…… 和 QuakeWang 的一样
哇,这个sort_by{rand}[1..7]好强大呀!!呼呼~~
就没有规则,何来犯规?
不好意思,口癖…… 是褒义词…… 譬如我常常说“卡莲萌犯规了”,也是不带规则的
不过 ruby 实现 shuffle 就一句 sort_by{rand}
5.times{ p ((1..49).sort_by{rand}[0..6]) }
就没有规则,何来犯规?
不过 ruby 实现 shuffle 就一句 sort_by{rand}
5.times{ p((1..49).sort_by{rand}[1..7]) }
后知后觉的补充:嗯…… 和 QuakeWang 的一样
import Random import Data.List import Control.Monad shuffle ls@(x:xs) = do elm <- liftM (ls !!) (randomRIO(0 ,length xs)) liftM (elm:) (shuffle$ delete elm ls) shuffle _ = return[] main = sequence [shuffle[1..49] >>= print.take 6 | c <- [1..5]]
import Random import Data.List import Control.Monad randomSelectFrom size ls = randomMove size [] ls where randomMove 0 rs xs = print rs randomMove n rs xs = do idx <- randomRIO (0, length xs - 1) let em = xs !! idx randomMove (n-1) (em:rs) (delete em xs) main = sequence$ replicate 5 (randomSelectFrom 6 [1..49])
Scala:
(1 to 5) foreach { _ => println(List.range(1,50).sort{ (_,_) => Math.random > 0.5}.take(6)) }
Java:
import static java.util.Collections.*; import java.util.*; public class RandomS { public static void main(String[] args){ for(int c = 0; c < 5;c ++){ List<Integer> lst = new ArrayList<Integer>(); for(int n = 1;n <= 49;n ++) lst.add(n); shuffle(lst); System.out.println(lst.subList(0,6)); } } }
5.times do arr=(1..49).to_a p (0..5).inject([]){|result,index| result << arr.delete_at(rand(49-index))} end
result:
[41, 18, 15, 43, 40, 37] [18, 26, 33, 15, 16, 27] [14, 44, 49, 42, 8, 20] [9, 42, 30, 28, 48, 19] [11, 39, 21, 14, 35, 28]
5.times{ p (1..49).to_a.sort_by{rand}[0..5]}
import random def gen(n,a=1,b=49): result = [] while True: tmp = random.randint(a,b) if tmp not in result: result.append(tmp) if len(result) == n: return result if __name__ == "__main__": for i in xrange(5): print gen(6)
btw:为啥javaeye代码标签可以用jython不能用python?
#include <iostream> #include <math.h> #include <time.h> using namespace std; #define MAX 49 #define PUTVALUE 6 int number[MAX]; int putDigit[PUTVALUE]; void init() { for(int i = 0;i < MAX;i++) { number[i] = i+1; } } void _test() { static int t = 0; init(); int gg[100] = {0}; for(int i = 0;i <PUTVALUE;) { int flag = t; srand(time(NULL)); t = rand()%50; while(flag == t) { srand(time(NULL)); t = rand()%50; } //排重 for(int j = 0;j < 50;j++) { while(t == gg[j]) { gg[j] = 0; srand(time(NULL)); t = rand()%50; } } gg[i] = t; putDigit[i] = number[t]; cout<<putDigit[i]<<" "; i++; } cout<<endl; } int main() { for(int j = 0;j < 5;j++){ _test(); cout<<"----------------------"<<endl; for(int i = 0;i < PUTVALUE;i++) { cout<<putDigit[i]<<" "; } cout<<endl; } system("pause"); }
import java.util.Arrays; import java.util.Random; public class Lottery { private Random rand = new Random(); private int[] numbers; public Lottery(int range) { numbers = new int[range]; for(int i=0; i<numbers.length; i++) numbers[i] = i+1; } private void swap(int i, int j) { if(i==j) return; int x = numbers[i]; numbers[i] = numbers[j]; numbers[j] = x; } public int[] randomChoose(int setSize) { int[] rt = new int[setSize]; for(int i=0; i<setSize; i++) { int chosenIndex = rand.nextInt(numbers.length-i); rt[i] = numbers[chosenIndex]; swap(chosenIndex, numbers.length-1-i); } return rt; } public static void main(String[] args) { Lottery l = new Lottery(49); for(int i=0; i<5; i++) System.out.println(Arrays.toString(l.randomChoose(6))); } }
收藏
Java代码
import java.util.Arrays;
import java.util.Random;
public class Lottery {
private Random rand = new Random();
private int[] numbers;
public Lottery(int range) {
numbers = new int[range];
for(int i=0; i<numbers.length; i++)
numbers[i] = i+1;
}
private void swap(int i, int j) {
if(i==j) return;
int x = numbers[i];
numbers[i] = numbers[j];
numbers[j] = x;
}
public int[] randomChoose(int setSize)
{
int[] rt = new int[setSize];
for(int i=0; i<setSize; i++)
{
int chosenIndex = rand.nextInt(numbers.length-i);
rt[i] = numbers[chosenIndex];
swap(chosenIndex, numbers.length-1-i);
}
return rt;
}
public static void main(String[] args) {
Lottery l = new Lottery(49);
for(int i=0; i<5; i++)
System.out.println(Arrays.toString(l.randomChoose(6)));
}
} import java.util.Arrays;
import java.util.Random;
public class Lottery {
private Random rand = new Random();
private int[] numbers;
public Lottery(int range) {
numbers = new int[range];
for(int i=0; i<numbers.length; i++)
numbers[i] = i+1;
}
private void swap(int i, int j) {
if(i==j) return;
int x = numbers[i];
numbers[i] = numbers[j];
numbers[j] = x;
}
public int[] randomChoose(int setSize)
{
int[] rt = new int[setSize];
for(int i=0; i<setSize; i++)
{
int chosenIndex = rand.nextInt(numbers.length-i);
rt[i] = numbers[chosenIndex];
swap(chosenIndex, numbers.length-1-i);
}
return rt;
}
public static void main(String[] args) {
Lottery l = new Lottery(49);
for(int i=0; i<5; i++)
System.out.println(Arrays.toString(l.randomChoose(6)));
}
}
你这种做法很聪明,学习了。。。。。。。
改了下,更傻的版本如下:
module Main where import Random import Data.List main = do f []; f []; f []; f []; f [] where f li |length li == 6 = print li |otherwise = do n <- randomRIO (1::Int, 49) if elem n li then f li else f (n:li)
import java.util.Arrays; import java.util.Random; public class Lottery { private Random rand = new Random(); private int[] numbers; public Lottery(int range) { numbers = new int[range]; for(int i=0; i<numbers.length; i++) numbers[i] = i+1; } private void swap(int i, int j) { if(i==j) return; int x = numbers[i]; numbers[i] = numbers[j]; numbers[j] = x; } public int[] randomChoose(int setSize) { int[] rt = new int[setSize]; for(int i=0; i<setSize; i++) { int chosenIndex = rand.nextInt(numbers.length-i); rt[i] = numbers[chosenIndex]; swap(chosenIndex, numbers.length-1-i); } return rt; } public static void main(String[] args) { Lottery l = new Lottery(49); for(int i=0; i<5; i++) System.out.println(Arrays.toString(l.randomChoose(6))); } }
发表评论
-
JAVA每日一题25
2009-05-06 17:57 1065这段时间太忙了,咋们继续。题目:修改避免覆盖文件的程 ... -
JAVA每日一题24
2009-04-20 15:59 1229最近比较忙,没有很好的做,不好意思各位。 ... -
JAVA每日一题23
2009-04-11 17:34 1072题目:这是一道C语言题,809*??=800*??+9 ... -
JAVA每日一题22
2009-04-09 18:51 1095题目:有两各线程accountant和cashier ... -
JAVA每日一题21
2009-04-08 18:16 1047题目: 在一个文本框中输入网址,然后点击确定按钮读取服 ... -
JAVA每日一题20
2009-04-07 16:46 1076题目: 简单做一个B/S结构的商业应用——购物车。JS ... -
JAVA每日一题19
2009-04-06 17:32 1523题目:编写一个不同界面的风格的显示。 import ... -
JAVA每日一题18
2009-04-05 16:25 1154题目:在很多操作系统中,文件名长度都有限制,所以在文件 ... -
JAVA每日一题17
2009-04-03 07:25 1755题目:使用JAVA编写扫描网站信的代码,呵呵! imp ... -
JAVA每日一题16
2009-04-02 16:51 1288题目:用JAVA做一个控制访问权限的例子。 ... -
JAVA每日一题15
2009-03-31 07:32 1963题目:用JAVA编写扫描网站信息的代码(流的使用和网络的 ... -
JAVA每日一题14
2009-03-30 19:30 1201题目:用JAVA编写一个压缩文件的例子。 packa ... -
JAVA每日一题12
2009-03-25 07:24 1488题目:做一个简单的收发电子邮件的代码。还需各位指教! ... -
JAVA每日一题11
2009-03-23 13:20 1027题目:使用进度条的一个例子。图片自己找一个几个啊! ... -
JAVA每日一题10
2009-03-22 14:03 1100题目:用JAVA做一个数字签名的例子。 packa ... -
JAVA每日一题09
2009-03-21 07:40 977题目:今天实现C/S多线程的一个简单例子。 / ... -
JAVA每日一题08
2009-03-20 07:31 1087今天的题目更有意思啊!好多人会感兴趣的。呵呵! 题目 ... -
JAVA每日一题06
2009-03-18 07:24 2744这个题目感觉有意思,大家分享一下哦. 题目:编写程序利用 ... -
JAVA每日一题05
2009-03-17 07:58 1113题目:定义接口OneToN,在接口中定义方法jisuan(in ... -
Java小技巧:关于Cookie的操作
2009-03-16 14:04 1421测试环境:JDK1.5、Tomcat5.5 1.设置Co ...
相关推荐
【标题】"JAVA每日一题20"是一个关于Java编程的挑战题目,旨在提升开发者对Java语言的理解和应用能力。通常这类题目会涉及到Java的核心概念、语法特性或者常见问题的解决策略。 【描述】虽然描述部分为空,但根据...
Java每日一题20160906,每日一道Java编程题,提高自己
【标题】"JAVA每日一题11"是一个关于Java编程的日常练习问题,可能是从某个技术社区或博客中提取的。通常,这类题目旨在帮助开发者巩固基础,提升技能,或者探讨一些特定的Java编程概念。从提供的信息来看,我们无法...
NULL 博文链接:https://jythoner.iteye.com/blog/344407
标题“JAVA每日一题08”暗示我们今天将探讨与Java编程语言相关的技术问题,可能是某个挑战或难题的解决方案。由于没有提供具体的题目内容,我们可以从更广泛的Java知识角度出发,结合“源码”和“工具”这两个标签来...
根据给定的信息,我们可以归纳出以下几个关键的Java知识点: ### 1. 在屏幕上输出文本 ...这些练习题覆盖了Java语言的基础语法、控制结构以及面向对象编程的基本概念,非常适合初学者进行日常练习。
【标题】:“每日一题20190628_java面试题_”是指一个针对Java程序员的面试问题集合,可能包含各种Java编程语言、框架、设计模式以及系统架构等相关问题,旨在帮助求职者准备面试。 【描述】:“java面试题,参考...
Java面试题-每日一题:String、StringBuffer、StringBuilder的区别
在给定的编程题中,我们需要判断一个字符串是否为回文串。回文串是指正读反读都一样的字符串,例如"madam"或"level"。Java中,我们可以利用String类提供的方法来实现回文串的判断。解题思路是使用两个指针,一个从...
题目中给出了一个类A及其成员变量和方法的定义,询问了哪些调用是错误的,这涉及到对Java成员访问规则的理解。 以上知识点涵盖了Java多线程、序列化、面向对象设计、变量存储、类型转换、运算符优先级、方法存储、...
"Java方向每日一题day17_11月24日编程题答案1" 在本题中,我们需要解决一个火车进站的问题,给定n辆火车的编号,要求计算出所有可能的出站顺序。该问题可以使用栈来解决,因为栈的出栈顺序满足后进先出(Last In ...
在题目中,有几道关于Java语言特性和语法的单选题: 1. 类实例化语句的正确选项是D。 2. 描述错误的Java语言特点选项是C,因为Java是面向对象的语言,而非面向过程。 3. 编译并运行给定的代码`public class Pvf{ ...
本项目为LeetCode每日一题的Java编程语言解答源码,总计包含223个文件,包括202个Java源文件、7个Markdown文件、6个JSON文件、4个JAR包文件以及少量其他类型文件。这些源码旨在帮助开发者通过实践解决LeetCode上的...
【Java编程题解析】 在Java编程中,我们经常会遇到各种挑战性的题目,旨在提升我们的编程能力和算法思维。这里有两个不同的编程题目,让我们一一解析。 ### 题目1:DNA序列链接 - 找到GC比例最大的子串 #### 题目...
Java是一种面向对象的编程语言,其核心特性之一就是封装,这是OOP(面向对象编程)的三大特性之一,另外两个是继承和多态。封装的主要目的是保护数据的安全性,通过限制对类内部成员的直接访问,防止外部代码随意...
整理互联网常见面试题,为春招、校招和社招做准备。如若不能下载,关注公众号“每日技术分享”,可免费下载资源。
干货资源推荐: JVM干货调试视频教程分享 50份优秀Java求职者简历 SpringCloud前后端分离实战项目...本资源整理自互联网,仅供学习交流使用,请勿商用,坚持每日分享一套Java学习资源干货,一起提高,一起进步!!!
LeetCode的每日一题是平台上的一个特色功能,每天会发布一个新的编程题目,涵盖各种难度级别,从基础到进阶,涉及语言包括Java、Python、C++等。这些题目涵盖了数据结构(如数组、链表、栈、队列、树、图等)和算法...
【Java面试题大全-图形图像篇】 在Java面试中,图形图像处理是一个常见的技术领域,涉及到Java AWT(Abstract Window Toolkit)和Swing组件库,以及更高级的JavaFX。这些框架提供了创建用户界面和图形内容的能力。...
本项目"leetcode-java:每日一题leetcode-java版"是针对LeetCode平台的Java解决方案集,旨在帮助Java开发者通过每日解决一个LeetCode题目来提高他们的算法理解和编程能力。 在Java编程语言中,解决问题的关键在于...