Avatar billede Probie Nybegynder
22. februar 2012 - 09:55 Der er 11 kommentarer og
1 løsning

Matematisk hjælp til udregning af placering

Hej eksperten.

jeg sidder med et problem, det skal kunne lade sig gøre at at bestemme nogle forskellige genstandes række følge ved at sætte et tal imellem 1 og 3  i et input felt, men jeg ved ikke hvordan jeg lige skal kringle den med at sørge for at de ikke bliver det samme for det må de ikke være når koden bliver kørt igennem men brugeren må gerne vælge det samme tal så skal det bare laves om til den næst tal.

altså hvis der bliver valgt, 3-2-2 så skal det første element være nr 3 det andet element skal så være nr 1 og det sidste skal være nr 3 men hvis der bliver valgt 1-2-2 så det det være i rækkefølgen 1-2-3 håber i forstår hvad jeg menere ellers må i skrive og få mig til at uddybe mere :)
Avatar billede vagnk Juniormester
22. februar 2012 - 12:24 #1
Jeg kan godt se dit problem hvis man skal "if"e eller "case" sig gennem alle muligheder. Talene 1, 2 og 3 har 27 forskellige kombinationer fra 111, 112, 113, 121 ... 331, 332, 333.

Hvis jeg har forstået dit problem korrekt, mener jeg du har en fejl i din beskrivelse med "det sidste skal være nr 3". Jeg synes logikken sige 2 således at 3-2-2 bliver konverteret til 3-1-2.

Jeg tror jeg ville lave en tabel med alle muligheder som nøgle og den rigtige kombination som værdi - noget i retning af:
conv_arr = array("111" => "123", "112" => "123", "113" => "123" ... "331" => "312", "332" => "312", "333" => "312");

Så samler man felterne som tal eller streng og finder den korrekte værdi, som man derefter adskille til det der er brug for.
Avatar billede Probie Nybegynder
22. februar 2012 - 12:45 #2
hmm det var det jeg frygtede, det er meget kode der skal til for at kan lade sig gøre, men vil bare ikke til at validere på talene så brugeren få en fejl besked, vil heller have systemet retter fejlen, så må lige tænke over det et par dage og se om der ikke kommer en helt vild perfekt løsning til mig, men ellers tak :) du må lige smide et svar også må jeg se om jeg kommer på noget bedere i løbet af de næste par dage. :)
Avatar billede vagnk Juniormester
22. februar 2012 - 13:27 #3
Jeg har et andet forslag (stadig under forudsætning af at betingelsen er at alle tre tal skal være forskellige:

if ($t1 == $t2 || $t1 == $t3 || $t2 == $t3){
  #giv hende en fejlmelding, så hun selv kan rette skidtet.
}
Avatar billede Probie Nybegynder
22. februar 2012 - 13:34 #4
ja det kunne jeg gøre men vil bare heller lave et system hvor der ikke kommer fejl meddelser men istedet et system der selv rettet dem :)
Avatar billede vagnk Juniormester
22. februar 2012 - 14:45 #5
Jeg må indrømme jeg ikke helt forstår hvor det er du ser problemer.
Min ide med tabelopslag kan opgøres til ca. 3 linjer kode til tabel, 1 linje kode til at konvertere indholdet af felterne til en nøgle, 1 linje kode til at konvertere en kombination til en korrekt værdi og til sidst 2-3 linjer kode til at splitte den fundne værdi til videre brug. Med andre ord 5 - 8 linjer kode! Hvor kort skal det være?

Er sandheden at du har problemer med at arbejde med arrays?
Avatar billede timpet Novice
23. februar 2012 - 05:49 #6
Vagnk er det nu ikke grund til at skrue bissen sådan på, probie spørger efter hjælp, hvis ikke vil hjælpe på de betingelser så kan du vel bare lade være?

Problemet som jeg forstår det, er at det er svært at gennemskue den logiske gennemgang af det?
Avatar billede timpet Novice
23. februar 2012 - 05:51 #7
Er det sådan at det altså er 1 2 3 i række følge, men hvor række følgen kan brækkes til 3 1 2 fx? og 2 3 1, så hvis man altid starter med at læse fra 1 tallet så bliver det til 123 ?
Avatar billede vagnk Juniormester
23. februar 2012 - 08:10 #8
@timpet #6
grund til at skrue bissen sådan på, probie spørger efter hjælp, hvis ikke vil hjælpe på de betingelser så kan du vel bare lade være?

Jeg var den første der bød ind med noget, og jeg kommer med 2 forslag probie ikke kan bruge, Hvad mener du så med jeg ikke har forsøgt at hjælpe ham. Jeg synes ærlig talt du er lidt ude i det urimelige, for ikke at sige fornærmende ærinde.

Man må undskylde mig at jeg borer lidt i årsagen til at mine forslag ikke kan bruges.  Hvis probie ikke kan bruge tabelløsningen, kunne årsagen da udmærket være at han skal have lidt mere hjælp i den retning. En anden årsag kunne være at probie endnu ikke har formuleret sit spørgsmål ordentligt - heller ikke det kan vi hjælpe ham med, før han åbner sig lidt. Du selv kommer jo i #7 med et udtryk for at formuleringen mangler noget.
Avatar billede timpet Novice
23. februar 2012 - 14:39 #9
Der er ikke nogen der skriver på nogen forums for at fornærme hindanden, heller ikke mig. Det var netop det jeg prøvede at påpege. Hvis det er tone der bliver lagt hvis man måske ikke lige forstår hvad der bliver skrevet så kan jeg godt forstå der måske er nogen der ikke vender tilbage :)

Jeg ser fine muligheder i dine svar.

Det var nu heller ikke meningen at min besked skulle være fornærmende, jeg synes bare du var lidt hård ved den stakkels bruger.

Jeg er ikke et sekund uenige i at formulering mangler noget, men jeg har selv siddet på den anden side, og det er ikke altid nemt at forklare tekst hvad man mener.

Anyways, ha nu en god dag :)
Avatar billede timpet Novice
23. februar 2012 - 14:44 #10
Hvis mit spørgsmål til dig er den måde du gerne vil have det på så skal du bare lave 3 if cases og spørge til hvor 1 tallet er, udfra det kan du så placere resten.

if ($1 == 1) {
  $rakke = 123
}
if ($2 == 1) {
  $rakke = 312
}
if ($3 == 1) {
  $rakke = 231
}
Avatar billede Probie Nybegynder
27. februar 2012 - 16:11 #11
undskyld jeg har været så meget fraværende og ikke har fået svaret. men mit problem er at jeg ikke gider at skrive hver eneste mulighed der er og hvad "løsningen" skal være ved hver mulighed alt f.eks

1-1-1 => 1-2-3, 1-1-2 => 1-2-3, 1-1-3 => 1-2-3, 1-2-1 => 1-3-2 .... 3-3-2 => 2-3-1, 3-3-3 => 1-2-3.

for probelemmet med denne linje er at der alt i alt er 27 forskkelige lsninger og hvis systemet skal udbygges så og der er 4 tal og 4 muligheder så vil det se sådan ud:

1-1-1-1 => 1-2-3-4, 1-1-1-2 => 1-2-3-4 ....
4-4-4-2 => 2-3-4-1, 4-4-4-3 => 2-3-4-1, 4-4-4-4 => 1-2-3-4

også er der lige pludselig 256 muligheder. :(
Avatar billede Probie Nybegynder
30. april 2012 - 14:01 #12
mit problem blev vidst aldrig løst jeg lukker og slukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester