# Step 1: Generate random number of external walls num_external_walls <- sample(1:10, 1) # Step 2: If only one external wall, assign all area to that external wall if (num_external_walls == 1) { area_assigned <- total_area <- 1000 } else { # Step 3-5: Assign random area to each external wall total_area <- 1000 area_assigned <- vector(mode = "integer", length = num_external_walls) for (i in 1:(num_external_walls - 1)) { max_area <- min(floor((total_area - sum(area_assigned)) / (num_external_walls - i)), total_area - sum(area_assigned)) area_assigned[i] <- sample(0:max_area, 1) } # Assign remaining area to the last external wall area_assigned[num_external_walls] <- total_area - sum(area_assigned) } # Step 6: Generate random type for each external wall (WINDOW or WALL) wall_types <- sample(c("WINDOW", "WALL"), num_external_walls, replace = TRUE) # Create dataframe external_walls_df <- data.frame(External_Surface = paste("External Surface", 1:num_external_walls), Area_Assigned = area_assigned, Wall_Type = wall_types) # Print the dataframe print("External Surfaces and their Area Assigned:") print(external_walls_df) # Print the total area total_area_sum <- sum(area_assigned) print(paste("Total area assigned:", total_area_sum))