Strange question about two equal values

Các bệnh về đại tràng.
Mục đích của đại tràng là bôi trơn chất thải, hấp thụ nước và muối còn lại trong chất thải, lưu trữ các chất thải cho đến khi chúng sẵn sàng được đào thải ra khỏi cơ thể qua đường hậu môn.

Bên trong của đại tràng bao gồm màng nhầy hấp thụ nước và tiết chất nhầy để bôi trơn chất thải. Các lớp cơ sâu hơn bao gồm các cơ bắp và cơ theo chiều dọc. Các cơ bắp tròn tạo ra những chuyển động nhẹ và chuyển động của ruột, trong chuyển động này đại tràng hấp thu nước hình thành khuôn phân, trong khi các cơ dọc tạo ra sự co cơ lớn trong việc đi chuyển chất thải ra ngoài thành phân. Trong đại tràng có chứa hàng tỷ vi khuẩn chung sống hòa bình với nhau, tạo thành hệ cân bằng vi sinh vật đường ruột. Tại đây diễn ra quá trình lên men sản xuất ra khí.https://www.linkedin.com/pulse/chua-viem-dai-trang-cap-tinh-bang-khang-sinh-co-tot-khong-nguyen-minh

Các bệnh về đại tràng có thể dẫn đến các rối loạn bao gồm đau bụng, táo bón, tiêu chảy, chướng bụng, đầy hơi. Các lớp cơ đại tràng co thắt không đều gây ra đau, co thắt chậm làm chất thải di chuyển chậm sẽ có nhiều thời gian đại tràng hấp thu nước gây ra táo bón, lớp cơ co thắt quá nhanh tống đẩy chất thải đại tràng không có cơ hội hấp thụ nước hình thành khuôn phân gây tiêu chảy, hệ vi sinh vật đại tràng rối loạn, có thể sinh nhiều khí gây chướng bụng, đầy hơi.

Viêm đại tràng:
Viêm đại tràng là viêm ở lớp lót bên trong ruột già. Có rất nhiều nguyên nhân gây viêm đại tràng bao gồm nhiễm trùng, viêm ruột (bệnh Crohn, viêm đại tràng loét), viêm đại tràng do thiếu máu cục bộ, do kháng sinh, hóa chất.

Triệu chứng của viêm đại tràng phụ thuộc vào nguyên nhân và có thể bao gồm: đau bụng, chướng bụng, đầy hơi, sốt, tiêu chảy hoặc táo bón, có thể có nhầy, máu trong phân. Bệnh kéo dài trên 8 năm, bệnh nhân bắt đầu có nguy cơ cao mắc ung thư đại tràng.

Hội chứng ruột kích thích.
Hội chứng ruột kích thíchlà một rối loạn chức năng đại tràng, có các triệu chứng giống với bệnh viêm đại tràng. Mặc dù bệnh có thể gây ra rất nhiều khó chịu, nhưng nó không gây biến chứng ung thư.
Bệnh phổ biến ở phụ nữ hơn nam giới và thường gặp ở những người dưới 45 tuổi. Không ai biết nguyên nhân chính xác của bệnh, không có bài kiểm tra cụ thể chuẩn đoán bệnh, bác sỹ phải thực hiện loại trừ các bệnh khác liên quan đến đại tràng. Các xét nghiệm này có thể bao gồm các xét nghiệm lấy mẫu phân, xét nghiệm máu và chụp X quang, nội soi . https://medium.com/@daitrang/viem-dai-trang-cap-tinh-nguy-hiem-ngay-tu-trieu-chung-98584a98c65
Bệnh túi thừa đại tràng- viêm hoặc nhiễm trùng túi trong đại tràng.

Túi thừa là các túi nhỏ phình ra ngoài bên trong lòng ruột già, tình trạng này trở nên phổ biến hơn khi về già. Nguyên nhân chính gây ra bệnh là do chế độ ăn ít chất xơ. Thường các túi thừa này không gây triệu chứng, đôi khi có thể thấy đau bụng, táo bón hoặc đầy bụng.
Nguy cơ chính của chứng túi thừa là xuất huyết và viêm. Mạch máu ở cạnh túi thừa ít co giãn và dễ bị tổn thương hơn, có thể vỡ gây ra xuất huyết. Viêm xảy ra khi các mảnh vụn hoặc thức ăn không tiêu hóa được, vi khuẩn rơi vào trong túi, thành ruột trở nên viêm và kích thích gây ra đau bụng và sốt.
Thông thường chúng có thể tự khỏi mà không cần điều trị. Trong một số trường hợp có thể cần điều trị bằng kháng sinh, xuất huyết tràn lan thường đòi hỏi phẫu thuật cấp cứu, viêm tái phát thường đòi hỏi phải cắt bỏ khu vực bị ảnh hưởng của đại tràng.

Polyps đại tràng
Polyps đại tràng là phát triển bất thường trong ruột già, hầu hết các polps không nguy hiểm. Tuy nhiên, một số polps có thể trở thành ung thư hoặc đã bị ung thư. Để an toàn, bác sĩ sẽ loại bỏ polyps và sinh thiết. Polyps có thể được loại bỏ trong quá trình nội soi.
Hầu hết các polyp đại tràng không gây ra triệu chứng, nếu có các triệu chứng, chúng có thể bao gồm máu trong phân, táo bón hoặc tiêu chảy kéo dài hơn một tuần.

Ung thư đại trực tràng
Ung thư đại trực tràng xảy ra khi khối u hình thành trong lớp lót của ruột già. Nguy cơ mắc bệnh ung thư đại trực tràng tăng sau tuổi 50, nguy cơ tăng nếu bệnh nhân có polyp đại tràng , tiền sử gia đình mắc bệnh ung thư đại trực tràng, viêm đại tràng, ăn chế độ ăn nhiều chất béo Tham khảo về cách chữa bệnh đại tràng tại http://phuongdongdaitrang.vn phuongdongdaitrang.vn
Các triệu chứng của ung thư đại trực tràng bao gồm: tiêu chảy hoặc táo bón, máu trong phân, đau bung, đầy bụng, mệt mỏi, giảm cân không rõ nguyên nhân. Ung thư giai đoạn đầu thường không có triệu chứng do đó bệnh nhân cần tiến hành sàng lọc ung thư đại tràng bắt đầu từ độ tuổi 50.

Last edited on
Hello hongocha,

Maybe in Calculus this may work, but not at face value. (value + 1) will always be greater then value.

Andy
what is the type of value? It matters.

For example, You can force this to happen with a floating point where the 1's place is out of reach, meaning that the higher order digits prevent the 1's place from being stored in the data.

signed vs unsigned will matter too. int max + 1 is -1 I think for signed. For unsigned it should give zero. Its not like math where infinity +1 = infinity, because computers are finite.

try it on a character and unsigned char.
what is 127+1? What is 128 +1? What is 255+1? What is 0-1? Just make a little program to print those.

Then play with a float to see the underflow issue.

So my answer is that it can happen for floating point.
if this is just an exercise in thinking out of the box... https://repl.it/repls/LikelyInfatuatedStaff

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>

using namespace std;

class MyNum
{
public:
    MyNum(int n)
    {
        n_ = n;
    }

    MyNum operator+(int other)
    {
        MyNum m(n_);  // Completely ignores other ;D
        return m;
    }
    int n() const
    {
        return n_;
    }
private:
    int n_;
};

std::ostream& operator<<(std::ostream& os, const MyNum & m) 
{ 
    return os << m.n();
}

int main() 
{
    int k = 5;
    cout << "ordinary:     " << k << endl;      // 5
    cout << "ordinary+1:   " << (k+1) << endl;  // 6
    
    MyNum special(5);
    cout << "special:      " << special << endl;      // 5
    cout << "special + 1:  " << (special+1) << endl;  // 5

    return 0;
}

Last edited on
Just be a smart-ass and hand in some different buggy code:

1
2
3
4
5
6
7
8
#include <iostream>

int main(){
        int value=3;
        if (value=value+1) {
                std::cout << "Yep!\n";
                }
        }


There's nothing in law making a floating point bug (or a machine infinity bug) any more valid than a syntax bug ... ;D
Last edited on
This has come up before:
http://www.cplusplus.com/forum/beginner/231483/#msg1044617

The wheel has gone full circle ... maybe that answers the question.
Last edited on
Topic archived. No new replies allowed.