Para organizar melhor os códigos que foram feitos para o
Code Constest da Mega Sena criei este novo post.
Alguns desses códigos não respeitam a regra da unidade léxica da linha, mas eles são tão criativos que quem se importa? Se vocês se importarem eu tiro.
Uma Linha:Bernado Rufino fez em
RubyArray.new(100000){rand(60)+1}.inject(Hash.new(0)){|hash, i| hash if hash[i] += 1}.invert.sort.reverse[0..6].each{|t, n| puts "#{n}repeated #{t} times"}
Walter Cruz fez em
Pythonx = [item for item in sorted([(k, len(list(g))) for k, g in groupby(sorted([randrange(1,61) for item in xrange(0,100000)]))],key=itemgetter(1),reverse=True)][:6]rint(x)
Diogo Carrion fez em
JavaScriptfor (var i, array = new Array(), j = 0; j < i =" Math.round(59" j ="=">
Rafael fez duas em C++
int main() { for(int freq[] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60},i = 0; i == 100000 ? printf("%d %d %d %d %d %d\n", freq[59]%100,freq[58]%100, freq[57]%100, freq[56]%100, freq[55]%100,freq[54]%100)*0 : 1;sort(freq, freq+sizeof(freq)/sizeof(int)), i++,freq[rand()%60]+=100); }
int main() {for(vector<> v(60,0),i(0,0); i[0] == 100060 ? printf("%d %d %d %d %d %d\n", v[59]%70, v[58]%70, v[57]%70, v[5 6]%70, v[55]%70, v[54]%70)*0 : 1; v[i[0] <>
Rodrigo Fenrrir fez Python
sorted([ (x.count(k),k) for x in [[ random.randint(1,60) for z in xrange(100000) ]] for k in xrange(1,61) ], reverse=True)[:6]
Rodrigo(deixou comentário) fez em Perl
for (1..100001) { ($_ == 100001) ? print join(" ", (sort { $h{$b} <=> $h{$a} } keys %h)[0..5]) . "\n": $h{int(rand()*60+1)}++ }
Duas Linhas:Náiron J. C. G fez em
JavaScriptfor(var i,ra=new Array(),j=0 ; j<10000 i="Math.round(59*Math.random())+1,ra[i]=">
Três Linhas:ZehOliveira fez em
IOh := Map;
100000 repeat(if(h hasKey(n := Random value(1, 60) round asString), h atPut(n, h at(n)+1), h atPut(n, 1)))
h asList sortBy(block(f, s, f at(1) > s at(1))) slice(0, 6) foreach(k, writeln(k at(0), " --> ", k at(1)))
O
Daniel Martins fez em
Groovy e em
SmallTalkdef hist = [:], v
100000.times{hist[v = 1 + Math.random() * 60 as int] = !hist[v] ? 1 : hist[v] + 1}
println hist.keySet().toList().sort{-hist[it]}[0..5].join(‘,’)
| s |
s := ((OrderedCollection withAll: ((1 to: 100000) collect: [:each | 60 atRandom])) groupBy: [:each | each] having: [:each | true]) asSortedCollection: [:a :b | b size <>