webForumDet fria alternativet

Omöjliga möjligt?

Programmering

82 svar · 3 876 visningar · startad av Dano

Medlem sedan juni 200335 inlägg
Frågan#1

Hej.

Jag har kommit på 1 sätt att minimera söktiden i arrayer till 0.
jag provade och la upp 15000 arrayer med slumpvisa nummer i.
Och gjorde en sökmotor på dessa nummer.
Om man bara gör en "for loop" och scannar igenom tills man hittar det sökta numret så tar det cirkus 15 sek. Men med min metod är man nere i 0 sek. Och det kvittar också hur många arrayer det är, jag kan lägga upp 1 miljard arrayer och söktiden blir ändå 0. Visst är det fantastikt. Därför undrar jag om detta någonsin har gjorts tidigare?, eller är jag den förste , :e :e :e *hoppas hoppas* . Känner ni till någon metod att få 0 i söktid oavsett antal arayer?.
:birp

Medlem sedan nov. 20017 144 inlägg
#2

Det är bara att grattulera. :birp
Då slår du ju google...det luktar mygel.

Medlem sedan juni 200335 inlägg
#3

Nej det är inget mygel, jag lovar!!!!!!.

AAhh, känns så skönt allltså, kanske man ska slå sig in på databasarean snart när jag fixat till allt och så. Tänk vilken snabbhett alltså!. Tyvärr är enda nackdelen är att metoden tar väldigt mycket minne, men det är också enda nackdelen.

Medlem sedan feb. 20002 300 inlägg
#4

För det första förstår jag inte vad det har med webutveckling att göra och för det andra skulle jag gärna vilja se en O(0) algoritm...... :OO

Medlem sedan dec. 19992 555 inlägg
#5

Luktar nobellpris. :stud

Algoritmer för att snabba upp sökningar finns det gott om. Men någon som gör att det inte tar någon tid alls har jag aldrig sett (och tvivlar på att jag någonsin kommer att se heller). Skulle vilja påstå att det är teoretiskt omöjligt med den matematiska kunskap vi har idag. :)

Medlem sedan juni 200335 inlägg
#6

Tackaaaarrrr :). Jepp det är lite matematik inblandat. men just hur jag gjort det kommer jag inte avslöja..... ännu. men jag skulle hemskt gärna vilja visa er ett exempel. men än är det på experiment stadiet, lyckades först i natt med det. men det kommer det kommer. men det får bli i kompilerad kod då i så fall så ni inte tjuvkikar ;) , eller jag kanske kan ha en presentation hemma hos mig. ja vi får se. än återstår det mycket arbete.

kanske nån kan lägga över detta i rätt forumtråd, jag vet, jag kollade inte så noga var jag postade det, var så uppspelt i natt :) :) :) :)

Medlem sedan nov. 200013 890 inlägg
#7

Tyvärr är enda nackdelen är att metoden tar väldigt mycket minne

Hur kan metoden uppta datorns minne när sökningen inte tar någon tid?
Alltså - när (under den ickeexisterande söktiden) kräver metoden minnesåtgång?

kanske nån kan lägga över detta i rätt forumtråd

Vart tycker du att tråden ska flyttas?

Medlem sedan aug. 20003 575 inlägg
#8

Låter intressant.

Fast vad skrev du.
Du la upp en massa arrayer 15000 stycken för att vara exakt.
Och sedan slumpade du ut nummer ? Och skulle sedan hitta dom numren eller ?

Medlem sedan mars 20007 896 inlägg
#9

Det låte ju [för] fantastiskt, men är det så bra som du påstår så skulle jag hålla koden någonstans och ta mycket betalt för den. ;)

Grattis! :)

Medlem sedan juni 200335 inlägg
#10

om jag förklarar så avslöjar jag hur jag gjort. :(
Det kanske låter underligt. Det är en paradox. Men det funkar.
Ni får lugna er lite, jag berättar i sinom tid. hur snabbt är det snabbaste man kan söka i arrayer hittintills?, i jämförelse då?.
Vet ni?. Jag har ingen koll alls.

Medlem sedan juni 200335 inlägg
#11

Jepp jag tillverkade 15000 arrayer, eller struct-array för att vara exakt, eftersom varje array har 2 värden, ett med ett slumpvis nummer och ett med lite text som meddelar att den hittat rätt. Och gjorde en sökmotor på dessa nummer. Och så slår man in ett nummer så letar den upp vilken array det är som har det matchande numret. Och i normala fall när man gör använder en "for loop" och en "if sats" för att söka igenom alla 15000 arrayerna så tar det flera sekunder, men med min metod så är man nere i noll.

Medlem sedan feb. 20002 300 inlägg
#12

Du är medveten om att det strider mot... Öhh.. Ja.. Matematiken, naturlagarna..

Vi tar det lugnt från början nu.

Du har skapat 15 000 arrayer som har ett antal strukturer som i sin tur innehåller två värden: ett heltal och en sträng?

Dvs:
Array 1: [(42, "paraply"), (54, "lingonskog"), (743, "foo")]
Array 2: [(23, "väderleksrapport"), (754, "hatahaskell")]

.
.
.

Array 15 000: [ ... ]

Du kan nu söka efter ett tal i dessa 15 000 arrayer och på 0 sekunder ( :OO ) hitta rätt? Utveckla gärna. Det ska bli mycket intressant. ;)

Medlem sedan juni 200335 inlägg
#13

:) , helt korrekt, det är precis så det ser ut.
såhär tex:

struct test{
int nummer;
string text;
};

test structen[15000];

structen[0].nummer=234342;
structen[0].text="slabbeduska";

structen[1].nummer=5765;
structen[1].text="toalett";

osv osv osv 15000........

:birp

Medlem sedan juni 20022 599 inlägg
#14

Behandlar du din slumparray på nåt sätt innan du börjar din sökning? Typ sorterar den eller lägger över hela klabbet i nån Hashtable?

Om ja: Är tiden det tar inräknat i de 0 sekunderna?

Medlem sedan juni 20008 205 inlägg
#15

Måste nog erkänna att även jag är aningens skeptisk...

Dano skrev:

Tyvärr är enda nackdelen är att metoden tar väldigt mycket minne, men det är också enda nackdelen.

Någon uppskattning på hur denna minnesmängd förhåller sig till hur mycket data du söker genom? Om minnesmängden växer exponentiellt eller liknande är det fullkomligt meningslöst att använda algoritmen, även om den så skulle ta mindre än -1 sekund.

Dano skrev:

men jag skulle hemskt gärna vilja visa er ett exempel. men än är det på experiment stadiet, lyckades först i natt med det. men det kommer det kommer. men det får bli i kompilerad kod då i så fall så ni inte tjuvkikar

Gör det, och utforma programmet så att vi kan förse det med våra egna listor på ord/heltal. Förresten, måste talen vara unika?

Web-Tor skrev:

Vart tycker du att tråden ska flyttas?

Åt "Programmering - Övrigt" till låter väl lämpligt?

Medlem sedan apr. 20003 174 inlägg
#16

Flyttas från Webbutveckling - Övrigt

mvh Palle
Moderator webForum

Medlem sedan juni 200335 inlägg
#17

Någon uppskattning på hur denna minnesmängd förhåller sig till hur mycket data du söker genom? Om minnesmängden växer exponentiellt eller liknande är det fullkomligt meningslöst att använda algoritmen, även om den så skulle ta mindre än -1 sekund.

minnesmängden är konstant hela tiden hela vägen från det man startar och till man avslutar, den ökar inte vid sökning.

Medlem sedan juni 200010 432 inlägg
#18

Det enda du gör är ju att du parar ihop en text med ett tal. Du kan ju omöjligt låta algoritmen leta efter en sträng utan att det åtgår nån form av tid. För i begreppet 'leta' ingår det att du jämför strängen med söksträngen, eller menar du att man vet med sig att nummer 555 motsvarar 'haskell_är_roligt_om_man_ger_fan_i_grafik'. Isf är det ingen maskinell 'sökning' överhuvudtaget och alla dina jämförelser med etablerade metoder faller pladask ;)

Vidare kan du omöjligt få plats med alla dessa adresser i cacheminnet för cpu:n, så det lär bli en del tidsåtgång för denna att leta rätt på rätt minnesblock, dock under 1 sekund. Däremot kan det i det fallet ändå bli över en sekund iom att operativsystemet knappast låter ditt program köra ostört hela tiden det tar att ladda in rätt block. Men det beror ju isf mer på operativet än din ihop-parning av värden med strängar.

Medlem sedan juni 20008 205 inlägg
#19

Dano skrev:

minnesmängden är konstant hela tiden hela vägen från det man startar och till man avslutar, den ökar inte vid sökning.

Vad är det då som kräver en massa minne, om jag får fråga?

Fram med en kompilerad version, alt. en serverbaserad version som kan ta emot en godtycklig indatafil, sen övertygar du mig.

Medlem sedan sep. 20005 700 inlägg
#20

Även jag är väldigt skeptisk till detta. Konstant söktid?
Säger som föregående talare, fram med en kompilerad version :)

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)