If you want a simple number generator for say picking Keno, lotto, or self made contests, here’s just how simple it is to do in Python. I was listening to Linux Outlaws awhile back and they were using a couple of different scripts to generate winners for a contest so why not write one real quick?
#! /usr/bin/python
'''
C. Nichols
'''
import random
def slot_machine(slot_range=(1,100),slots=6):
"""slot_machine(slot_range=(1,100),slots=6) -> tuple(int(slot),int(pick))"""
min,max=slot_range
pool=[num for num in range(min,max+1)]
for slot in range(1,slots+1):
yield slot,random.choice(pool)
# ============================================================================
# Main: # Run two common draws as an example.
# ============================================================================
print 'Typical Kino, with slot number.'
for n in slot_machine(slot_range=(1,80),slots=20):
print n
print '\nOhio "Classic Lotto", showing just the pick.'
for n in slot_machine(slot_range=(1,49),slots=6):
print n[-1]Here’s a another version. Also, I have a iPhone example that will not repeat numbers that you can download here.
#! /usr/bin/python
"""
Author: C. Nichols
Site: https://www.darkartistry.com
Simple randomizer function.
"""
import random
def random_set(limit_picks=3, choices=[1,2,3,4,5,6,7,8], last_picks=[1,5,8]):
"""Picks random items in a list returning a list of the amount you want
and filtering the last set of picks."""
item_count = set()
random.shuffle(choices)
for random_item in choices:
# see if it's already been picked.
if random_item in last_picks: continue
# get a count.
if len(item_count) == limit_picks: break
item_count.add(random_item)
# return the result.
yield random_item
# MAIN: get and print random items from a list...
results = [i for i in random_set()]
print resultsI am learning Objective-C so I decided to create a similar one in XCode. Maybe it can be useful to someone.
// main.m
// NumGenie
//
// Created by Charles Nichols.
#import
#include
NSDictionary * slot_machine (int minRange, int maxRange, int slotCount)
{
NSMutableDictionary *myNumbers = [NSMutableDictionary dictionary];
do
{
int number = (arc4random() % (maxRange - minRange)) + minRange;
[myNumbers setObject:[NSNumber numberWithInt:number]
forKey:[NSNumber numberWithInt:slotCount]];
slotCount--;
} while (slotCount > 0);
return myNumbers;
}
// Main
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// Here's the Keno example in Objective-C
NSDictionary *myDraw = [NSMutableDictionary dictionary];
myDraw = slot_machine(1,80,20);
// Sort our dictionary and print.
NSArray *sortedKeys = [[myDraw allKeys]
sortedArrayUsingSelector: @selector(compare:)];
for (NSString *key in sortedKeys)
NSLog(@"slot=%@ value=%@", key, [myDraw objectForKey:key]);
[pool drain];
return 0;
}