PDA

Volledige versie bekijken : Programma !!!


Albus
%Europe/Berlin %642 %2006, 16:25
Dag,

Ik weet zeker dat er hier op dit forum een heel deel programmeurs zitten. Kent er iemand (je hoeft geen programmeur te zijn) een programma waarmee je alle mogelijke lettercombinaties van een woord kan berekenen?

Vb: alle mogelijke lettercombinaties van het woord "leo":

leo
oel
eol
elo
ole

Alvast bedankt,
Albus

Koen!
%Europe/Berlin %680 %2006, 17:20
Ik denk dat dit in 'Werk aangeboden' hoort. En je bent 'loe' vergeten. (6 combinaties in totaal) ;)

alexju
%Europe/Berlin %692 %2006, 17:36
nee hij wilt gwn vragen of iemand zo'n programma weet. Niet of iemand het hier wilt maken

ninetynine
%Europe/Berlin %694 %2006, 17:40
Misschien is er iemand die dat zelf kan maken (gratis)? Of met Flash?

Alvast bedankt,
Albus

lol toch wel alexju :D (2de optie :p)

matzo
%Europe/Berlin %701 %2006, 17:50
kijk alles wat 3 letters heeft, heeft 6 combinaties test maar, dus er moet een formule voor zijn. Die is er.
Voor 3 letters is die 3*2*1, voor 4 4*3*2*1, dus even generaliseren, lengte van het woord, maal alle voorgaande getallen. In flash as heb je daarvoor de length van het woord nodig + een for-loop. Met flash help moet je er dan al helemaal geraken.
Of wou je ook echt alle combinaties weten, niet alleen het aantal
//Ps even een vraagje ook
een getal * alle voorgaande getallen is dat niet bijvoorbeeld voor 3, 3 faculteit, oftewel '3!'?

w00
%Europe/Berlin %708 %2006, 18:00
Wil je iets bruteforcen ofzo??

Inelk geval hier heb je een VB source. Als je niet weet wat je er mee moet, jammer voor jou dan :)


Private Sub Command1_Click()
List1.Clear
Debug.Print Mix(Text1.Text)
End Sub


Private Function Mix(Y As String, _
Optional X As String = "") As Long
Dim idx As Long, pos As Long
Static cnt As Long


If Len(X) = 0 Then cnt = 0

pos = Len(Y)
If pos < 2 Then

List1.AddItem X & Y
cnt = cnt + 1
Else

For idx = 1 To pos
Mix Left$(Y, idx - 1) + Right$(Y, pos - idx), _
X + Mid$(Y, idx, 1)
Next
End If
Mix = cnt
End Function

Emveedee
%Europe/Berlin %709 %2006, 18:01
een getal * alle voorgaande getallen is dat niet bijvoorbeeld voor 3, 3 faculteit, oftewel '3!'?

True!

Btw: zon algorithme is niet al te moeilijk volgens mij..

alexju
%Europe/Berlin %717 %2006, 18:13
Wil je iets bruteforcen ofzo??

Inelk geval hier heb je een VB source. Als je niet weet wat je er mee moet, jammer voor jou dan :)


Private Sub Command1_Click()
List1.Clear
Debug.Print Mix(Text1.Text)
End Sub


Private Function Mix(Y As String, _
Optional X As String = "") As Long
Dim idx As Long, pos As Long
Static cnt As Long


If Len(X) = 0 Then cnt = 0

pos = Len(Y)
If pos < 2 Then

List1.AddItem X & Y
cnt = cnt + 1
Else

For idx = 1 To pos
Mix Left$(Y, idx - 1) + Right$(Y, pos - idx), _
X + Mid$(Y, idx, 1)
Next
End If
Mix = cnt
End Function



Dat is gwn een textarea en een knop maken in vb en dan da kopeeren op een button. En het werkt ook met woorden met meer dan 3 letters?


// EDIT: ahja list moet er ook bij :p

w00
%Europe/Berlin %720 %2006, 18:17
Dat is gwn een textarea en een knop maken in vb en dan da kopeeren op een button. En het werkt ook met woorden met meer dan 3 letters?


// EDIT: ahja list moet er ook bij :p

Ja, zolang het maar meer dan 2 letters zijn. Maar het is inderdaad niet moeilijk als je weet hoe VB werkt. Alleen copy/pasten en de controls erbij doen.

alexju
%Europe/Berlin %732 %2006, 18:34
Ja, zolang het maar meer dan 2 letters zijn. Maar het is inderdaad niet moeilijk als je weet hoe VB werkt. Alleen copy/pasten en de controls erbij doen.

bij meer dan 7 letters begint mijn pc wel ferm te laggen, da proogje, pc werkt nog goed :p

w00
%Europe/Berlin %737 %2006, 18:41
ja bij 8 letters is het al weer 40320 verschillende combinaties (als ik het goed heb). Dus ja, is niet zo gek als hij dan duizenden verschillende outputs moet berekenen en weergeven. Bij mij loopt het na 7 letters ook niet echt goed meer :)

Albus
%Europe/Berlin %739 %2006, 18:44
w00, zou je mss ook nog de code voor de functies CTR+C, CTR+A en CTR+V om de tekst te exporteren, kunnen geven.

Veel dank,
Albus

w00
%Europe/Berlin %765 %2006, 19:21
Ja wat krijg ik ervoor??

Nee joh, hier is de code om alles te kopieren :)


Private Sub Command2_Click()
Dim strList As String

For i = 0 To List1.ListCount
Clipboard.Clear
strList = strList + List1.List(i) + vbCrLf '//met een enter op het eind
Next i

Clipboard.SetText (strList)
End Sub

Dauntless
%Europe/Berlin %771 %2006, 19:31
@w00: Waarom clear je het Clipboard élke iteratie ?

w00
%Europe/Berlin %776 %2006, 19:37
Ow wacht even, dat moet er eigenlijk uit en hoort onder die "next i" te staan :P

brossiekoppie
%Europe/Berlin %822 %2006, 20:44
Iemand die wil afwerken?

Heb nu geen tijd, herexamens :p Op zich vind ik dit nogal een bizarre vraag maar 'k zie het eerder als een programming "monthly" ^^


<?php
$sNeedle = 'pol';
$nLength = strlen($sNeedle);
$nCombos = $nLength;
$aChars = str_split($sNeedle);
$sWord = '';
$aResults = array();

for ($i = ($nLength - 1); $i > 1; $i--) {
$nCombos *= $i;
}

for ($i = 0; $i < count($aChars); $i++) {
if ( count($aResults) != $nCombos ) {
$sWord = $aChars[$i];

$sWord .= '';//random reeks die nog eens in een iterator zit

array_shift($aChars);

if ( !in_array($sWord, $aResults) ) {
$aResults[] = $sWord;

}

} else {
print_r($aResults);
exit();
}
}
?>

ninetynine
%Europe/Berlin %952 %2006, 23:52
Iemand die wil afwerken?

Heb nu geen tijd, herexamens :p Op zich vind ik dit nogal een bizarre vraag maar 'k zie het eerder als een programming "monthly" ^^




oww :D
succes man

brossiekoppie
%Europe/Berlin %855 %2006, 21:32
Thanks, mijn eerste ging vrij vlot :) Het script werkt ondertussen wel denk ik:

<?php
echo '20 EUR';
?>

Dauntless
%Europe/Berlin %861 %2006, 21:40
@Brossie: Doe je nu een random() en dan checken of hij er al dan niet al in zit ?

brossiekoppie
%Europe/Berlin %678 %2006, 17:17
Ik check inderdaad of er al een zelfde string in de array zit maar er is niks random aan. Die in_array-check is enkel voor als je bvb een string aab ingeeft (het script weet niet dat er 2maal a in voorkomt).

Verder is het nogal een iterator-zooi:p

BlackiE
%Europe/Berlin %016 %2006, 01:24
Voor in excel:
=FACULTEIT(LENGTE("cel coordinaten"))

klaar!

brossiekoppie
%Europe/Berlin %649 %2006, 16:34
Voor in excel:
=FACULTEIT(LENGTE("cel coordinaten"))

klaar!

Lol, dan heb je enkel nog maar het aantal mogelijkheden (zonder rekening te houden met dubbele letters weliswaar)