民意调查问题的Java实现:为了解人们获取新闻的来源,调查小组对N个人进行了民意调查,其结果如下:50人使用电视作为新闻来源,其中包括只看电视的和结合其他新闻来源的人;61人不使用收音机作为新闻来源;

编程入门 行业动态 更新时间:2024-10-07 06:48:34

<a href=https://www.elefans.com/category/jswz/34/1750155.html style=民意调查问题的Java实现:为了解人们获取新闻的来源,调查小组对N个人进行了民意调查,其结果如下:50人使用电视作为新闻来源,其中包括只看电视的和结合其他新闻来源的人;61人不使用收音机作为新闻来源;"/>

民意调查问题的Java实现:为了解人们获取新闻的来源,调查小组对N个人进行了民意调查,其结果如下:50人使用电视作为新闻来源,其中包括只看电视的和结合其他新闻来源的人;61人不使用收音机作为新闻来源;

题目

为了解人们获取新闻的来源,调查小组对N 个人进行了民意调查,其结果如下:

        50 人使用电视作为新闻来源,其中包括只看电视的和结合其他新闻来源的人;

        61 人不使用收音机作为新闻来源;

        13 人不使用报纸作为新闻来源;

        74 人至少使用至少两种方式来获取新闻。

N 的最大值和最小值。

算法描述

        不妨设总共对N 个人进行民意调查,其中以上三种方式都不适用的人数设为x ,则可以用以下表示:

电视收音机报纸三者都不
50N-61N-13x

      由于有74 人使用至少两种方式来获取新闻,则四项相加至少重复计算了74 人(即如果有使用三种方式的人,重复计算的人数大于74 )则如上四项相加减去最小的重复计算人数74 应大于等于总数N ,即:

50+N-61+N-13+x-74≥N

        由于三种方式都不适用的与通过报纸获取新闻的人数之间没有重复的,所以相加应小于等于总数N ,即:

x+N-13≤N

同理有:

x+N-61≤N

x+50≤N

        当N 不断减小时,考虑到有74 人使用至少两种方式获取新闻,则电视、收音机、报纸总和至少要满足能够凑出74 人使用两种方式获取新闻,即:

50+N-61+N-132×74

        当N 不断增大时,考虑到四种方式的总人数会远大于N 。导致即使减去重复人数也会大于N ,造成条件的不满足。而重复人数最大的情况是,使用三种方式的有50 人,使用两种方式的有74-50 人。所以,这里的限制条件应为所有种类人数总和减去最大重复计算的人数应当小于等于总数N ,即:

50+N-61+N-13+x-2×50+74-50≤N

整理如上公式得:

N+x98

x13

x61

xN-50

N86

N+x148

由于x61x13 的必要条件,所以可以将x61 舍去;当 N86x13 时,可得出x13<36N-50 ,即 xN-50 必然成立,所以可以将xN-50 舍去。

再次整理得:

N+x98

x13

N86

N+x148

所以只需对Nx 编程,进行如上条件判定,通过循环的方式,找出N 的最大值和最小值。显然86N1480x13 ,所以只需对N 在[86, 148 ],对x 在[0,13] 进行遍历。 

代码实现 

public class Problem1 {private static boolean isProper(int N) {for (int x = 0; x <= 13; x++) {//x在[0,13]进行遍历if (N + x >= 98 && N >= 86 && N + x <= 148) {return true;}}//对x进行遍历,若期间找到x,使N满足不等式,返回truereturn false;//若没找到,返回false}//对N的值是否可行进行判定,即能否找到有效的x使不等式全部成立public static void main(String[] args) {int Nmin = 0, Nmax = 0;for (int N = 86; N <= 148; N++) {//N在[0,148]进行遍历if (isProper(N)) {//当N可行时Nmax = N;//每次发现N可行时,便将最大值更新;if (Nmin == 0) {//若Nmin仍是初始值Nmin = N;//即N首次找到符合条件的值,该值为最小}}}System.out.println("Nmax=" + Nmax);System.out.println("Nmin=" + Nmin);}
}

运行结果 

 

更多推荐

民意调查问题的Java实现:为了解人们获取新闻的来源,调查小组对N个人进行了民意调查,其结果如下:50人使用电视作为新闻来源,其中包括只看电视的和结合其他新闻来

本文发布于:2024-03-14 05:43:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735760.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:新闻来源   民意   的人   电视   人不

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!