Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.soft-sys.math.mathematica > #3385 > unrolled thread

Re: How to find the difference between two lists (opposite of union[]?)

Started byHeike Gramberg <heike.gramberg@gmail.com>
First post2011-06-29 21:45 +0000
Last post2011-06-29 21:45 +0000
Articles 1 — 1 participant

Back to article view | Back to comp.soft-sys.math.mathematica

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: How to find the difference between two lists (opposite of union[]?) Heike Gramberg <heike.gramberg@gmail.com> - 2011-06-29 21:45 +0000

#3385 — Re: How to find the difference between two lists (opposite of union[]?)

FromHeike Gramberg <heike.gramberg@gmail.com>
Date2011-06-29 21:45 +0000
SubjectRe: How to find the difference between two lists (opposite of union[]?)
Message-ID<iug6ds$9jt$1@smc.vnet.net>
You could do something like

mlist = RandomInteger[1000, 1000];
Complement[Range[1000], mlist]

Heike

On 28 Jun 2011, at 12:55, McHale, Paul wrote:

> I have been working through a neat book called Mathematica(r): A Problem-Centered =
Approach<http://www.amazon.com/Mathematica%C2%AE-Problem-Centered-Approach-Undergraduate-Mathematics/dp/1849962502/ref=sr_1_2?ie=UTF8&qid=1309181549&sr=8-2>.  I have a problem I would like to know if there is a more elegant solution.  I would think involving set theory, but I can't seem to (embarrassingly) find it.
>
> I want to generate 1000 random integers between 1 and 1000.  Then find out what numbers between 1 and 1000 were not generated.
>
> (* Generate random list of 1000 numbers  with range 1-1000*)
> mList=RandomInteger[{1,1000},1000] //Sort;
>
> (* Find out what numbers were omitted in the range 1-1000*)
> (* Make a list of numbers 1-1000 with position of each within original array *)
> mList=Table[{i,Position[mList,i] //Flatten},{i,1,1000}];
>
> (* select numbers with no position in original array (musical chairs) *)
> Select[mList,Length[#[[2]]]==0&][[All,1]]
>
> This works creating a lot of extra array in the process.  Just wanted to ask what are the methods you guys would use to solve this?
>
> A funny (non-working) way of stating the same thing would be:
>
> (* Generate random list of 1000 numbers  with range 1-1000*)
> mList=RandomInteger[{1,1000},1000] //Sort;
>
> Solve[ Join[mList,mDiff]==Range[1000],mDiff]
>
> Thanks,
> Paul
>
>
> Paul McHale  |  Electrical Engineer, Energetics Systems  |  Excelitas Technologies Corp.
>
> Phone:   +1 937.865.3004   |   Fax:  +1 937.865.5170   |   Mobile:   +1 937.371.2828
> 1100 Vanguard Blvd, Miamisburg, Ohio 45342-0312 USA
> Paul.McHale@Excelitas.com<mailto:Paul.McHale@perkinelmer.com>
> www.excelitas.com<http://www.excelitas.com>
>
> [cid:image001.png@01CB9136.E3D96D90]
>
> Please consider the environment before printing this e-mail.
> This email message and any attachments are confidential and proprietary to Excelitas Technologies Corp. If you are not the intended recipient of this message, please inform the sender by replying to this email or sending a message to the sender and destroy the message and any attachments.
> Thank you

[toc] | [standalone]


Back to top | Article view | comp.soft-sys.math.mathematica


csiph-web