本文共 2027 字,大约阅读时间需要 6 分钟。
在统计学中,众数是指在一组数据中出现次数最多的数值。以下是使用Objective-C实现众数计算的完整示例。
我们将创建一个简单的类来计算一组整数的众数,并在ViewController中展示结果。
创建一个名为 ModeCalculator 的类,继承自 NSObject。
在 .h 文件中定义接口:
#import@interface ModeCalculator : NSObject- (void)calculateModeWithNumbers:(NSArray *)numbers;- (NSArray *)getMode;- (void)displayResult;@end
.m 文件中实现类方法:@implementation ModeCalculator- (void)calculateModeWithNumbers:(NSArray *)numbers { // 首先,创建一个频率字典来统计每个数出现的次数 NSMutableDictionary *frequencyDictionary = [NSMutableDictionary dictionary]; // 遍历数值数组,统计频率 for (NSNumber *number in numbers) { [frequencyDictionary setObject:[frequencyDictionary objectForKey:[number stringValue]] forKey:[number stringValue]]; // 如果一个数已经存在,则增加计数 // 如果一个数不存在,则创建新条目 } // 接下来,找到出现次数最多的数值 NSInteger maxFrequency = 0; NSString *modeValue = @""; for (NSString *key in frequencyDictionary) { if ([frequencyDictionary[key] integerValue] > maxFrequency) { maxFrequency = [frequencyDictionary[key] integerValue]; modeValue = key; } } // 设置计算结果 [self setMode:[NSArray arrayWithObjects:modeValue]];}- (NSArray *)getMode { return [self mode];}- (void)displayResult { [self displayResultWithText:[self getMode]];}- (void)displayResultWithText:(NSString *)text { // 在ViewController中显示结果 // 例如,使用UIAlertController显示结果 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"众数结果" message:[text stringByAppendingString:@"是当前数据中的众数"] preferredStyle:UIAlertStyleAlert]; [self presentViewController:alert animated:YES completion:nil];} 在ViewController中创建一个 ModeCalculator 实例,并调用相关方法:
ModeCalculator *modeCalculator = [[ModeCalculator alloc] init];[modeCalculator calculateModeWithNumbers:@[@1, 2, 3, 2, 1, 4, 3]];[modeCalculator displayResult];
当调用 displayResult 方法时,会在屏幕上显示一个UIAlertController,显示当前数据中的众数。如果有多个众数(例如数据中有多个数出现次数相同且最大),则会显示所有众数。
你可以从GitHub等平台下载完整的Objective-C代码示例。
转载地址:http://gbifk.baihongyu.com/