Avatar billede elvin Nybegynder
03. november 2003 - 19:55 Der er 16 kommentarer

Formel til beregning af antal kugler på et bestemt areal

Er der nogen som har en formel til beregning af et antal kugler på et bestemt areal? eks. jeg har et areal som er på 7,5 cm x 28 cm = 21 cm2 hvor mange kugler kan der ligge på dette areal ved siden af hinanden, når kuglernes diameter er på 7 mm? hvis svaret er ja, vil jeg meget gerne "belønnne" med 30 point

mvh
Teddy Schnefeldt
Avatar billede hugopedersen Nybegynder
04. november 2003 - 07:13 #1
Hvis du sørger for at alle mål er i samme enhed ( f.eks. mm ) så må det være noget i stil med ((Længde * Bredde) / (Diameter * Diameter)) 
(Kunne ikke lige finde tegne for 2. potens - derfor diameter * diameter)

Da en kugle ikke kan klemmes sammen vil den jo altid optage ekstra plads.
Avatar billede oyejo Nybegynder
04. november 2003 - 08:38 #2
Svaret vil avhenge av hvordan man legger kulene.
Hvis man legger kulene slik at de danner rekker begge veier vil arealet ta 400 kuler
=Heltall(lengde/diameter) * Heltall(bredde/diameter)

Hvis man legger den 1. rekken langs med den korte siden, får så å legge neste kulerekke forskjøvet vil man pakke kulene bedre og antallet vil bli 460

Enda bedre vil det bli hvis man legger første rekke langs med den lange side, for så å gjøre på samme måte som ovenfor.
Da vil man ha plass til 474 kuler på det samme arelaet.

Det er ikke så lett å lage en enkelt formel som regner det ut da det ikke er den samme løsningen som gir størst antall kuler hver gang.

Det avhenger blandt annet av forholdet mellom sidelengdene på arealet og diameteren på kulene.

For å finne hvor mye kulerekkene bygger, når man forskyver rekkene benytter man formelen.
=Rot((diameter*diameter) - (diameter*diameter/4))

Her bør man benytte flere formler eller lage en makro som redigeres.

HVIS IKKE NOEN HAR EN MERE ELEGANT LØSNING :-)
Avatar billede oyejo Nybegynder
05. november 2003 - 10:26 #3
Jeg har en norsk versjon av excel, så hvis noen forteller meg hva disse funksjonene heter på dansk, kan jeg lime formlene inn her.

HELTALL(), finner heltalldelen av et tall
ROT(),på norsk, sqr() på engelsk?
HVIS()
REST()
Avatar billede elvin Nybegynder
05. november 2003 - 17:49 #4
Hej Hugopedersen

Tak for dit svar. Men den holder desværre ikke i virkeligheden.

Jeg har et areal, som har en længde på 75mm og en bredde på 30 mm jeg har nogle stålkugler, som har en diameter på 7 mm. Efter din "opskrift" (hvis jeg har forstået den rigtig) så kan der være 75 x 30 = 2250 divideret med 7 x 7= 49 altså 2250 divideret med 49= 45,91 = 45 kugler når jeg tæler mine kugler på ovenstående areal 75 x 30= 2250 mm2 - ja så kan jeg tælle ialt 54 kugler.

mvh
Teddy
Avatar billede elvin Nybegynder
05. november 2003 - 17:55 #5
Hej oyejo
Jeg tror du er inde på rigtig problematik - jeg tror som dig der findes flere løsninger på den samme opgave. Kunne du prøve og opstille et lille regne eksempel - fordi jeg forstår ikke helt det sidste du skriver.

på forhånd tak

mvh
Teddy
Avatar billede oyejo Nybegynder
06. november 2003 - 08:33 #6
Hei elvin
Jeg sender deg de 3 forskjellige formlene først, så du kan lime dem inn i regnearket. Så kan vi ta teorien ettepå.
Skal prøve å lime formelene inn her slik at det bare er å kopiere og lime rett inn i regnearket. NB! Det er viktig at MARKØREN STÅR I FORMELVINDUET, når formelene blir limt inn.

Til slutt: Sett navn på cellene der lengde, bredde og diameter skal tastes inn.
For jeg har bruk disse navnene i formlene.
Avatar billede oyejo Nybegynder
06. november 2003 - 08:35 #7
Alternativ A:

=HELTAL(lengde/diameter)
*
HELTAL(bredde/diameter)
Avatar billede oyejo Nybegynder
06. november 2003 - 08:37 #8
Alternativ B:

=HELTAL(lengde/diameter)
*
(HELTALL((bredde-diameter)/ROT((diameter*diameter)-(diameter*diameter/4)))+1)
-
HELTAL(
(HELTAL((bredde-diameter)/ROT((diameter*diameter)-(diameter*diameter/4)))+1)
/2)
*
HVIS(REST(lengde;HELTAL(lengde/diameter)*diameter)>=diameter/2;0;1)
Avatar billede oyejo Nybegynder
06. november 2003 - 08:38 #9
Alternativ C:

=HELTAL(bredde/diameter)
*
(HELTAL((lengde-diameter)/ROT((diameter*diameter)-(diameter*diameter/4)))+1)
-
HELTALL(
(HELTAL((lengde-diameter)/ROT((diameter*diameter)-(diameter*diameter/4)))+1)
/2)
*
HVIS(REST(bredde;(HELTAL(bredde/diameter))*diameter)>=diameter/2;0;1)
Avatar billede oyejo Nybegynder
06. november 2003 - 08:41 #10
Disse 3 alternativene beskriver hvor mange kuler man får inn, alt etter hvordan man stabler dem.
Etter å ha tastet inn lengde og bredde på arealet og diameteren på kulen, vil du se hvilket alternativ som gir høyest tall.
Da vet du på hvilken måte du må legge kulene, for å få plass til flest kuler.
Avatar billede oyejo Nybegynder
06. november 2003 - 08:42 #11
Noen ganger gir alt A best resultat, andre ganger alt. B eller C
Avatar billede oyejo Nybegynder
06. november 2003 - 08:54 #12
Uttrykket:  ROT((diameter*diameter)-(diameter*diameter/4)
Viser hvor mye hver kulerekke bygger hvis man forskyver kulerekkene.
Har benyttet teoriensom gjelder for en rettvinklet trekant.:
a^2 = b^2 + c^2, 
x^2 =diameter^2 - (diameter/2)^2
= diameter*diameter -diameter*diameter/4
Avatar billede oyejo Nybegynder
06. november 2003 - 09:00 #13
REST(lengde;HELTAL(lengde/diameter)*diameter)>=diameter/2
dette uttrykket tester om det er plass til like mange kuler i begge rekkene.
Hvis avstanden mellom siste kule i første rekke og sidekanten er større eller lik halve diameteren, blir det like mange kuler i alle rekkene. Ellers blir det en kule mindre i annenhver rekke.
Avatar billede oyejo Nybegynder
06. november 2003 - 09:11 #14
Teddy. i forlene i alt B og C har jeg skrevet feil. Har skrevet HELTALL istedet for HELTAL et sted i hvert alternativ.
Den norske funksjonen heter HELTALL, tror den danske heter HELTAL
håper de andere funksjonen har samme navn på begge språk
Avatar billede oyejo Nybegynder
06. november 2003 - 09:16 #15
Var så godt i gang at jeg laget like godt et eksempel i VBA også.:-)
Avatar billede oyejo Nybegynder
06. november 2003 - 09:16 #16
Private Sub Worksheet_Change(ByVal Target As Range)

Dim dblLengde As Double
Dim dblBredde As Double
Dim dblDiameter As Double

Dim lgAntRettLe As Long
Dim lgAntRettBr As Long
Dim lgAntSikLe As Long
Dim lgAntSikBr As Long

Dim dblRestRettLengde As Double
Dim dblRestRettBredde As Double

Dim AltA As Long    '** rett begge retninger
Dim AltB As Long    '** rett i lengderetning
Dim AltC As Long    '** rett i bredderetning
Dim lgTestB As Long
Dim lgTestC As Long

  If Not Intersect(Target, Range("B2:B4")) Is Nothing Then
     
      dblLengde = Cells(2, 2)
      dblBredde = Cells(3, 2)
      dblDiameter = Cells(4, 2)
     
      '*** HVOR MANGE KULER SOM GÅR PÅ EN REKKE, NÅR ALLE KULER LIGGER INTILL SIDEN
      lgAntRettLe = Int(dblLengde / dblDiameter)
      lgAntRettBr = Int(dblBredde / dblDiameter)

      '*** HVOR MANGE KULER SOM GÅR NÅR KULENE ER FORSKJØVET
      lgAntSikLe = Int((dblLengde - dblDiameter) / _
        (Sqr(dblDiameter * dblDiameter - dblDiameter * dblDiameter / 4))) + 1
      lgAntSikBr = Int((dblBredde - dblDiameter) / _
        (Sqr(dblDiameter * dblDiameter - dblDiameter * dblDiameter / 4))) + 1
     
      '*** AVSTANDEN MELLOM SISTE KULE PÅ EN REKKE OG YTTERKANT PÅ AREALET
      dblRestRettLengde = dblLengde - lgAntRettLe * dblDiameter
      dblRestRettBredde = dblBredde - lgAntRettBr * dblDiameter

      If (dblRestRettLengde >= dblDiameter / 2) Then
        lgTestB = 0
      Else
        lgTestB = 1
      End If

      If (dblRestRettBredde >= dblDiameter / 2) Then
        lgTestC = 0
      Else
        lgTestC = 1
      End If
     
      '*** ANTALL KULER NÅR KULENEN LIGGER PÅ REKKER I BEGGE RETNINGER
      AltA = Int(dblLengde / dblDiameter) * Int(dblBredde / dblDiameter)
      '*** ANTALL KULER NÅR KULNENE LIGGER PÅ REKKER I LENGDERETNING
      AltB = lgAntRettLe * lgAntSikBr - Int(lgAntSikBr / 2) * lgTestB
      '*** ANTALL KULER NÅR KULENE LIGGER PÅ REKKER I BREDDERETNING
      AltC = lgAntRettBr * lgAntSikLe - Int(lgAntSikLe / 2) * lgTestC
     
      Cells(6, 2) = AltA
      Cells(7, 2) = AltB
      Cells(8, 2) = AltC
  End If
End Sub
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 har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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