Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel] getal opsplitsen in een aantal vaste waarden

Pagina: 1
Acties:

  • Down Under
  • Registratie: Augustus 2000
  • Laatst online: 05:23
Ik zit te brainstormen over een makkelijke manier om een bepaald getal op te delen in een aantal vaste getallen. Nu is de truc dat wel steeds de grootste getallen gebruikt moeten worden om een zo klein mogelijk aantal delen te bewerkstelligen. Het totaal van de delen moet natuurlijk wel weer kloppen.
Het gaat om een getal tussen 20 en 4300 (oplopend met 5). Nu zijn er de vogende delen beschikbaar: 6x 515, 1x 200, 1x 100, 1x 40, 1x 35, 1x 30, 1x 25 en 1x 20.
Het begin is natuurlijk vrij makkelijk, het aantal delen 515 is interger van getal/515. Maar nu verder opsplitsen.
Weet iemand hier een handige functie voor in excel?

  • spone
  • Registratie: Mei 2002
  • Niet online
Modulus?

http://office.microsoft.c...elp/rest-HP005209182.aspx

[ Voor 81% gewijzigd door spone op 27-10-2014 19:42 ]

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


  • Orion84
  • Registratie: April 2002
  • Nu online

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Het lastige is dat je, als ik die waardes zo zie, niet zomaar steeds de volgende grootste optie er af kan hakken, omdat je dan mogelijk niet uit komt (of hoeft het niet op 0 uit te komen?).

Klinkt als een soort van bin-packing probleem, wellicht dat je daar eens op kan googlen :)

Maar als die set aan waardes vast is, dan is het vrij eenvoudig, want dan zoek je dus een oplossing voor:

a*515+b*200+c*100+d*40+e*35+f*30+g*25+h*20=invoer

Met a gelijk aan 0 tot 6 en b t/m h gelijk aan 1 of 0 en de som over a t/m h zo klein mogelijk.

Dus 7 mogelijkheden voor a en 2^7 mogelijkheden voor b t/m h. Totaal minder dan 1000 mogelijkheden. Kwestie van 1x tabelletje maken met alle mogelijke sommen, in geval van twee sommen met dezelfde uitkomst bewaar je degene met het minst aantal termen. Daarna kan je voor elke invoertarieven simpelweg een lookup doen.

[ Voor 73% gewijzigd door Orion84 op 27-10-2014 20:06 ]

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


  • Gmount
  • Registratie: Maart 2012
  • Laatst online: 19-11 22:59

Gmount

Ecorunner lid

Down Under schreef op maandag 27 oktober 2014 @ 19:37:
{..} Nu zijn er de vogende delen beschikbaar: 6x 515, 1x 200, 1x 100, 1x 40, 1x 35, 1x 30, 1x 25 en 1x 20.
bij elkaar is dit 3540, dus je kunt hier ook geen 4300 mee maken?

1900Km/L! || i7 6700K @ 4,6 GHz | NZXT Kraken X61 | MSI GTX 970 @ 1,48 GHz | 8 GB DDR4| Bitfenix Aegis yellow


  • Down Under
  • Registratie: Augustus 2000
  • Laatst online: 05:23
Orion84 schreef op maandag 27 oktober 2014 @ 19:43:
Het lastige is dat je, als ik die waardes zo zie, niet zomaar steeds de volgende grootste optie er af kan hakken, omdat je dan mogelijk niet uit komt (of hoeft het niet op 0 uit te komen?).
Het eindresultaat moet dus wel op 0 uitkomen, ik kan dus niet de grooste eraf halen daar dit geen garantie op 0 geeft.
Orion84 schreef op maandag 27 oktober 2014 @ 19:43:

Maar als die set aan waardes vast is, dan is het vrij eenvoudig, want dan zoek je dus een oplossing voor:

a*515+b*200+c*100+d*40+e*35+f*30+g*25+h*20=invoer

Met a gelijk aan 0 tot 6 en b t/m h gelijk aan 1 of 0 en de som over a t/m h zo klein mogelijk.

Dus 7 mogelijkheden voor a en 2^7 mogelijkheden voor b t/m h. Totaal minder dan 1000 mogelijkheden. Kwestie van 1x tabelletje maken met alle mogelijke sommen, in geval van twee sommen met dezelfde uitkomst bewaar je degene met het minst aantal termen. Daarna kan je voor elke invoertarieven simpelweg een lookup doen.
Dit is natuurlijk een mogelijkheid maar eigenlijk zoek ik dus naar een functie die mijn restgetal verdeelt over een aantal vaste waarden. Ik zoek dus eigenlijk een functie die een aantal willekeurige cellen optelt en vergelijkt met het restgetal waarbij hij begint met het grootste getal.
Gmount schreef op maandag 27 oktober 2014 @ 19:49:

bij elkaar is dit 3540, dus je kunt hier ook geen 4300 mee maken?
Dit moeten er dus 8 zijn ipv 6 :)

  • Orion84
  • Registratie: April 2002
  • Nu online

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Down Under schreef op maandag 27 oktober 2014 @ 20:26:
[...]


Het eindresultaat moet dus wel op 0 uitkomen, ik kan dus niet de grooste eraf halen daar dit geen garantie op 0 geeft.


[...]


Dit is natuurlijk een mogelijkheid maar eigenlijk zoek ik dus naar een functie die mijn restgetal verdeelt over een aantal vaste waarden. Ik zoek dus eigenlijk een functie die een aantal willekeurige cellen optelt en vergelijkt met het restgetal waarbij hij begint met het grootste getal.
Dat doet mijn oplossing ook. De keuze van de waardes waarover je de invoer verdeelt ligt opgeslagen in de waarden voor a t/m h.
[...]


Dit moeten er dus 8 zijn ipv 6 :)
dan wordt het aantal mogelijkheden in mijn voorstel iets groter maar niet overkomelijk.

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

Je zoek geen formule, maar een algoritme !


zowiezo wat geniet de voorkeur? 40+20 of 25+35

Iperf


  • Orion84
  • Registratie: April 2002
  • Nu online

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Er zijn ook talloze invoerwaardes te bedenken die niet volledig zijn op te delen met deze set opties. Bijvoorbeeld veel waardes tussen de 400 en 510, aangezien je zowat al je opties al nodig hebt om aan de 400 te komen.

Zit hier ook nog iets van een praktisch probleem achter?

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Als je de manier van Orion84 in "[Excel] getal opsplitsen in een aantal vaste waarden" gebruikt, kan je de standaard Solver-plugin in Excel gebruiken: http://www.computerworld....ith-excel-and-solver.html

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • naitsoezn
  • Registratie: December 2002
  • Niet online

naitsoezn

Nait Soez'n!

Orion84 schreef op maandag 27 oktober 2014 @ 19:43:

a*6*515+b*200+c*100+d*40+e*35+f*30+g*25+h*20=invoer
Dit is dan wel vrij eenvoudig op te lossen met de Solver van Excel. Maar lost het 'probleem' niet echt op :).
Orion84 schreef op maandag 27 oktober 2014 @ 20:59:
Zit hier ook nog iets van een praktisch probleem achter?
Dit. Wat wil je precies oplossen?

't Het nog nooit, nog nooit zo donker west, of 't wer altied wel weer licht


  • Gmount
  • Registratie: Maart 2012
  • Laatst online: 19-11 22:59

Gmount

Ecorunner lid

als je eerst deelt door 515 blijft er iig een getal over kleiner dan 515 (Duh). daarna voor alle mogelijke waarden tussen 00 en 115 de oplossing opschrijven en dat er ook vanaftrekken. Dan pas het bepalen of je de 100 en 200 nodig hebt.

bv 2275:
2275/515=4 rest 215
als het op een 15 eindigt zeg je dus: 115= 40+30+25+20
215-115= 100

dus je antwoord is dan 4*515 + 1*100+ 1*40 + 1*30 +1*25 + 1*20.

ander voorbeeld: 2330
2330/515=4 rest 270
70 is 40 + 30
270-70=200
antwoord: 4*515 + 200 + 40 + 30.

Wat orion zegt over onmogelijke waardes zit idd enorm in de weg voor een oplossing.

1900Km/L! || i7 6700K @ 4,6 GHz | NZXT Kraken X61 | MSI GTX 970 @ 1,48 GHz | 8 GB DDR4| Bitfenix Aegis yellow


  • Orion84
  • Registratie: April 2002
  • Nu online

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

naitsoezn schreef op maandag 27 oktober 2014 @ 21:08:
[...]

Dit is dan wel vrij eenvoudig op te lossen met de Solver van Excel.
Uhm, die correctie die je doet in mijn formule klopt niet hè. a loopt al van 0 t/m 6 (of 8 als we de aanpassing van Down Under in "[Excel] getal opsplitsen in een aantal vaste waarden" meenemen).

@FJK: ah, nice, ik was in mijn hoofd al allerlei ingenieuze excel trucs aan het bedenken om zonder al te veel moeite de hele reeks mogelijke combinaties van a t/m h onder elkaar te zetten :+

[ Voor 18% gewijzigd door Orion84 op 27-10-2014 21:46 ]

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


  • naitsoezn
  • Registratie: December 2002
  • Niet online

naitsoezn

Nait Soez'n!

Orion84 schreef op maandag 27 oktober 2014 @ 21:44:
[...]

Uhm, die correctie die je doet in mijn formule klopt niet hè. a loopt al van 0 t/m 6 (of 8 als we de aanpassing van Down Under in "[Excel] getal opsplitsen in een aantal vaste waarden" meenemen).
Mjah, ik ging er vanuit dat TS bedoelde dat a = 6:
Nu zijn er de vogende delen beschikbaar: 6x 515
Oftewel: Er zijn delen van (6x515) beschikbaar. Maar true: hij zou volgens info in TS ook kunnen lopen van 0 tot 6. Meer info van TS wanted, :)

[ Voor 13% gewijzigd door naitsoezn op 27-10-2014 22:17 ]

't Het nog nooit, nog nooit zo donker west, of 't wer altied wel weer licht


  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 08:25

Rannasha

Does not compute.

Als de grootte en het aantal van de "delen" vast ligt, dan kun je het vrij simpel aanpakken door simpelweg alle mogelijkheden in een tabel te zetten en die iedere keer te doorzoeken.

Je hebt [0-6] x 515 (dus 7 mogelijkheden) en [0-1] x ieder ander deel, dus 2 mogelijkheden per deel waarvan er maar 1 is. Totaal aantal mogelijkheden: 7 * 26 = 448 mogelijke combinaties van delen.

Dus genereer een tabel met alle mogelijkheden van delen die wel/niet mee doen en de som hiervan. Voor de getallen die je wil testen loop je simpelweg de tabel door en check je of de som-waarde gelijk is aan het getal dat je aan het testen bent.

|| Vierkant voor Wiskunde ||


  • Dido
  • Registratie: Maart 2002
  • Nu online

Dido

heforshe

7 waardes die 0 of 1 kunnen zijn maakt 128 mogelijkheden. Daarvan zijn er echter maar 85 uniek.

Dan tel je daar 0-8 keer 515 bij op voor een totaal van 9*85 unieke mogelijkheden, dat zijn er 765.

Van 20-4300 heb je 856 mogelijkheden, dus zijn er 91 zonder oplossing. Die andere 856 zijn makkelijk in een lijstje te zetten.

Wat doe je als er meerder mogelijkheden zijn?

Waarom heb je in hemelsnaam de hele "puzzel" met 5 vermenigvuldigd?

Waarom begin je op 20? Goed, je kun geen 15 maken, maar je kunt ook geen 515+15 maken, of 1030+15.

Wat probeer je nou eigenlijk te bereiken?

Wat betekent mijn avatar?

Pagina: 1