Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
Don't ask to ask, just ask
 
PerlMonks  

Re: Lookahead algorithm for IP subroutine

by jeffa (Bishop)
on May 11, 2005 at 12:31 UTC ( [id://456065]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to Lookahead algorithm for IP subroutine

This was originally on my scratchpad, it is posted here simply for TIMTOWTDI. My idea is to read through the entire array and place consecutive integers into their own "buckets." Keep pushing the integers if the next integer is consecutive into another array (which is stored in an outer array), and start a new array when no longer consecutive. Then, (and this was inspired by some of dragonchild's code) simply sort that 2-d array based on the size if the array's it contains. The first array (element) contains the largest amount of consecutive integers.

use strict; use warnings; use Data::Dumper; my @proximity = (1..5, 8..10, 15..30, 35..40); my @bucket; my $j = 0; for my $k (0 .. $#array) { if ($proximity[$k] == $proximity[$k+1] - 1) { push @{ $bucket[$j] }, $proximity[$k]; } else { $j++; } } my @ip = (sort { $#$b <=> $#$a } @bucket)[0]; print Dumper \@ip;
Your Milleage Will Vary, naturally ... but this is a fairly easy to understand solution, if not a bit memory intensive.

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://456065]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.