algorithm

Check for valid IMEI

Hi, does somebody knows how to check for a valid IMEI? I have found a function to check on this page: http://www.dotnetfunda.com/articles/article597-imeivalidator-in-vbnet-.aspx But it returns false for valid IMEI's (f.e. 352972024585360). I can validate them online on this page: http://www.numberingplans.com/?page=analysis&sub=im...

How to arrange an array in decreasing order of frequency of each number?

Input : {5, 13, 6, 5, 13, 7, 8, 6, 5} Output : {5, 5, 5, 13, 13, 6, 6, 7, 8} The question is to arrange the numbers in the array in decreasing order of their frequency, preserving the order of their occurrence. If there is a tie, like in this example between 13 and 6, then the number occurring first in the input array would come first...

What's the best general programming book to review basic development concepts?

I'm looking for for a programming book that reviews basic concepts like implementing linked lists, stacks, queues, hash tables, tree traversals, search algorithms, etc. etc. Basically, I'm looking for a review of everything I learned in college but have forgotten. I prefer something written in the last few years that includes at least a ...

Algorithm to generate numerical concept hierarchy

I have a couple of numerical datasets that I need to create a concept hierarchy for. For now, I have been doing this manually by observing the data (and a corresponding linechart). Based on my intuition, I created some acceptable hierarchies. This seems like a task that can be automated. Does anyone know if there is an algorithm to gene...

Finding an element in a cyclic group of prime order

Greetings! How do I check if an element a belongs to a specific cyclic group G of prime order, given the generator? Right now i simply generate all the elements in the group, save them into a container and check if the element is in it. This is the code im currently using to generate all the elements of the group: public HashSet<BigInt...

Looking for a good world map generation algorithm

I'm working on a Civilization-like game and I'm looking for a good algorithm for generating Earth-like world maps. I've experimented with a few alternatives, but haven't hit on a real winner yet. One option is to generate a heightmap using Perlin noise and add water at a level so that about 30% of the world is land. While Perlin noise (...

Draw arrow on line

Hi, I have this code: CGPoint arrowMiddle = CGPointMake((arrowOne.x + arrowTo.x)/2, (arrowOne.y + arrowTo.y)/2); CGPoint arrowLeft = CGPointMake(arrowMiddle.x-40, arrowMiddle.y); CGPoint arrowRight = CGPointMake(arrowMiddle.x, arrowMiddle.y + 40); [arrowPath addLineToScreenPoint:arrowLeft]; [arrowPath addLineToScreenPoint:arrowMiddle...

Python - Is a dictionary slow to find frequency of each character?

I am trying to find a frequency of each symbol in any given text using an algorithm of O(n) complexity. My algorithm looks like: s = len(text) P = 1.0/s freqs = {} for char in text: try: freqs[char]+=P except: freqs[char]=P but I doubt that this dictionary-method is fast enough, because it depends on the ...

What are the CS fundamentals behind package/dependency management?

Often I hear about situations where companies are developing extensable in house software (the dreaded enterprise 'framework') which is supposed to support multiple 'plugins' from diffirent teams. Usually this ends up being a half baked solution that does not really work due to compatibility prolems between addins, or between addins and ...

2D packing with obstacles

Anybody know of an efficient algorithm for moving rectangles in a square which contains obstacles? Rectangles: can rotate can move/teleport must not collide with obstacles (black squares) Obstacles: can't be moved can be added anywhere Goal: when obstacle is added, try to move rectangles so that they don't collide with any of ob...

Algorithm to determine which points should be visible on a map based on zoom

Hi! I'm making a Google Maps-like application for a course at my Uni (not something complex, it should load the map of a city for example, not the whole world). The map can have many layers, including markers (restaurants, hospitals, etc.) The problem is that when you have many points and you zoom out the map it doesn't look right. At th...

Efficient method for finding KNN of all nodes in a KD-Tree

I'm currently attempting to find K Nearest Neighbor of all nodes of a balanced KD-Tree (with K=2). My implementation is a variation of the code from the Wikipedia article and it's decently fast to find KNN of any node O(log N). The problem lies with the fact that I need to find KNN of each node. Coming up with about O(N log N) if I ...

Transformation of a list of positions to a 2D array of positions using functional programming (F#)

How would you make the folowing code functional with the same speed? In general, as an input I have a list of objects containing position coordinates and other stuff and I need to create a 2D array consisting those objects. let m = Matrix.Generic.create 6 6 [] let pos = [(1.3,4.3); (5.6,5.4); (1.5,4.8)] pos |> List.iter (fun (pz,py) ...

Longest acyclic path in a directed unweighted graph

Hello, What algorithm can be used to find the longest acyclic path in a directed unweighted graph? Thanks ...

File Comparison Strategies

I'm searching for strategies one might use to programmatically find files which may be duplicates of each other. Specifically in this case, videos. I'm not looking for exact matches (as nice as that would be in the land of rainbows and sunshine). I'm just looking to collect pairs of video which content might be the same so that a huma...

Question about numbers

it's a task, on which i think during whole day. i have four integer numbers a, b, c, d, and integer x[1,40]. i must write a program, which can find the values of {a,b,c,d}, for which one of following equations is true for any 1<=x<=40 x=a or x=b or x=a+b or x=a+b+c+d or x+a=c+d or x+a+b=c+d or ... x+...

How can I implement the Gale-Shapley stable marriage algorithm in Perl?

Problem statement: We have equal number of men and women. Each man has a preference score toward each woman. So do the woman for each man. Each of the men and women have certain interests. Based on the interest, we calculate the preference scores. So initially, we have an input in a file having x columns. The first column is the person...

Moon / Lunar Phase Algorithm

Does anyone know an algorithm to either calculate the moon phase or age on a given date or find the dates for new/full moons in a given year? Googling tells me the answer is in some Astronomy book, but I don't really want to buy a whole book when I only need a single page. Update: I should have qualified my statement about googling a ...

Random access gzip stream

I'd like to be able to do random access into a gzipped file. I can afford to do some preprocessing on it (say, build some kind of index), provided that the result of the preprocessing is much smaller than the file itself. Any advice? My thoughts were: Hack on an existing gzip implementation and serialize its decompressor state every,...

Polygon packing 2D

Hi! I have problem of packing 2 arbitrary polygons. I.e. we have 2 arbitrary polygons. We are to find such placement of this polygons (we could make rotations and movements), when rectangle, which circumscribes this polygons has minimal area. I know, that this is a NP-complete problem. I want to choose an efficient algorithm for solvin...